From fd3fd66a1db8925e5a9a3d34acdd213f49378877 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Mon, 30 Apr 2018 17:24:27 +0300 Subject: Add: notification service --- ick2/notificationapi.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 ick2/notificationapi.py (limited to 'ick2/notificationapi.py') diff --git a/ick2/notificationapi.py b/ick2/notificationapi.py new file mode 100644 index 0000000..ab261bd --- /dev/null +++ b/ick2/notificationapi.py @@ -0,0 +1,45 @@ +# Copyright 2018 Lars Wirzenius +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +import ick2 + + +class NotificationAPI: + + def __init__(self, config): + self._config = config + + def find_missing_route(self, missing_path): + return [ + { + 'method': 'POST', + 'path': '/notify', + 'callback': self.notify, + }, + ] + + def notify(self, content_type, body, **kwargs): + ick2.log.log('info', msg_text='Notification requested', kwargs=kwargs) + + recipients = body.get('recipients', []) + build = body.get('build', {}) + log = body.get('log', '') + + sendmail = ick2.Sendmail() + sendmail.set_config(self._config) + sendmail.send(recipients, build, log) + + return ick2.OK('') -- cgit v1.2.1