Module prefeitura_rio.core
Expand source code
# -*- coding: utf-8 -*-
from os import getenv
from typing import Union
from loguru import logger
def getenv_or_action(key: str, default: str = None, action: str = "raise") -> Union[str, None]:
"""
Gets an environment variable or executes an action.
Args:
key (str): The environment variable key.
default (str, optional): The default value. Defaults to `None`.
action (str, optional): The action to execute. Must be one of `'raise'`,
`'warn'` or `'ignore'`. Defaults to `'raise'`.
Returns:
Union[str, None]: The environment variable value or the default value.
"""
if action not in ("raise", "warn", "ignore"):
raise ValueError(f"Invalid action '{action}'. Must be one of 'raise', 'warn' or 'ignore'.")
value = getenv(key, default)
if value is None:
if action == "raise":
raise ValueError(f"Environment variable '{key}' not found.")
elif action == "warn":
logger.warning(f"Environment variable '{key}' not found.")
return value
class Settings:
__slots__ = ()
@property
def SGRC_URL(self) -> str:
url = getenv_or_action("SGRC_URL", action="raise")
if url.endswith("/"):
url = url[:-1]
return url
@property
def SGRC_URL_NEW_TICKET(self) -> str:
return self.SGRC_URL + "/api/WSPortalWeb/NovoChamado"
@property
def SGRC_URL_GET_PROTOCOLS(self) -> str:
return self.SGRC_URL + "/api/WSPortalWeb/RetornaProtocolos"
@property
def SGRC_URL_GET_PROTOCOL_TICKETS(self) -> str:
return self.SGRC_URL + "/api/WSPortalWeb/RetornaChamadosProtocolo"
@property
def SGRC_URL_GET_TICKET_DETAILS(self) -> str:
return self.SGRC_URL + "/api/WSPortalWeb/RetornaDetalhesChamado"
@property
def SGRC_URL_GET_PROTOCOL_TICKETS_DETAILS(self) -> str:
return self.SGRC_URL + "/api/WSPortalWeb/RetornaChamadosDetalhadosProtocolo"
@property
def SGRC_URL_VERSION(self) -> str:
return self.SGRC_URL + "/api/WSPortalWeb/VersaoDoServico"
@property
def SGRC_AUTHORIZATION_HEADER(self) -> str:
return getenv_or_action("SGRC_AUTHORIZATION_HEADER", action="raise")
@property
def SGRC_BODY_TOKEN(self) -> str:
return getenv_or_action("SGRC_BODY_TOKEN", action="raise")
settings = Settings()
Functions
def getenv_or_action(key: str, default: str = None, action: str = 'raise') ‑> Optional[str]
-
Gets an environment variable or executes an action.
Args
key
:str
- The environment variable key.
default
:str
, optional- The default value. Defaults to
None
. action
:str
, optional- The action to execute. Must be one of
'raise'
,'warn'
or'ignore'
. Defaults to'raise'
.
Returns
Union[str, None]
- The environment variable value or the default value.
Expand source code
def getenv_or_action(key: str, default: str = None, action: str = "raise") -> Union[str, None]: """ Gets an environment variable or executes an action. Args: key (str): The environment variable key. default (str, optional): The default value. Defaults to `None`. action (str, optional): The action to execute. Must be one of `'raise'`, `'warn'` or `'ignore'`. Defaults to `'raise'`. Returns: Union[str, None]: The environment variable value or the default value. """ if action not in ("raise", "warn", "ignore"): raise ValueError(f"Invalid action '{action}'. Must be one of 'raise', 'warn' or 'ignore'.") value = getenv(key, default) if value is None: if action == "raise": raise ValueError(f"Environment variable '{key}' not found.") elif action == "warn": logger.warning(f"Environment variable '{key}' not found.") return value
Classes
class Settings
-
Expand source code
class Settings: __slots__ = () @property def SGRC_URL(self) -> str: url = getenv_or_action("SGRC_URL", action="raise") if url.endswith("/"): url = url[:-1] return url @property def SGRC_URL_NEW_TICKET(self) -> str: return self.SGRC_URL + "/api/WSPortalWeb/NovoChamado" @property def SGRC_URL_GET_PROTOCOLS(self) -> str: return self.SGRC_URL + "/api/WSPortalWeb/RetornaProtocolos" @property def SGRC_URL_GET_PROTOCOL_TICKETS(self) -> str: return self.SGRC_URL + "/api/WSPortalWeb/RetornaChamadosProtocolo" @property def SGRC_URL_GET_TICKET_DETAILS(self) -> str: return self.SGRC_URL + "/api/WSPortalWeb/RetornaDetalhesChamado" @property def SGRC_URL_GET_PROTOCOL_TICKETS_DETAILS(self) -> str: return self.SGRC_URL + "/api/WSPortalWeb/RetornaChamadosDetalhadosProtocolo" @property def SGRC_URL_VERSION(self) -> str: return self.SGRC_URL + "/api/WSPortalWeb/VersaoDoServico" @property def SGRC_AUTHORIZATION_HEADER(self) -> str: return getenv_or_action("SGRC_AUTHORIZATION_HEADER", action="raise") @property def SGRC_BODY_TOKEN(self) -> str: return getenv_or_action("SGRC_BODY_TOKEN", action="raise")
Instance variables
var SGRC_AUTHORIZATION_HEADER : str
-
Expand source code
@property def SGRC_AUTHORIZATION_HEADER(self) -> str: return getenv_or_action("SGRC_AUTHORIZATION_HEADER", action="raise")
var SGRC_BODY_TOKEN : str
-
Expand source code
@property def SGRC_BODY_TOKEN(self) -> str: return getenv_or_action("SGRC_BODY_TOKEN", action="raise")
var SGRC_URL : str
-
Expand source code
@property def SGRC_URL(self) -> str: url = getenv_or_action("SGRC_URL", action="raise") if url.endswith("/"): url = url[:-1] return url
var SGRC_URL_GET_PROTOCOLS : str
-
Expand source code
@property def SGRC_URL_GET_PROTOCOLS(self) -> str: return self.SGRC_URL + "/api/WSPortalWeb/RetornaProtocolos"
var SGRC_URL_GET_PROTOCOL_TICKETS : str
-
Expand source code
@property def SGRC_URL_GET_PROTOCOL_TICKETS(self) -> str: return self.SGRC_URL + "/api/WSPortalWeb/RetornaChamadosProtocolo"
var SGRC_URL_GET_PROTOCOL_TICKETS_DETAILS : str
-
Expand source code
@property def SGRC_URL_GET_PROTOCOL_TICKETS_DETAILS(self) -> str: return self.SGRC_URL + "/api/WSPortalWeb/RetornaChamadosDetalhadosProtocolo"
var SGRC_URL_GET_TICKET_DETAILS : str
-
Expand source code
@property def SGRC_URL_GET_TICKET_DETAILS(self) -> str: return self.SGRC_URL + "/api/WSPortalWeb/RetornaDetalhesChamado"
var SGRC_URL_NEW_TICKET : str
-
Expand source code
@property def SGRC_URL_NEW_TICKET(self) -> str: return self.SGRC_URL + "/api/WSPortalWeb/NovoChamado"
var SGRC_URL_VERSION : str
-
Expand source code
@property def SGRC_URL_VERSION(self) -> str: return self.SGRC_URL + "/api/WSPortalWeb/VersaoDoServico"