44from pydantic import BaseModel
55from starlette .requests import Request
66
7- from fast_tmp .depends .auth import get_current_active_user
87from fast_tmp .site import ModelAdmin , get_model_site
98
109from ..models import User
1110from ..responses import BaseRes , ListDataWithPage
12- from .depends import __get_user
11+ from .depends import get_user
1312
1413router = APIRouter ()
1514
1615
17- async def get_data (request : Request ) -> dict :
18- """
19- 从异步函数里面读取数据
20- """
21- return await request .json ()
22-
23-
24- @router .get ("/{resource}/list" )
16+ @router .get ("/{resource}/list" , dependencies = [Depends (get_user )])
2517async def list_view (
2618 request : Request ,
2719 page_model : ModelAdmin = Depends (get_model_site ),
2820 perPage : int = 10 ,
2921 page : int = 1 ,
30- user : Optional [User ] = Depends (__get_user ),
3122):
3223 datas = await page_model .list (request , perPage , page )
3324 return BaseRes (
@@ -38,15 +29,14 @@ async def list_view(
3829 )
3930
4031
41- @router .get ("/{resource}/prefetch/{field_name}" )
32+ @router .get ("/{resource}/prefetch/{field_name}" , dependencies = [ Depends ( get_user )] )
4233async def prefetch_view (
4334 request : Request ,
4435 field_name : str ,
4536 pk : Optional [str ] = None ,
4637 perPage : Optional [int ] = None ,
4738 page : Optional [int ] = None ,
4839 page_model : ModelAdmin = Depends (get_model_site ),
49- user : Optional [User ] = Depends (__get_user ),
5040):
5141 """
5242 对多对多外键进行额外的加载
@@ -55,15 +45,14 @@ async def prefetch_view(
5545 return BaseRes (data = datas )
5646
5747
58- @router .get ("/{resource}/select/{field_name}" )
48+ @router .get ("/{resource}/select/{field_name}" , dependencies = [ Depends ( get_user )] )
5949async def select_view (
6050 request : Request ,
6151 field_name : str ,
6252 pk : Optional [str ] = None ,
6353 perPage : Optional [int ] = None ,
6454 page : Optional [int ] = None ,
6555 page_model : ModelAdmin = Depends (get_model_site ),
66- user : Optional [User ] = Depends (__get_user ),
6756):
6857 """
6958 枚举字段的额外加载,主要用于外键
@@ -72,12 +61,11 @@ async def select_view(
7261 return BaseRes (data = datas )
7362
7463
75- @router .post ("/{resource}/patch/{pk}" )
64+ @router .post ("/{resource}/patch/{pk}" , dependencies = [ Depends ( get_user )] )
7665async def patch_data (
7766 request : Request ,
7867 pk : str ,
7968 page_model : ModelAdmin = Depends (get_model_site ),
80- user : Optional [User ] = Depends (__get_user ),
8169):
8270 """
8371 内联模式快速修改需要的接口
@@ -87,88 +75,49 @@ async def patch_data(
8775 return BaseRes ().dict ()
8876
8977
90- @router .put ("/{resource}/update/{pk}" )
78+ @router .put ("/{resource}/update/{pk}" , dependencies = [ Depends ( get_user )] )
9179async def update_data (
9280 request : Request ,
9381 pk : str ,
9482 page_model : ModelAdmin = Depends (get_model_site ),
95- user : Optional [User ] = Depends (__get_user ),
9683):
9784 data = await request .json ()
9885 data = await page_model .put (request , pk , data )
9986 return BaseRes (data = data )
10087
10188
102- @router .get ("/{resource}/update/{pk}" )
89+ @router .get ("/{resource}/update/{pk}" , dependencies = [ Depends ( get_user )] )
10390async def update_view (
10491 request : Request ,
10592 pk : str ,
10693 page_model : ModelAdmin = Depends (get_model_site ),
107- user : Optional [User ] = Depends (__get_user ),
10894):
10995 data = await page_model .put_get (request , pk )
11096 return BaseRes (data = data )
11197
11298
113- @router .post ("/{resource}/create" )
99+ @router .post ("/{resource}/create" , dependencies = [ Depends ( get_user )] )
114100async def create (
115101 request : Request ,
116102 page_model : ModelAdmin = Depends (get_model_site ),
117- user : Optional [User ] = Depends (__get_user ),
118103):
119104 data = await request .json ()
120105 await page_model .create (request , data )
121106 return BaseRes (data = data )
122107
123108
124- @router .delete ("/{resource}/delete/{pk}" )
109+ @router .delete ("/{resource}/delete/{pk}" , dependencies = [ Depends ( get_user )] )
125110async def delete_func (
126111 request : Request ,
127112 pk : str ,
128113 page_model : ModelAdmin = Depends (get_model_site ),
129- user : Optional [User ] = Depends (__get_user ),
130114):
131115 await page_model .delete (request , pk )
132116 return BaseRes ()
133117
134118
135- # def clean_param(field_type, param: str):
136- # if isinstance(
137- # field_type, (Integer, DECIMAL, BigInteger, Float, INTEGER, Numeric, SmallInteger)
138- # ):
139- # return int(param)
140- # elif isinstance(field_type, DateTime):
141- # return datetime.strptime(param, "%Y-%m-%dT%H:%M:%S")
142- # else:
143- # return param
144- #
145-
146- #
147- # def search_pk_list(model, request: Request):
148- # """
149- # 获取要查询的单个instance的主键
150- # """
151- # params = dict(request.query_params)
152- # pks = get_pk(model)
153- # w = []
154- # for k, v in params.items():
155- # if pks.get(k) is not None:
156- # field = pks[k]
157- # if isinstance(
158- # field.type, (Integer, DECIMAL, BigInteger, Float, INTEGER, Numeric, SmallInteger)
159- # ):
160- # w.append(pks[k] == int(v))
161- # elif isinstance(field.type, DateTime):
162- # w.append(pks[k] == datetime.strptime(v, "%Y-%m-%dT%H:%M:%S"))
163- # else:
164- # w.append(pks[k] == v)
165- # else:
166- # return key_error
167- # return w
168-
169-
170- class DIDS (BaseModel ):
171- ids : List [int ]
119+ # class DIDS(BaseModel):
120+ # ids: List[int]
172121
173122
174123# todo next version
@@ -181,10 +130,9 @@ class DIDS(BaseModel):
181130# return BaseRes()
182131
183132
184- @router .get ("/{resource}/schema" )
133+ @router .get ("/{resource}/schema" , dependencies = [ Depends ( get_user )] )
185134async def get_schema (
186135 request : Request ,
187136 page : ModelAdmin = Depends (get_model_site ),
188- user : Optional [User ] = Depends (__get_user ),
189137):
190138 return BaseRes (data = page .get_app_page (request ))
0 commit comments