""" Endpoinds manipulating items """ __author__ = '@tormakris' __copyright__ = "Copyright 2020, onSpot Team" __module_name__ = "itemapi" __version__text__ = "1" from flask import request, current_app, abort from flaskaddons.fred import flaskred from resources.apiinteractionresource import APIInteractionResource class ItemApi(APIInteractionResource): """ See: https://swagger.kmlabz.com/?urls.primaryName=onSpot%20Backend#/backend/getItem """ def get(self, itemid: str): try: flaskred.get(request.headers.get('Authorization')).decode('UTF-8') except Exception as e: current_app.logger.info(e) abort(401, "unauthorized") try: itemtype = flaskred.get(itemid).decode('UTF-8') except Exception as e: current_app.logger.warning(e) abort(404, "unknown item") if itemtype == 'release': return self.getreleaseinfo(itemid), 200 elif itemtype == 'artist': return self.getartistinfo(itemid), 200 elif itemtype == 'work': return self.getworkinfo(itemid), 200 elif itemtype == 'recording': return self.getrecordinginfo(itemid), 200 else: abort(417, "wrong type of item")