#!/usr/bin/env python3 # -*- coding: utf-8 -*- import requests import logging API_URLS = { "users": "/rest/users/", "groups": "/rest/groups/", "owners": "/rest/owners/", "channels": "/rest/channels/", "themes": "/rest/themes/", "types": "/rest/types/", "discipline": "/rest/discipline/", "videos": "/rest/videos/", "renditions": "/rest/renditions/", "encodings_video": "/rest/encodings_video/", "encodings_audio": "/rest/encodings_audio/", "playlist_videos": "/rest/playlist_videos/", "contributors": "/rest/contributors/", "documents": "/rest/documents/", "tracks": "/rest/tracks/", "overlays": "/rest/overlays/", "chapters": "/rest/chapters/", "recording": "/rest/recording/", "recordingfile": "/rest/recordingfile/", "folders": "/rest/folders/", "files": "/rest/files/", "images": "/rest/images/", "enrichments": "/rest/enrichments/", "buildings": "/rest/buildings/", "broadcasters": "/rest/broadcasters/" } class Resource: host_url = '' name = '' def __init__(self, host_url, resource_name): self.host_url = host_url if not self.host_url: raise Exception('Pod host url required') self.name = resource_name if not API_URLS.get(self.name): raise Exception('Resource url not supported') def _do(self, method='GET', params={}, data={}, **request_params): url = API_URLS[self.name] try: response = requests.request(method, url, params, data, request_params) except (requests.RequestException, requests.ConnectionError, requests.HTTPError, requests.URLRequired, requests.TooManyRedirectsas) as e: logging.error(e) return return response def get(self, data=None, **request_params): return self._do('GET', params=data, request_params=request_params) def post(self, data=None, **request_params): return self._do('GET', data=data, request_params=request_params) def put(self, data=None, **request_params): return self._do('GET', data=data, request_params=request_params) def patch(self, data=None, **request_params): return self._do('GET', data=data, request_params=request_params) def delete(self, data=None, **request_params): return self._do('GET', data=data, request_params=request_params)