diff options
author | Parker Berberian <pberberian@iol.unh.edu> | 2018-10-24 15:12:32 -0400 |
---|---|---|
committer | Parker Berberian <pberberian@iol.unh.edu> | 2018-11-07 10:32:56 -0500 |
commit | 7b15aed77c6675286fd75b8832af58c992717ef9 (patch) | |
tree | f4597f72433ce75ab46a1fd80f3635c987b38205 /dashboard_api | |
parent | ebc42347105caa2be52a8337372ae4793fe9182c (diff) |
Rewrite Notification subsystem
In this commit:
- delete a lot of really bad and / or unused code
- redesign a much simpler Notification model
- create and send notifications to the user's inbox on booking start & end
- migrations
- emails user when booking is ready and when it ends
Not in this commit:
- Creating notifications from lab messages
- warning messages when a booking is about to end
- creating "summary" notifications when e.g. a booking has been fulfilled by a lab
Change-Id: I69b4dc36c3f2bce76d810106baadeef5a562cc7d
Signed-off-by: Parker Berberian <pberberian@iol.unh.edu>
Diffstat (limited to 'dashboard_api')
-rw-r--r-- | dashboard_api/__init__.py | 8 | ||||
-rw-r--r-- | dashboard_api/api.py | 91 |
2 files changed, 0 insertions, 99 deletions
diff --git a/dashboard_api/__init__.py b/dashboard_api/__init__.py deleted file mode 100644 index ce1acf3..0000000 --- a/dashboard_api/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Max Breitenfeldt and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -##############################################################################
\ No newline at end of file diff --git a/dashboard_api/api.py b/dashboard_api/api.py deleted file mode 100644 index d40e0aa..0000000 --- a/dashboard_api/api.py +++ /dev/null @@ -1,91 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Max Breitenfeldt and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - - -import logging - -import requests - -URLS = { - 'resources': '/api/resources/', - 'servers': '/api/servers/', - 'bookings': '/api/bookings', - 'resource_status': '/api/resource_status/', -} - -class DashboardAPI(object): - def __init__(self, dashboard_url, api_token='', verbose=False): - self._api_token = api_token - self._verbose = verbose - self._resources_url = dashboard_url + URLS['resources'] - self._servers_url = dashboard_url + URLS['servers'] - self._bookings_url = dashboard_url + URLS['bookings'] - self._resources_status_url = dashboard_url + URLS['resource_status'] - self._logger = logging.getLogger(__name__) - - def get_all_resources(self): - return self._get_json(self._resources_url) - - def get_resource(self, id='', name='', url=''): - if url != '': - return self._get_json(url)[0] - url = self._resources_url + self._url_parameter(id=id, name=name) - return self._get_json(url)[0] - - def get_all_bookings(self): - return self._get_json(self._bookings_url) - - def get_resource_bookings(self, resource_id): - url = self._bookings_url + self._url_parameter(resource_id=resource_id) - return self._get_json(url) - - def get_booking(self, id): - url = self._bookings_url + self._url_parameter(id=id) - return self._get_json(url)[0] - - def post_resource_status(self, resource_id, type, title, content): - data = { - 'resource': resource_id, - 'type': type, - 'title': title, - 'content': content - } - return self._post_json(self._resources_status_url, data) - - def get_url(self, url): - return self._get_json(url) - - def _url_parameter(self, **kwargs): - res = '' - prefix = '?' - for key, val in kwargs.items(): - res += prefix + key + '=' + str(val) - prefix = '&' - return res - - def _get_json(self, url): - try: - response = requests.get(url) - if self._verbose: - print('Get JSON: ' + url) - print(response.status_code, response.content) - return response.json() - except requests.exceptions.RequestException as e: - self._logger.exception(e) - except ValueError as e: - self._logger.exception(e) - - def _post_json(self, url, json): - if self._api_token == '': - raise Exception('Need api token to POST data.') - response = requests.post(url, json, headers={'Authorization': 'Token ' + self._api_token}) - if self._verbose: - print('Post JSON: ' + url) - print(response.status_code, response.content) - return response.status_code |