From f5999516fa3722922ac507940deca75469ce9664 Mon Sep 17 00:00:00 2001 From: Houkime <> Date: Wed, 22 Nov 2023 14:47:57 +0000 Subject: [PATCH] feature(services): better error reporting in disable and enable service --- .../graphql/mutations/services_mutations.py | 39 ++++++++++++++----- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/selfprivacy_api/graphql/mutations/services_mutations.py b/selfprivacy_api/graphql/mutations/services_mutations.py index bac4d88..ad3b1b9 100644 --- a/selfprivacy_api/graphql/mutations/services_mutations.py +++ b/selfprivacy_api/graphql/mutations/services_mutations.py @@ -48,14 +48,22 @@ class ServicesMutations: @strawberry.mutation(permission_classes=[IsAuthenticated]) def enable_service(self, service_id: str) -> ServiceMutationReturn: """Enable service.""" - service = get_service_by_id(service_id) - if service is None: + try: + service = get_service_by_id(service_id) + if service is None: + return ServiceMutationReturn( + success=False, + message="Service not found.", + code=404, + ) + service.enable() + except Exception as e: return ServiceMutationReturn( success=False, - message="Service not found.", - code=404, + message=format_error(e), + code=400, ) - service.enable() + return ServiceMutationReturn( success=True, message="Service enabled.", @@ -66,14 +74,21 @@ class ServicesMutations: @strawberry.mutation(permission_classes=[IsAuthenticated]) def disable_service(self, service_id: str) -> ServiceMutationReturn: """Disable service.""" - service = get_service_by_id(service_id) - if service is None: + try: + service = get_service_by_id(service_id) + if service is None: + return ServiceMutationReturn( + success=False, + message="Service not found.", + code=404, + ) + service.disable() + except Exception as e: return ServiceMutationReturn( success=False, - message="Service not found.", - code=404, + message=format_error(e), + code=400, ) - service.disable() return ServiceMutationReturn( success=True, message="Service disabled.", @@ -177,3 +192,7 @@ class ServicesMutations: service=service_to_graphql_service(service), job=job_to_api_job(job), ) + + +def format_error(e: Exception) -> str: + return type(e).__name__ + ": " + str(e)