"""Route handlers for E2E endpoints.""" from flask import request from owsresponse.adaptors.flask import flaskify from permissions.api import app from permissions.logic import resource from permissions.utils.api_utils import validate_request_data from permissions.validations.schemas.resource import ResourceSchema @app.route('/e2e/resource//', methods=['GET']) def get_resources(resource_type, resource_id): """Get node of type/label resource Type. Args: resource_type (str): Type of resource eg: product, artistinfo or all. resource_id (str): Resource identifier. """ return flaskify(resource.get_resources(resource_type, resource_id)) @app.route('/e2e/resource//', methods=['POST']) @validate_request_data(ResourceSchema()) def create_resource(resource_type, resource_id, deserialize_schema): """Create node of type/label resource Type. Args: resource_type (str): Type of resource eg: product, artistinfo or all. resource_id (str): Resource identifier. deserialize_schema (dict): field names mapped to deserialized values. Json body: dict: containing additional details like { name: "My Test Artist" } """ return flaskify(resource.create_resource(resource_type, resource_id, request.json)) @app.route('/e2e/resource//', methods=['DELETE']) @validate_request_data(ResourceSchema()) def delete_resource(resource_type, resource_id, deserialize_schema): """Delete node of type/label resource Type. Args: resource_type (str): Type of resource eg: product, artistinfo or all. resource_id (str): Resource identifier. deserialize_schema (dict): field names mapped to deserialized values. """ return flaskify(resource.delete_resource(resource_type, resource_id))