11from typing import Annotated
22from datetime import datetime
33
4- from pydantic import BaseModel , Field , ConfigDict , validator
4+ from pydantic import BaseModel , Field , ConfigDict , field_validator
55
66from ..core .schemas import TimestampSchema
77
@@ -23,9 +23,9 @@ class RateLimitBase(BaseModel):
2323 Field (examples = [60 ])
2424 ]
2525
26- @validator ('path' , pre = True , always = True )
27- def validate_and_sanitize_path (cls , value : str ) -> str :
28- return sanitize_path (value )
26+ @field_validator ('path' )
27+ def validate_and_sanitize_path (cls , v : str ):
28+ return sanitize_path (v )
2929
3030
3131class RateLimit (TimestampSchema , RateLimitBase ):
@@ -62,14 +62,14 @@ class RateLimitCreateInternal(RateLimitCreate):
6262
6363
6464class RateLimitUpdate (BaseModel ):
65- path : str | None = None
65+ path : str | None = Field ( default = None )
6666 limit : int | None = None
6767 period : int | None = None
6868 name : str | None = None
6969
70- @validator ('path' , pre = True )
71- def validate_and_sanitize_path (cls , value : str ) -> str :
72- return sanitize_path (value )
70+ @field_validator ('path' )
71+ def validate_and_sanitize_path (cls , v : str ):
72+ return sanitize_path (v ) if v is not None else None
7373
7474
7575class RateLimitUpdateInternal (RateLimitUpdate ):
0 commit comments