"""Route handlers for Identity endpoints.""" from account.api import app from account.constants import error from account.logic import ( identity as identity_logic, ) from flask import request from owsrequest import flask_request from owsresponse import response from owsresponse.adaptors.flask import flaskify @app.route('/identity', methods=['GET']) def identity(): """Get identity of account with a grass session. Returns: Flask.response: a dict of account info. """ access_rule_decision = flask_request.verify_rules_access_standalone(request) if not access_rule_decision: return flaskify( response.create_error_response( code=error.ERROR_CODE_AUTHORIZATION, message='Unauthorized', status=401 ) ) grass_account_type, grass_account_id = flask_request.get_grass_headers(request) user_id = request.headers.get('Orchard-user-id') if not grass_account_type and not user_id: return flaskify(response.Response(status=401)) identity_response = identity_logic.get_identity(grass_account_type, grass_account_id) if not identity_response and user_id: identity_response = identity_logic.get_user_details(user_id) return flaskify(identity_response)