File size: 1,789 Bytes
2f43b92
 
15ea62b
0359012
15ea62b
2f43b92
15ea62b
4e4ad14
15ea62b
 
4e4ad14
15ea62b
d67439e
 
64a3eee
 
 
4e4ad14
d67439e
 
4e4ad14
d67439e
9d9b02c
4e4ad14
8713eac
 
 
 
 
15ea62b
0359012
15ea62b
 
 
 
 
0359012
15ea62b
 
 
 
 
0359012
4e4ad14
 
 
15ea62b
 
 
 
0359012
4e4ad14
 
 
d67439e
 
 
 
 
4e4ad14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from os import environ as env

from typing import Any, Dict, List, Optional, Union
from pydantic import AnyHttpUrl, field_validator

from pydantic_settings import BaseSettings


class Settings(BaseSettings):
    API_V1_STR: str = "/api/v1"

    PROJECT_NAME: str = "Whisper API"
    PROJECT_VERSION: str = "0.1.0"
    SECRET_KEY: str = env.get("SECRET_KEY")
    ACCESS_TOKEN_EXPIRE_MINUTES: int = (
        env.get("ACCESS_TOKEN_EXPIRE_MINUTES") or 60 * 24 * 7
    )

    SERVER_NAME: str = env.get("SERVER_NAME")
    SERVER_HOST: AnyHttpUrl = env.get("SERVER_HOST")

    POSTGRES_DATABASE_URL: str = env.get("POSTGRES_DATABASE_URL")
    TEST_DATABASE_URL: str = env.get("POSTGRES_DATABASE_URL")

    BACKEND_CORS_ORIGINS: List[AnyHttpUrl] = [
        "http://localhost:3000",
        "http://localhost:8080",
        "http://localhost:8000",
    ]

    @field_validator("SECRET_KEY")
    def secret_key_must_be_set(cls, v: Optional[str], values: Dict[str, Any]) -> str:
        if not v:
            raise ValueError("SECRET_KEY must be set")
        return v

    @field_validator("SERVER_NAME")
    def server_name_must_be_set(cls, v: Optional[str], values: Dict[str, Any]) -> str:
        if not v:
            raise ValueError("SERVER_NAME must be set")
        return v

    @field_validator("SERVER_HOST")
    def server_host_must_be_set(
        cls, v: Optional[str], values: Dict[str, Any]
    ) -> AnyHttpUrl:
        if not v:
            raise ValueError("SERVER_HOST must be set")
        return v

    @field_validator("POSTGRES_DATABASE_URL")
    def postgres_db_url_must_be_set(
        cls, v: Optional[str], values: Dict[str, Any]
    ) -> str:
        if not v:
            raise ValueError("POSTGRES_DATABASE_URL must be set")
        return v


settings = Settings()