Commit e7af012e authored by Stavros-Anastasios Charismiadis's avatar Stavros-Anastasios Charismiadis
Browse files

Merge branch 'OCF48-refactor-code-from-production-server-branch' into 'staging'

Code refactoring

See merge request !37
parents afa6fd2f cd923dd1
Loading
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -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()
+3 −8
Original line number Original line Diff line number Diff line
@@ -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
@@ -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:
@@ -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)
@@ -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()
+10 −17
Original line number Original line Diff line number Diff line
@@ -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
+2 −4
Original line number Original line Diff line number Diff line
@@ -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):
@@ -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:
+13 −2
Original line number Original line Diff line number Diff line
@@ -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 {
@@ -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