[#4] Make password and api_key optional in AgencyConf

This commit is contained in:
Csaba 2024-03-01 14:40:06 +01:00
parent abf5b071a4
commit acd06b522a
5 changed files with 8 additions and 6 deletions

View file

@ -1,3 +1,4 @@
from typing import Optional
from pydantic import ConfigDict, BaseModel, Field from pydantic import ConfigDict, BaseModel, Field
@ -9,13 +10,13 @@ class AgencyConf(BaseModel):
pattern='^[a-zA-Z0-9]+$', pattern='^[a-zA-Z0-9]+$',
examples=["mfdz"]) examples=["mfdz"])
api_key: str = Field( api_key: Optional[str] = Field(None,
description="The agency's API key for using the API", description="The agency's API key for using the API",
min_length=20, min_length=20,
max_length=256, max_length=256,
pattern=r'^[a-zA-Z0-9]+$', pattern=r'^[a-zA-Z0-9]+$',
examples=["d8yLuY4DqMEUCLcfJASi"]) examples=["d8yLuY4DqMEUCLcfJASi"])
password: str = Field( password: Optional[str] = Field(None,
description="The agency's password for generating JWT tokens", description="The agency's password for generating JWT tokens",
min_length=8, min_length=8,
max_length=256, max_length=256,

View file

@ -33,7 +33,8 @@ class AgencyConfService:
api_key = agency_conf.api_key api_key = agency_conf.api_key
self.agency_id_to_agency_conf[agency_id] = agency_conf self.agency_id_to_agency_conf[agency_id] = agency_conf
self.api_key_to_agency_id[api_key] = agency_conf.agency_id if api_key is not None:
self.api_key_to_agency_id[api_key] = agency_conf.agency_id
def get_agency_conf(self, agency_id: str) -> AgencyConf: def get_agency_conf(self, agency_id: str) -> AgencyConf:
agency_conf = self.agency_id_to_agency_conf.get(agency_id) agency_conf = self.agency_id_to_agency_conf.get(agency_id)

View file

@ -4,7 +4,6 @@ from pydantic_settings import BaseSettings
class Config(BaseSettings): class Config(BaseSettings):
admin_token: str admin_token: str
secret_key: str
ride2go_query_data: str ride2go_query_data: str
env: str = 'DEV' env: str = 'DEV'
graphhopper_base_url: str = 'https://api.mfdz.de/gh' graphhopper_base_url: str = 'https://api.mfdz.de/gh'

View file

@ -15,9 +15,9 @@ from amarillo.services.agencies import AgencyService
from amarillo.services.agencyconf import AgencyConfService from amarillo.services.agencyconf import AgencyConfService
from amarillo.models.Carpool import Agency from amarillo.models.Carpool import Agency
from amarillo.services.config import config from amarillo.services.secrets import secrets
SECRET_KEY = config.secret_key SECRET_KEY = secrets.secret_key
ALGORITHM = "HS256" ALGORITHM = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES = 30 ACCESS_TOKEN_EXPIRE_MINUTES = 30

View file

@ -4,6 +4,7 @@ from pydantic_settings import BaseSettings
class Secrets(BaseSettings): class Secrets(BaseSettings):
model_config = ConfigDict(extra='allow') model_config = ConfigDict(extra='allow')
ride2go_token: str = Field(None, env = 'RIDE2GO_TOKEN') ride2go_token: str = Field(None, env = 'RIDE2GO_TOKEN')
secret_key: str
# Read if file exists, otherwise no error (it's in .gitignore) # Read if file exists, otherwise no error (it's in .gitignore)