from django.db.models import Q import os import logging from adm.constants import CTS as cts from adm.models import * import sys from google.oauth2 import service_account logger = logging.getLogger('dsp') class CredentialService(): def __init__(self, credentialType): self.credentialType = credentialType self.credentials = None if cts.STORAGE_TYPE == "GCP": baseDir = os.path.dirname(os.path.realpath(__file__)) pathCredentials = baseDir + "/auth/%s.json" % (self.credentialType) self.credentials = service_account.Credentials.from_service_account_file(pathCredentials) def credentials_account(self): return self.credentials class ParameterService(): def getParameterById(self, id_parameter): return Parameters.objects.get(pk=id_parameter) def getParameterByKey(self, key): params_set = Parameters.objects.filter(key=key) if params_set.exists() and params_set.count() > 0: return params_set[0] else: return None def getParameterValueByKey(self, key, defaultValue): params_set = Parameters.objects.filter(key=key) if params_set.exists() and params_set.count() > 0: parameter = params_set[0] value = parameter.value if str(parameter.key_type).upper() == 'INTEGER': return int(value) elif str(parameter.key_type).upper() == 'STRING': return str(value) elif str(parameter.key_type).upper() == 'DOUBLE' or str(parameter.key_type).upper() == 'FLOAT': return float(value) elif str(parameter.key_type).upper() == 'BOOLEAN' or str(parameter.key_type).upper() == 'BOOL': return bool(value) else: return value else: return defaultValue return None def setParameterValue(self, key, value): params_set = Parameters.objects.filter(key=key) if params_set.exists() and params_set.count() > 0: parameter = params_set[0] parameter.value = str(value) parameter.save() return None