Loading services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/default_controller.py +0 −1 Original line number Original line Diff line number Diff line Loading @@ -8,7 +8,6 @@ from flask import Response, request, current_app from flask_jwt_extended import jwt_required, get_jwt_identity from flask_jwt_extended import jwt_required, get_jwt_identity from cryptography import x509 from cryptography import x509 from cryptography.hazmat.backends import default_backend from cryptography.hazmat.backends import default_backend from ..core.publisher import Publisher from functools import wraps from functools import wraps invoker_operations = InvokerManagementOperations() invoker_operations = InvokerManagementOperations() Loading services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/apiinvokerenrolmentdetails.py +3 −8 Original line number Original line Diff line number Diff line Loading @@ -6,7 +6,7 @@ from .responses import bad_request_error, not_found_error, forbidden_error, inte from flask import current_app, Flask, Response from flask import current_app, Flask, Response import json import json from datetime import datetime from datetime import datetime from ..util import dict_to_camel_case, clean_empty from ..util import dict_to_camel_case, clean_empty, serialize_clean_camel_case from .auth_manager import AuthManager from .auth_manager import AuthManager from .resources import Resource from .resources import Resource from ..config import Config from ..config import Config Loading Loading @@ -91,7 +91,7 @@ class InvokerManagementOperations(Resource): self.auth_manager.add_auth_invoker(cert['data']['certificate'], api_invoker_id) self.auth_manager.add_auth_invoker(cert['data']['certificate'], api_invoker_id) res = make_response(object=dict_to_camel_case(clean_empty(apiinvokerenrolmentdetail.to_dict())), status=201) res = make_response(object=serialize_clean_camel_case(apiinvokerenrolmentdetail), status=201) res.headers['Location'] = "/api-invoker-management/v1/onboardedInvokers/" + str(api_invoker_id) res.headers['Location'] = "/api-invoker-management/v1/onboardedInvokers/" + str(api_invoker_id) if res.status_code == 201: if res.status_code == 201: Loading @@ -99,11 +99,6 @@ class InvokerManagementOperations(Resource): RedisEvent("API_INVOKER_ONBOARDED", "apiInvokerIds", [str(api_invoker_id)]).send_event() RedisEvent("API_INVOKER_ONBOARDED", "apiInvokerIds", [str(api_invoker_id)]).send_event() return res return res # except Exception as e: # exception = "An exception occurred in create invoker" # current_app.logger.error(exception + "::" + str(e)) # return internal_server_error(detail=exception, cause=str(e)) def update_apiinvokerenrolmentdetail(self, onboard_id, apiinvokerenrolmentdetail): def update_apiinvokerenrolmentdetail(self, onboard_id, apiinvokerenrolmentdetail): mycol = self.db.get_col_by_name(self.db.invoker_enrolment_details) mycol = self.db.get_col_by_name(self.db.invoker_enrolment_details) Loading Loading @@ -135,7 +130,7 @@ class InvokerManagementOperations(Resource): invoker_updated = APIInvokerEnrolmentDetails().from_dict(dict_to_camel_case(result)) invoker_updated = APIInvokerEnrolmentDetails().from_dict(dict_to_camel_case(result)) res = make_response(object=dict_to_camel_case(clean_empty(invoker_updated.to_dict())), status=200) res = make_response(object=serialize_clean_camel_case(invoker_updated), status=200) if res.status_code == 200: if res.status_code == 200: current_app.logger.info("Invoker Updated") current_app.logger.info("Invoker Updated") RedisEvent("API_INVOKER_UPDATED", "apiInvokerIds", [onboard_id]).send_event() RedisEvent("API_INVOKER_UPDATED", "apiInvokerIds", [onboard_id]).send_event() Loading services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/responses.py +10 −17 Original line number Original line Diff line number Diff line Loading @@ -2,47 +2,40 @@ from ..models.problem_details import ProblemDetails from ..encoder import JSONEncoder from ..encoder import JSONEncoder from flask import Response from flask import Response import json import json from ..util import dict_to_camel_case, clean_empty from ..util import serialize_clean_camel_case mimetype = "application/json" mimetype = "application/json" def make_response(object, status): def make_response(object, status): res = Response(json.dumps(object, cls=JSONEncoder), status=status, mimetype=mimetype) res = Response(json.dumps(object, cls=JSONEncoder), status=status, mimetype=mimetype) return res return res def internal_server_error(detail, cause): def internal_server_error(detail, cause): prob = ProblemDetails(title="Internal Server Error", status=500, detail=detail, cause=cause) prob = ProblemDetails(title="Internal Server Error", status=500, detail=detail, cause=cause) prob = serialize_clean_camel_case(prob) prob = prob.to_dict() prob = clean_empty(prob) prob = dict_to_camel_case(prob) return Response(json.dumps(prob, cls=JSONEncoder), status=500, mimetype=mimetype) return Response(json.dumps(prob, cls=JSONEncoder), status=500, mimetype=mimetype) def forbidden_error(detail, cause): def forbidden_error(detail, cause): prob = ProblemDetails(title="Forbidden", status=403, detail=detail, cause=cause) prob = ProblemDetails(title="Forbidden", status=403, detail=detail, cause=cause) prob = serialize_clean_camel_case(prob) prob = prob.to_dict() prob = clean_empty(prob) prob = dict_to_camel_case(prob) return Response(json.dumps(prob, cls=JSONEncoder), status=403, mimetype=mimetype) return Response(json.dumps(prob, cls=JSONEncoder), status=403, mimetype=mimetype) def bad_request_error(detail, cause, invalid_params): def bad_request_error(detail, cause, invalid_params): prob = ProblemDetails(title="Bad Request", status=400, detail=detail, cause=cause, invalid_params=invalid_params) prob = ProblemDetails(title="Bad Request", status=400, detail=detail, cause=cause, invalid_params=invalid_params) prob = serialize_clean_camel_case(prob) prob = prob.to_dict() prob = clean_empty(prob) prob = dict_to_camel_case(prob) return Response(json.dumps(prob, cls=JSONEncoder), status=400, mimetype=cause) return Response(json.dumps(prob, cls=JSONEncoder), status=400, mimetype=cause) def not_found_error(detail, cause): def not_found_error(detail, cause): prob = ProblemDetails(title="Not Found", status=404, detail=detail, cause=cause) prob = ProblemDetails(title="Not Found", status=404, detail=detail, cause=cause) prob = serialize_clean_camel_case(prob) prob = prob.to_dict() prob = clean_empty(prob) prob = dict_to_camel_case(prob) return Response(json.dumps(prob, cls=JSONEncoder), status=404, mimetype=mimetype) return Response(json.dumps(prob, cls=JSONEncoder), status=404, mimetype=mimetype) No newline at end of file services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/validate_user.py +2 −4 Original line number Original line Diff line number Diff line Loading @@ -4,7 +4,7 @@ from ..models.problem_details import ProblemDetails from ..encoder import JSONEncoder from ..encoder import JSONEncoder from .resources import Resource from .resources import Resource from .responses import internal_server_error from .responses import internal_server_error from ..util import dict_to_camel_case, clean_empty from ..util import serialize_clean_camel_case class ControlAccess(Resource): class ControlAccess(Resource): Loading @@ -20,9 +20,7 @@ class ControlAccess(Resource): if cert_entry is not None: if cert_entry is not None: if cert_entry["cert_signature"] != cert_signature: if cert_entry["cert_signature"] != cert_signature: prob = ProblemDetails(title="Unauthorized", detail="User not authorized", cause="You are not the owner of this resource") prob = ProblemDetails(title="Unauthorized", detail="User not authorized", cause="You are not the owner of this resource") prob = prob.to_dict() prob = serialize_clean_camel_case(prob) prob = clean_empty(prob) prob = dict_to_camel_case(prob) return Response(json.dumps(prob, cls=JSONEncoder), status=401, mimetype="application/json") return Response(json.dumps(prob, cls=JSONEncoder), status=401, mimetype="application/json") except Exception as e: except Exception as e: Loading services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/util.py +13 −2 Original line number Original line Diff line number Diff line Loading @@ -4,6 +4,14 @@ import six import typing_utils import typing_utils def serialize_clean_camel_case(obj): res = obj.to_dict() res = clean_empty(res) res = dict_to_camel_case(res) return res def clean_empty(d): def clean_empty(d): if isinstance(d, dict): if isinstance(d, dict): return { return { Loading @@ -23,8 +31,11 @@ def dict_to_camel_case(my_dict): for attr, value in my_dict.items(): for attr, value in my_dict.items(): if len(attr.split('_')) != 1: my_key = ''.join(word.title() for word in attr.split('_')) my_key = ''.join(word.title() for word in attr.split('_')) my_key = ''.join([my_key[0].lower(), my_key[1:]]) my_key = ''.join([my_key[0].lower(), my_key[1:]]) else: my_key = attr if isinstance(value, list): if isinstance(value, list): result[my_key] = list(map( result[my_key] = list(map( Loading Loading
services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/default_controller.py +0 −1 Original line number Original line Diff line number Diff line Loading @@ -8,7 +8,6 @@ from flask import Response, request, current_app from flask_jwt_extended import jwt_required, get_jwt_identity from flask_jwt_extended import jwt_required, get_jwt_identity from cryptography import x509 from cryptography import x509 from cryptography.hazmat.backends import default_backend from cryptography.hazmat.backends import default_backend from ..core.publisher import Publisher from functools import wraps from functools import wraps invoker_operations = InvokerManagementOperations() invoker_operations = InvokerManagementOperations() Loading
services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/apiinvokerenrolmentdetails.py +3 −8 Original line number Original line Diff line number Diff line Loading @@ -6,7 +6,7 @@ from .responses import bad_request_error, not_found_error, forbidden_error, inte from flask import current_app, Flask, Response from flask import current_app, Flask, Response import json import json from datetime import datetime from datetime import datetime from ..util import dict_to_camel_case, clean_empty from ..util import dict_to_camel_case, clean_empty, serialize_clean_camel_case from .auth_manager import AuthManager from .auth_manager import AuthManager from .resources import Resource from .resources import Resource from ..config import Config from ..config import Config Loading Loading @@ -91,7 +91,7 @@ class InvokerManagementOperations(Resource): self.auth_manager.add_auth_invoker(cert['data']['certificate'], api_invoker_id) self.auth_manager.add_auth_invoker(cert['data']['certificate'], api_invoker_id) res = make_response(object=dict_to_camel_case(clean_empty(apiinvokerenrolmentdetail.to_dict())), status=201) res = make_response(object=serialize_clean_camel_case(apiinvokerenrolmentdetail), status=201) res.headers['Location'] = "/api-invoker-management/v1/onboardedInvokers/" + str(api_invoker_id) res.headers['Location'] = "/api-invoker-management/v1/onboardedInvokers/" + str(api_invoker_id) if res.status_code == 201: if res.status_code == 201: Loading @@ -99,11 +99,6 @@ class InvokerManagementOperations(Resource): RedisEvent("API_INVOKER_ONBOARDED", "apiInvokerIds", [str(api_invoker_id)]).send_event() RedisEvent("API_INVOKER_ONBOARDED", "apiInvokerIds", [str(api_invoker_id)]).send_event() return res return res # except Exception as e: # exception = "An exception occurred in create invoker" # current_app.logger.error(exception + "::" + str(e)) # return internal_server_error(detail=exception, cause=str(e)) def update_apiinvokerenrolmentdetail(self, onboard_id, apiinvokerenrolmentdetail): def update_apiinvokerenrolmentdetail(self, onboard_id, apiinvokerenrolmentdetail): mycol = self.db.get_col_by_name(self.db.invoker_enrolment_details) mycol = self.db.get_col_by_name(self.db.invoker_enrolment_details) Loading Loading @@ -135,7 +130,7 @@ class InvokerManagementOperations(Resource): invoker_updated = APIInvokerEnrolmentDetails().from_dict(dict_to_camel_case(result)) invoker_updated = APIInvokerEnrolmentDetails().from_dict(dict_to_camel_case(result)) res = make_response(object=dict_to_camel_case(clean_empty(invoker_updated.to_dict())), status=200) res = make_response(object=serialize_clean_camel_case(invoker_updated), status=200) if res.status_code == 200: if res.status_code == 200: current_app.logger.info("Invoker Updated") current_app.logger.info("Invoker Updated") RedisEvent("API_INVOKER_UPDATED", "apiInvokerIds", [onboard_id]).send_event() RedisEvent("API_INVOKER_UPDATED", "apiInvokerIds", [onboard_id]).send_event() Loading
services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/responses.py +10 −17 Original line number Original line Diff line number Diff line Loading @@ -2,47 +2,40 @@ from ..models.problem_details import ProblemDetails from ..encoder import JSONEncoder from ..encoder import JSONEncoder from flask import Response from flask import Response import json import json from ..util import dict_to_camel_case, clean_empty from ..util import serialize_clean_camel_case mimetype = "application/json" mimetype = "application/json" def make_response(object, status): def make_response(object, status): res = Response(json.dumps(object, cls=JSONEncoder), status=status, mimetype=mimetype) res = Response(json.dumps(object, cls=JSONEncoder), status=status, mimetype=mimetype) return res return res def internal_server_error(detail, cause): def internal_server_error(detail, cause): prob = ProblemDetails(title="Internal Server Error", status=500, detail=detail, cause=cause) prob = ProblemDetails(title="Internal Server Error", status=500, detail=detail, cause=cause) prob = serialize_clean_camel_case(prob) prob = prob.to_dict() prob = clean_empty(prob) prob = dict_to_camel_case(prob) return Response(json.dumps(prob, cls=JSONEncoder), status=500, mimetype=mimetype) return Response(json.dumps(prob, cls=JSONEncoder), status=500, mimetype=mimetype) def forbidden_error(detail, cause): def forbidden_error(detail, cause): prob = ProblemDetails(title="Forbidden", status=403, detail=detail, cause=cause) prob = ProblemDetails(title="Forbidden", status=403, detail=detail, cause=cause) prob = serialize_clean_camel_case(prob) prob = prob.to_dict() prob = clean_empty(prob) prob = dict_to_camel_case(prob) return Response(json.dumps(prob, cls=JSONEncoder), status=403, mimetype=mimetype) return Response(json.dumps(prob, cls=JSONEncoder), status=403, mimetype=mimetype) def bad_request_error(detail, cause, invalid_params): def bad_request_error(detail, cause, invalid_params): prob = ProblemDetails(title="Bad Request", status=400, detail=detail, cause=cause, invalid_params=invalid_params) prob = ProblemDetails(title="Bad Request", status=400, detail=detail, cause=cause, invalid_params=invalid_params) prob = serialize_clean_camel_case(prob) prob = prob.to_dict() prob = clean_empty(prob) prob = dict_to_camel_case(prob) return Response(json.dumps(prob, cls=JSONEncoder), status=400, mimetype=cause) return Response(json.dumps(prob, cls=JSONEncoder), status=400, mimetype=cause) def not_found_error(detail, cause): def not_found_error(detail, cause): prob = ProblemDetails(title="Not Found", status=404, detail=detail, cause=cause) prob = ProblemDetails(title="Not Found", status=404, detail=detail, cause=cause) prob = serialize_clean_camel_case(prob) prob = prob.to_dict() prob = clean_empty(prob) prob = dict_to_camel_case(prob) return Response(json.dumps(prob, cls=JSONEncoder), status=404, mimetype=mimetype) return Response(json.dumps(prob, cls=JSONEncoder), status=404, mimetype=mimetype) No newline at end of file
services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/validate_user.py +2 −4 Original line number Original line Diff line number Diff line Loading @@ -4,7 +4,7 @@ from ..models.problem_details import ProblemDetails from ..encoder import JSONEncoder from ..encoder import JSONEncoder from .resources import Resource from .resources import Resource from .responses import internal_server_error from .responses import internal_server_error from ..util import dict_to_camel_case, clean_empty from ..util import serialize_clean_camel_case class ControlAccess(Resource): class ControlAccess(Resource): Loading @@ -20,9 +20,7 @@ class ControlAccess(Resource): if cert_entry is not None: if cert_entry is not None: if cert_entry["cert_signature"] != cert_signature: if cert_entry["cert_signature"] != cert_signature: prob = ProblemDetails(title="Unauthorized", detail="User not authorized", cause="You are not the owner of this resource") prob = ProblemDetails(title="Unauthorized", detail="User not authorized", cause="You are not the owner of this resource") prob = prob.to_dict() prob = serialize_clean_camel_case(prob) prob = clean_empty(prob) prob = dict_to_camel_case(prob) return Response(json.dumps(prob, cls=JSONEncoder), status=401, mimetype="application/json") return Response(json.dumps(prob, cls=JSONEncoder), status=401, mimetype="application/json") except Exception as e: except Exception as e: Loading
services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/util.py +13 −2 Original line number Original line Diff line number Diff line Loading @@ -4,6 +4,14 @@ import six import typing_utils import typing_utils def serialize_clean_camel_case(obj): res = obj.to_dict() res = clean_empty(res) res = dict_to_camel_case(res) return res def clean_empty(d): def clean_empty(d): if isinstance(d, dict): if isinstance(d, dict): return { return { Loading @@ -23,8 +31,11 @@ def dict_to_camel_case(my_dict): for attr, value in my_dict.items(): for attr, value in my_dict.items(): if len(attr.split('_')) != 1: my_key = ''.join(word.title() for word in attr.split('_')) my_key = ''.join(word.title() for word in attr.split('_')) my_key = ''.join([my_key[0].lower(), my_key[1:]]) my_key = ''.join([my_key[0].lower(), my_key[1:]]) else: my_key = attr if isinstance(value, list): if isinstance(value, list): result[my_key] = list(map( result[my_key] = list(map( Loading