angeetoile commited on
Commit
2d785de
·
1 Parent(s): f55a6b5

fix(config): correct frontend URLs setting

Browse files
Files changed (1) hide show
  1. app/core/config.py +24 -10
app/core/config.py CHANGED
@@ -1,7 +1,10 @@
1
  from functools import lru_cache
2
 
3
  from pydantic import Field, SecretStr
4
- from pydantic_settings import BaseSettings, SettingsConfigDict
 
 
 
5
 
6
 
7
  class Settings(BaseSettings):
@@ -9,6 +12,7 @@ class Settings(BaseSettings):
9
  app_version: str = "0.1.0"
10
  environment: str = "production"
11
  api_v1_prefix: str = "/api/v1"
 
12
  debug: bool = Field(
13
  default=False,
14
  validation_alias="DEBUG",
@@ -18,14 +22,16 @@ class Settings(BaseSettings):
18
  default=None,
19
  validation_alias="DATABASE_URL",
20
  )
 
21
  sync_api_key: SecretStr | None = Field(
22
  default=None,
23
  validation_alias="SYNC_API_KEY",
24
  )
 
25
  frontend_urls: str = Field(
26
- default=(
27
- "http://localhost:5173,",
28
- "https://verifpulse-platform-zvit.vercel.app/"
29
  ),
30
  validation_alias="FRONTEND_URLS",
31
  )
@@ -41,20 +47,27 @@ class Settings(BaseSettings):
41
  def sqlalchemy_database_url(self) -> str:
42
  if not self.database_url:
43
  raise RuntimeError(
44
- "La variable d’environnement DATABASE_URL est absente."
 
45
  )
46
 
47
- if self.database_url.startswith("postgresql+psycopg://"):
 
 
48
  return self.database_url
49
 
50
- if self.database_url.startswith("postgresql://"):
 
 
51
  return self.database_url.replace(
52
  "postgresql://",
53
  "postgresql+psycopg://",
54
  1,
55
  )
56
 
57
- if self.database_url.startswith("postgres://"):
 
 
58
  return self.database_url.replace(
59
  "postgres://",
60
  "postgresql+psycopg://",
@@ -62,13 +75,14 @@ class Settings(BaseSettings):
62
  )
63
 
64
  raise RuntimeError(
65
- "DATABASE_URL doit être une URL PostgreSQL valide."
 
66
  )
67
 
68
  @property
69
  def allowed_origins(self) -> list[str]:
70
  return [
71
- url.strip()
72
  for url in self.frontend_urls.split(",")
73
  if url.strip()
74
  ]
 
1
  from functools import lru_cache
2
 
3
  from pydantic import Field, SecretStr
4
+ from pydantic_settings import (
5
+ BaseSettings,
6
+ SettingsConfigDict,
7
+ )
8
 
9
 
10
  class Settings(BaseSettings):
 
12
  app_version: str = "0.1.0"
13
  environment: str = "production"
14
  api_v1_prefix: str = "/api/v1"
15
+
16
  debug: bool = Field(
17
  default=False,
18
  validation_alias="DEBUG",
 
22
  default=None,
23
  validation_alias="DATABASE_URL",
24
  )
25
+
26
  sync_api_key: SecretStr | None = Field(
27
  default=None,
28
  validation_alias="SYNC_API_KEY",
29
  )
30
+
31
  frontend_urls: str = Field(
32
+ default=(
33
+ "http://localhost:5173,"
34
+ "https://verifpulse-platform-zvit.vercel.app"
35
  ),
36
  validation_alias="FRONTEND_URLS",
37
  )
 
47
  def sqlalchemy_database_url(self) -> str:
48
  if not self.database_url:
49
  raise RuntimeError(
50
+ "La variable d’environnement "
51
+ "DATABASE_URL est absente."
52
  )
53
 
54
+ if self.database_url.startswith(
55
+ "postgresql+psycopg://"
56
+ ):
57
  return self.database_url
58
 
59
+ if self.database_url.startswith(
60
+ "postgresql://"
61
+ ):
62
  return self.database_url.replace(
63
  "postgresql://",
64
  "postgresql+psycopg://",
65
  1,
66
  )
67
 
68
+ if self.database_url.startswith(
69
+ "postgres://"
70
+ ):
71
  return self.database_url.replace(
72
  "postgres://",
73
  "postgresql+psycopg://",
 
75
  )
76
 
77
  raise RuntimeError(
78
+ "DATABASE_URL doit être une URL "
79
+ "PostgreSQL valide."
80
  )
81
 
82
  @property
83
  def allowed_origins(self) -> list[str]:
84
  return [
85
+ url.strip().rstrip("/")
86
  for url in self.frontend_urls.split(",")
87
  if url.strip()
88
  ]