14
14
15
15
router = fastapi .APIRouter (tags = ["rate_limits" ])
16
16
17
+
17
18
@router .post ("/tier/{tier_name}/rate_limit" , dependencies = [Depends (get_current_superuser )], status_code = 201 )
18
19
async def write_rate_limit (
19
- request : Request ,
20
- tier_name : str ,
21
- rate_limit : RateLimitCreate ,
22
- db : Annotated [AsyncSession , Depends (async_get_db )]
20
+ request : Request , tier_name : str , rate_limit : RateLimitCreate , db : Annotated [AsyncSession , Depends (async_get_db )]
23
21
) -> RateLimitRead :
24
22
db_tier = await crud_tiers .get (db = db , name = tier_name )
25
23
if not db_tier :
@@ -31,7 +29,7 @@ async def write_rate_limit(
31
29
db_rate_limit = await crud_rate_limits .exists (db = db , name = rate_limit_internal_dict ["name" ])
32
30
if db_rate_limit :
33
31
raise DuplicateValueException ("Rate Limit Name not available" )
34
-
32
+
35
33
rate_limit_internal = RateLimitCreateInternal (** rate_limit_internal_dict )
36
34
return await crud_rate_limits .create (db = db , object = rate_limit_internal )
37
35
@@ -42,7 +40,7 @@ async def read_rate_limits(
42
40
tier_name : str ,
43
41
db : Annotated [AsyncSession , Depends (async_get_db )],
44
42
page : int = 1 ,
45
- items_per_page : int = 10
43
+ items_per_page : int = 10 ,
46
44
) -> dict :
47
45
db_tier = await crud_tiers .get (db = db , name = tier_name )
48
46
if not db_tier :
@@ -53,33 +51,21 @@ async def read_rate_limits(
53
51
offset = compute_offset (page , items_per_page ),
54
52
limit = items_per_page ,
55
53
schema_to_select = RateLimitRead ,
56
- tier_id = db_tier ["id" ]
54
+ tier_id = db_tier ["id" ],
57
55
)
58
56
59
- return paginated_response (
60
- crud_data = rate_limits_data ,
61
- page = page ,
62
- items_per_page = items_per_page
63
- )
57
+ return paginated_response (crud_data = rate_limits_data , page = page , items_per_page = items_per_page )
64
58
65
59
66
60
@router .get ("/tier/{tier_name}/rate_limit/{id}" , response_model = RateLimitRead )
67
61
async def read_rate_limit (
68
- request : Request ,
69
- tier_name : str ,
70
- id : int ,
71
- db : Annotated [AsyncSession , Depends (async_get_db )]
62
+ request : Request , tier_name : str , id : int , db : Annotated [AsyncSession , Depends (async_get_db )]
72
63
) -> dict :
73
64
db_tier = await crud_tiers .get (db = db , name = tier_name )
74
65
if not db_tier :
75
66
raise NotFoundException ("Tier not found" )
76
-
77
- db_rate_limit = await crud_rate_limits .get (
78
- db = db ,
79
- schema_to_select = RateLimitRead ,
80
- tier_id = db_tier ["id" ],
81
- id = id
82
- )
67
+
68
+ db_rate_limit = await crud_rate_limits .get (db = db , schema_to_select = RateLimitRead , tier_id = db_tier ["id" ], id = id )
83
69
if db_rate_limit is None :
84
70
raise NotFoundException ("Rate Limit not found" )
85
71
@@ -92,26 +78,17 @@ async def patch_rate_limit(
92
78
tier_name : str ,
93
79
id : int ,
94
80
values : RateLimitUpdate ,
95
- db : Annotated [AsyncSession , Depends (async_get_db )]
81
+ db : Annotated [AsyncSession , Depends (async_get_db )],
96
82
) -> Dict [str , str ]:
97
83
db_tier = await crud_tiers .get (db = db , name = tier_name )
98
84
if db_tier is None :
99
85
raise NotFoundException ("Tier not found" )
100
-
101
- db_rate_limit = await crud_rate_limits .get (
102
- db = db ,
103
- schema_to_select = RateLimitRead ,
104
- tier_id = db_tier ["id" ],
105
- id = id
106
- )
86
+
87
+ db_rate_limit = await crud_rate_limits .get (db = db , schema_to_select = RateLimitRead , tier_id = db_tier ["id" ], id = id )
107
88
if db_rate_limit is None :
108
89
raise NotFoundException ("Rate Limit not found" )
109
-
110
- db_rate_limit_path = await crud_rate_limits .exists (
111
- db = db ,
112
- tier_id = db_tier ["id" ],
113
- path = values .path
114
- )
90
+
91
+ db_rate_limit_path = await crud_rate_limits .exists (db = db , tier_id = db_tier ["id" ], path = values .path )
115
92
if db_rate_limit_path is not None :
116
93
raise DuplicateValueException ("There is already a rate limit for this path" )
117
94
@@ -125,23 +102,15 @@ async def patch_rate_limit(
125
102
126
103
@router .delete ("/tier/{tier_name}/rate_limit/{id}" , dependencies = [Depends (get_current_superuser )])
127
104
async def erase_rate_limit (
128
- request : Request ,
129
- tier_name : str ,
130
- id : int ,
131
- db : Annotated [AsyncSession , Depends (async_get_db )]
105
+ request : Request , tier_name : str , id : int , db : Annotated [AsyncSession , Depends (async_get_db )]
132
106
) -> Dict [str , str ]:
133
107
db_tier = await crud_tiers .get (db = db , name = tier_name )
134
108
if not db_tier :
135
109
raise NotFoundException ("Tier not found" )
136
-
137
- db_rate_limit = await crud_rate_limits .get (
138
- db = db ,
139
- schema_to_select = RateLimitRead ,
140
- tier_id = db_tier ["id" ],
141
- id = id
142
- )
110
+
111
+ db_rate_limit = await crud_rate_limits .get (db = db , schema_to_select = RateLimitRead , tier_id = db_tier ["id" ], id = id )
143
112
if db_rate_limit is None :
144
113
raise RateLimitException ("Rate Limit not found" )
145
-
114
+
146
115
await crud_rate_limits .delete (db = db , db_row = db_rate_limit , id = db_rate_limit ["id" ])
147
116
return {"message" : "Rate Limit deleted" }
0 commit comments