Skip to content

Commit 9fe1533

Browse files
authored
Merge pull request #33 from ArielMAJ/release/2.0.2
Release/2.0.2
2 parents 585a02e + f88e4d0 commit 9fe1533

6 files changed

Lines changed: 984 additions & 935 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ recreate: ## Recreate all containers.
3131

3232
.PHONY: up-database
3333
up-database: ## Start database container.
34-
$(COMPOSE) -f ./docker-compose.yml up -d database --force-recreate
34+
$(COMPOSE) -f ./docker-compose.yml up -d sso-db --force-recreate
3535

3636
.PHONY: down
3737
down: ## Stop all containers.

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ services:
1010
ports:
1111
- "${SSO_PORT:-3001}:3000"
1212
depends_on:
13-
- database
13+
- sso-db
1414

1515
sso-db:
1616
image: postgres:16.3

poetry.lock

Lines changed: 958 additions & 915 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "fastapi-backend-template"
3-
version = "2.0.1"
3+
version = "2.0.2"
44
description = "A FastAPI backend template."
55
authors = ["ArielMAJ <ariel.maj@hotmail.com>"]
66
readme = "README.md"

requirements.txt

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
alembic==1.16.1 ; python_version >= "3.12" and python_version < "4.0"
1+
alembic==1.16.5 ; python_version >= "3.12" and python_version < "4.0"
22
annotated-types==0.7.0 ; python_version >= "3.12" and python_version < "4.0"
3-
anyio==4.9.0 ; python_version >= "3.12" and python_version < "4.0"
3+
anyio==4.10.0 ; python_version >= "3.12" and python_version < "4.0"
44
asyncpg==0.30.0 ; python_version >= "3.12" and python_version < "4.0"
55
bcrypt==4.3.0 ; python_version >= "3.12" and python_version < "4.0"
6-
certifi==2025.4.26 ; python_version >= "3.12" and python_version < "4.0"
6+
certifi==2025.8.3 ; python_version >= "3.12" and python_version < "4.0"
77
click==8.2.1 ; python_version >= "3.12" and python_version < "4.0"
88
colorama==0.4.6 ; python_version >= "3.12" and python_version < "4.0" and (sys_platform == "win32" or platform_system == "Windows")
9-
dnspython==2.7.0 ; python_version >= "3.12" and python_version < "4.0"
10-
email-validator==2.2.0 ; python_version >= "3.12" and python_version < "4.0"
9+
dnspython==2.8.0 ; python_version >= "3.12" and python_version < "4.0"
10+
email-validator==2.3.0 ; python_version >= "3.12" and python_version < "4.0"
1111
fastapi-async-sqlalchemy==0.6.1 ; python_version >= "3.12" and python_version < "4.0"
1212
fastapi-cache2==0.2.2 ; python_version >= "3.12" and python_version < "4.0"
13-
fastapi==0.115.12 ; python_version >= "3.12" and python_version < "4.0"
14-
greenlet==3.2.3 ; python_version >= "3.12" and python_version < "4.0"
13+
fastapi==0.115.14 ; python_version >= "3.12" and python_version < "4.0"
14+
greenlet==3.2.4 ; python_version >= "3.12" and python_version < "4.0"
1515
h11==0.16.0 ; python_version >= "3.12" and python_version < "4.0"
1616
httpcore==1.0.9 ; python_version >= "3.12" and python_version < "4.0"
1717
httptools==0.6.4 ; python_version >= "3.12" and python_version < "4.0"
@@ -22,26 +22,26 @@ mako==1.3.10 ; python_version >= "3.12" and python_version < "4.0"
2222
markupsafe==3.0.2 ; python_version >= "3.12" and python_version < "4.0"
2323
passlib[bcrypt]==1.7.4 ; python_version >= "3.12" and python_version < "4.0"
2424
pendulum==3.1.0 ; python_version >= "3.12" and python_version < "4.0"
25-
psycopg==3.2.9 ; python_version >= "3.12" and python_version < "4.0"
25+
psycopg==3.2.10 ; python_version >= "3.12" and python_version < "4.0"
2626
pydantic-core==2.33.2 ; python_version >= "3.12" and python_version < "4.0"
27-
pydantic==2.11.5 ; python_version >= "3.12" and python_version < "4.0"
28-
pydantic[email]==2.11.5 ; python_version >= "3.12" and python_version < "4.0"
27+
pydantic==2.11.9 ; python_version >= "3.12" and python_version < "4.0"
28+
pydantic[email]==2.11.9 ; python_version >= "3.12" and python_version < "4.0"
2929
pyjwt==2.10.1 ; python_version >= "3.12" and python_version < "4.0"
3030
python-dateutil==2.9.0.post0 ; python_version >= "3.12" and python_version < "4.0"
31-
python-dotenv==1.1.0 ; python_version >= "3.12" and python_version < "4.0"
31+
python-dotenv==1.1.1 ; python_version >= "3.12" and python_version < "4.0"
3232
python-multipart==0.0.20 ; python_version >= "3.12" and python_version < "4.0"
3333
pyyaml==6.0.2 ; python_version >= "3.12" and python_version < "4.0"
3434
six==1.17.0 ; python_version >= "3.12" and python_version < "4.0"
3535
sniffio==1.3.1 ; python_version >= "3.12" and python_version < "4.0"
36-
sqlalchemy==2.0.41 ; python_version >= "3.12" and python_version < "4.0"
37-
sqlalchemy[asyncio]==2.0.41 ; python_version >= "3.12" and python_version < "4.0"
36+
sqlalchemy==2.0.43 ; python_version >= "3.12" and python_version < "4.0"
37+
sqlalchemy[asyncio]==2.0.43 ; python_version >= "3.12" and python_version < "4.0"
3838
starlette==0.46.2 ; python_version >= "3.12" and python_version < "4.0"
39-
typing-extensions==4.14.0 ; python_version >= "3.12" and python_version < "4.0"
39+
typing-extensions==4.15.0 ; python_version >= "3.12" and python_version < "4.0"
4040
typing-inspection==0.4.1 ; python_version >= "3.12" and python_version < "4.0"
4141
tzdata==2025.2 ; python_version >= "3.12" and python_version < "4.0"
4242
uvicorn==0.34.3 ; python_version >= "3.12" and python_version < "4.0"
4343
uvicorn[standard]==0.34.3 ; python_version >= "3.12" and python_version < "4.0"
4444
uvloop==0.21.0 ; (sys_platform != "win32" and sys_platform != "cygwin") and platform_python_implementation != "PyPy" and python_version >= "3.12" and python_version < "4.0"
45-
watchfiles==1.0.5 ; python_version >= "3.12" and python_version < "4.0"
45+
watchfiles==1.1.0 ; python_version >= "3.12" and python_version < "4.0"
4646
websockets==15.0.1 ; python_version >= "3.12" and python_version < "4.0"
4747
win32-setctime==1.2.0 ; python_version >= "3.12" and python_version < "4.0" and sys_platform == "win32"

src/schemas/user.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ class UserCreate(BaseModel):
1515
examples=["John Doe", "Jane Smith"],
1616
)
1717
email: EmailStr = Field(
18-
..., max_length=255, description="Email must be a valid email address"
18+
...,
19+
max_length=255,
20+
description="Email must be a valid email address",
1921
)
2022
password: str = Field(
2123
...,
@@ -27,7 +29,7 @@ class UserCreate(BaseModel):
2729
examples=["P@ssw0rd", "S3cure!Password"],
2830
)
2931

30-
@field_validator("name", "password", mode="before")
32+
@field_validator("name", "password", "email", mode="before")
3133
def strip_field(cls, field: str) -> str:
3234
return field.strip()
3335

@@ -53,6 +55,10 @@ def validate_name(cls, name: str) -> str:
5355
raise ValueError("Name must contain only letters and spaces")
5456
return name
5557

58+
@field_validator("email", mode="before")
59+
def email_parser(cls, email: str) -> str:
60+
return email.strip().lower()
61+
5662

5763
class UserOut(BaseDBSchema):
5864
name: str

0 commit comments

Comments
 (0)