"""Handler for company brands.""" from flask import request from owsrequest import flask_request from owsresponse import response from owsresponse.adaptors.flask import flaskify from account.api import app from account.constants import error from account.models import company_brand as company_brand_model @app.route('/brands', methods=['GET']) def get_brands(): """Get list of company brands. Legacy endpoint — returns a flat list of company brands. Returns: Flask.response. """ 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=403, ) ) company_brands = company_brand_model.get_company_brands() return flaskify(response.Response([cb.to_dict() for cb in company_brands])) @app.route('/companies', methods=['GET']) def get_companies(): """Get list of companies (company_brands). Returns: Flask.response. """ company_brands = company_brand_model.get_company_brands() return flaskify(response.Response({'companies': [cb.to_dict() for cb in company_brands]})) @app.route('/companies/', methods=['GET']) def get_company_by_uuid(company_uuid): """Get a single company (company_brand) by UUID.""" cb = company_brand_model.get_company_brand(company_uuid) if not cb: return flaskify( response.create_error_response( code=error.ERROR_CODE_NOT_FOUND, message='Company brand not found', status=404, ) ) return flaskify(response.Response(cb.to_dict()))