Commit 5e1143d2 authored by nacho's avatar nacho
Browse files

add delete endpoints

parent 30a42853
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -55,17 +55,14 @@ python main.py
    - List of Invokers registered in CAPIF
    - List of Provider registered in CAPIF
    - List of Services registered in CAPIF by providers
    - List of Events Subscriptions registered in CAPIF by Invokers/Providers
    - List of Security Context registered in CAPIF by Invokers
    - Delete of Security Context registered in CAPIF

2. Pending Features

    - Delete Invokers registered in CAPIF
    - Delete Providers registered in CAPIF
    - Delete Services registered in CAPIF by providers
    - Delete Events Subscriptions registered in CAPIF by Invokers/Providers
    - Delete Security Context registered in CAPIF by Invokers
    - List of Events Subscriptions registered in CAPIF by Invokers/Providers


## Endpoint routes

+27 −2
Original line number Diff line number Diff line
@@ -24,7 +24,15 @@ async def get_invokers(Authorize: AuthJWT = Depends()):

    return invokers_ops.get_all_invokers()

@router.delete("/resources/invokers/{invoker_id}",)
async def delete_invoker(invoker_id, Authorize: AuthJWT = Depends()):
    """
    Get list of all invokers registered in CAPIF
    """

    Authorize.jwt_required()

    return invokers_ops.remove_invoker(invoker_id)


@router.get('/resources/invokers/security/{invoker_id}')
@@ -53,10 +61,18 @@ async def get_all_providers(Authorize: AuthJWT = Depends()):

    Authorize.jwt_required()

    # Use create_access_token() and create_refresh_token() to create our
    # access and refresh tokens
    return providers_ops.get_all_providers()

@router.delete("/resources/providers/{provider_id}",)
async def delete_provider(provider_id, Authorize: AuthJWT = Depends()):
    """
    Get list of all provider registered in CAPIF
    """

    Authorize.jwt_required()

    return providers_ops.remove_provider(provider_id)


@router.get('/resources/providers/services/{apf_id}')
def get_provider_services_resources(apf_id, Authorize: AuthJWT = Depends()):
@@ -76,6 +92,15 @@ def get_provider_services_resources(apf_id, Authorize: AuthJWT = Depends()):

    return "not implemented yet"

@router.delete('/resources/provider/services/{apf_id}/{service_id}')
def delete_provider_service(apf_id, service_id, Authorize: AuthJWT = Depends()):
    """
    Retreive all resources of provider, services, event subscriptions
    """
    Authorize.jwt_required()

    return providers_ops.remove_service(apf_id, service_id)

@router.delete('/resources/invokers/security/{invoker_id}')
def delete_invoker_security_context(invoker_id, Authorize: AuthJWT = Depends()):
    """
+39 −11
Original line number Diff line number Diff line
@@ -10,8 +10,6 @@ HOSTAME = "localhost"
class CapifOps():

    def __init__(self):
        self.payload = {}
        self.files = {}
        self.headers = {
            'Content-Type': 'application/json'
        }
@@ -19,16 +17,46 @@ class CapifOps():
    def delete_security_context(self, id):
        url = f"https://{HOSTAME}/capif-security/v1/trustedInvokers/{id}"

        response = self.__make_request(url)

        return response

    def delete_service(self, id, service_id):

        url = f"https://{HOSTAME}/published-apis/v1/{id}/service-apis/{service_id}"

        response = self.__make_request(url)

        return response

    def delete_event_subscription(self, id, subscription_id):

        url = f"https://{HOSTAME}/capif-events/v1/{id}/subscriptions/{subscription_id}"

        response = self.__make_request(url)

        return response
    def delete_invoker(self, id):

        url = f"https://{HOSTAME}/api-invoker-management/v1/onboardedInvokers/{id}"

        response = self.__make_request(url)

        return response

    def delete_provider(self, id):

        url = f"https://{HOSTAME}/api-provider-management/v1/registrations/{id}"

        response = self.__make_request(url)

        return response

    def __make_request(self, url):

        try:
            response = requests.delete(url, headers=self.headers, data=self.payload, files=self.files, cert=('certs/cert_backoffice.crt', 'certs/private.key'), verify=False)
            response = requests.delete(url, headers=self.headers,  cert=('certs/cert_backoffice.crt', 'certs/private.key'), verify=False)
            return response
        except Exception as e:
            logger.error("Something wrong happens: ", e)
            return "Shometing wrong happens: ", e
 No newline at end of file

    def delete_service(self, id):

        return "Not implemented yet"

    def delete_event_subscription(self, id):
        return "Not implemented yet"
 No newline at end of file
+12 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ class InvokersResources(Resource):
            print(e)
            return "Error when retreiving invoker list: ", e

    
    def get_security_context(self, id):

        security_context_col = self.db.get_col_by_name(self.db.security_context)
@@ -44,6 +45,17 @@ class InvokersResources(Resource):
            print(e)
            return "Error when retreiving invoker list: ", e

    def remove_invoker(self, id):
        try:
            response = self.capif.delete_invoker(id)
            logger.info(response)

            return "Done", 200

        except Exception as e:
            logger.error("Error while delete invoker: ", e)
            return "Error while delete invoker ", e

    def remove_security_context(self, id):
        try:
            response = self.capif.delete_security_context(id)
+23 −1
Original line number Diff line number Diff line
@@ -45,3 +45,25 @@ class ProviderResources(Resource):

        except Exception as e:
            return "Error when retreiving apf service list: ", e

    def remove_provider(self, id):
        try:
            response = self.capif.delete_provider(id)
            logger.info(response)

            return "Done", 200

        except Exception as e:
            logger.error("Error while delete provider: ", e)
            return "Error while delete provider ", e

    def remove_service(self, id, service_id):
        try:
            response = self.capif.delete_service(id, service_id)
            logger.info(response)

            return "Done", 200

        except Exception as e:
            logger.error("Error while delete security context: ", e)
            return "Error while delete security context", e
 No newline at end of file