From b8e55c85ccf78c5ffa1e118413fdb3c8fab1aa16 Mon Sep 17 00:00:00 2001 From: Sarah Sloan Date: Wed, 5 Jul 2023 14:40:09 +0100 Subject: [PATCH] adding vcap_services class from frontend --- fsd_utils/toggles/vcap_services.py | 30 ++++++++++++++++++++++++++++++ pyproject.toml | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 fsd_utils/toggles/vcap_services.py diff --git a/fsd_utils/toggles/vcap_services.py b/fsd_utils/toggles/vcap_services.py new file mode 100644 index 0000000..6fba257 --- /dev/null +++ b/fsd_utils/toggles/vcap_services.py @@ -0,0 +1,30 @@ +import json +from dataclasses import dataclass + + +@dataclass +class VcapServices(object): + + services: dict + + @staticmethod + def from_env_json(json_string: str): + json_dict = dict(json.loads(json_string)) + vcap_services = VcapServices(services=json_dict) + return vcap_services + + def does_service_exist(self, service_key: str) -> bool: + return service_key in self.services.keys() + + def get_service_by_name(self, group_key: str, name: str) -> dict: + service_group = self.services.get(group_key) + if service_group: + for service in service_group: + if service.get("name") == name: + return service + raise Exception(f"Service name '{name}' not found") + raise Exception(f"Service group '{group_key}' not found") + + def get_service_credentials_value(self, group_key: str, name: str, key: str): + service = self.get_service_by_name(group_key, name) + return service.get("credentials").get(key) diff --git a/pyproject.toml b/pyproject.toml index 5853b66..c59011f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "funding-service-design-utils" -version = "2.0.8" +version = "2.0.9" authors = [ { name="DLUHC", email="FundingServiceDesignTeam@levellingup.gov.uk" }, ]