Skip to content

Commit 12d7ec8

Browse files
authored
Update code generator API file structure (#460)
1 parent 601a651 commit 12d7ec8

File tree

4 files changed

+160
-130
lines changed

4 files changed

+160
-130
lines changed

backend/app/generator/api/router.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
from fastapi import APIRouter
44

55
from backend.app.generator.api.v1.gen import router as gen_router
6+
from backend.app.generator.api.v1.gen_business import router as gen_business_router
7+
from backend.app.generator.api.v1.gen_model import router as gen_model_router
68

79
v1 = APIRouter()
810

11+
v1.include_router(gen_business_router, prefix='/business', tags=['代码生成'])
12+
v1.include_router(gen_model_router, prefix='/model', tags=['代码生成'])
913
v1.include_router(gen_router, prefix='/gen', tags=['代码生成'])

backend/app/generator/api/v1/gen.py

Lines changed: 0 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -6,145 +6,15 @@
66
from fastapi.responses import StreamingResponse
77

88
from backend.app.generator.conf import generator_settings
9-
from backend.app.generator.schema.gen_business import (
10-
CreateGenBusinessParam,
11-
GetGenBusinessListDetails,
12-
UpdateGenBusinessParam,
13-
)
14-
from backend.app.generator.schema.gen_model import CreateGenModelParam, GetGenModelListDetails, UpdateGenModelParam
15-
from backend.app.generator.service.gen_business_service import gen_business_service
16-
from backend.app.generator.service.gen_model_service import gen_model_service
179
from backend.app.generator.service.gen_service import gen_service
1810
from backend.common.response.response_schema import ResponseModel, response_base
1911
from backend.common.security.jwt import DependsJwtAuth
2012
from backend.common.security.permission import RequestPermission
2113
from backend.common.security.rbac import DependsRBAC
22-
from backend.utils.serializers import select_as_dict, select_list_serialize
2314

2415
router = APIRouter()
2516

2617

27-
@router.get('/businesses/all', summary='获取所有代码生成业务', dependencies=[DependsJwtAuth])
28-
async def get_all_businesses() -> ResponseModel:
29-
businesses = await gen_business_service.get_all()
30-
data = select_list_serialize(businesses)
31-
return response_base.success(data=data)
32-
33-
34-
@router.get('/businesses/{pk}', summary='获取代码生成业务详情', dependencies=[DependsJwtAuth])
35-
async def get_business(pk: Annotated[int, Path(...)]) -> ResponseModel:
36-
business = await gen_business_service.get(pk=pk)
37-
data = GetGenBusinessListDetails(**select_as_dict(business))
38-
return response_base.success(data=data)
39-
40-
41-
@router.get('/businesses/{pk}/models', summary='获取代码生成业务所有模型', dependencies=[DependsJwtAuth])
42-
async def get_business_models(pk: Annotated[int, Path(...)]) -> ResponseModel:
43-
models = await gen_model_service.get_by_business(business_id=pk)
44-
data = select_list_serialize(models)
45-
return response_base.success(data=data)
46-
47-
48-
@router.post(
49-
'/businesses',
50-
summary='创建代码生成业务',
51-
deprecated=True,
52-
dependencies=[
53-
Depends(RequestPermission('gen:code:business:add')),
54-
DependsRBAC,
55-
],
56-
)
57-
async def create_business(obj: CreateGenBusinessParam) -> ResponseModel:
58-
await gen_business_service.create(obj=obj)
59-
return response_base.success()
60-
61-
62-
@router.put(
63-
'/businesses/{pk}',
64-
summary='更新代码生成业务',
65-
dependencies=[
66-
Depends(RequestPermission('gen:code:business:edit')),
67-
DependsRBAC,
68-
],
69-
)
70-
async def update_business(pk: Annotated[int, Path(...)], obj: UpdateGenBusinessParam) -> ResponseModel:
71-
count = await gen_business_service.update(pk=pk, obj=obj)
72-
if count > 0:
73-
return response_base.success()
74-
return response_base.fail()
75-
76-
77-
@router.delete(
78-
'/businesses/{pk}',
79-
summary='删除代码生成业务',
80-
dependencies=[
81-
Depends(RequestPermission('gen:code:business:del')),
82-
DependsRBAC,
83-
],
84-
)
85-
async def delete_business(pk: Annotated[int, Path(...)]) -> ResponseModel:
86-
count = await gen_business_service.delete(pk=pk)
87-
if count > 0:
88-
return response_base.success()
89-
return response_base.fail()
90-
91-
92-
@router.get('/models/types', summary='获取代码生成模型列类型', dependencies=[DependsJwtAuth])
93-
async def get_model_types() -> ResponseModel:
94-
model_types = await gen_model_service.get_types()
95-
return response_base.success(data=model_types)
96-
97-
98-
@router.get('/models/{pk}', summary='获取代码生成模型详情', dependencies=[DependsJwtAuth])
99-
async def get_model(pk: Annotated[int, Path(...)]) -> ResponseModel:
100-
model = await gen_model_service.get(pk=pk)
101-
data = GetGenModelListDetails(**select_as_dict(model))
102-
return response_base.success(data=data)
103-
104-
105-
@router.post(
106-
'/models',
107-
summary='创建代码生成模型',
108-
dependencies=[
109-
Depends(RequestPermission('gen:code:model:add')),
110-
DependsRBAC,
111-
],
112-
)
113-
async def create_model(obj: CreateGenModelParam) -> ResponseModel:
114-
await gen_model_service.create(obj=obj)
115-
return response_base.success()
116-
117-
118-
@router.put(
119-
'/models/{pk}',
120-
summary='更新代码生成模型',
121-
dependencies=[
122-
Depends(RequestPermission('gen:code:model:edit')),
123-
DependsRBAC,
124-
],
125-
)
126-
async def update_model(pk: Annotated[int, Path(...)], obj: UpdateGenModelParam) -> ResponseModel:
127-
count = await gen_model_service.update(pk=pk, obj=obj)
128-
if count > 0:
129-
return response_base.success()
130-
return response_base.fail()
131-
132-
133-
@router.delete(
134-
'/models/{pk}',
135-
summary='删除代码生成模型',
136-
dependencies=[
137-
Depends(RequestPermission('gen:code:model:del')),
138-
DependsRBAC,
139-
],
140-
)
141-
async def delete_model(pk: Annotated[int, Path(...)]) -> ResponseModel:
142-
count = await gen_model_service.delete(pk=pk)
143-
if count > 0:
144-
return response_base.success()
145-
return response_base.fail()
146-
147-
14818
@router.get('/tables', summary='获取数据库表', dependencies=[DependsRBAC])
14919
async def get_all_tables(table_schema: Annotated[str, Query(..., description='数据库名')] = 'fba') -> ResponseModel:
15020
data = await gen_service.get_tables(table_schema=table_schema)
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
#!/usr/bin/env python3
2+
# -*- coding: utf-8 -*-
3+
from typing import Annotated
4+
5+
from fastapi import APIRouter, Depends, Path
6+
7+
from backend.app.generator.schema.gen_business import (
8+
CreateGenBusinessParam,
9+
GetGenBusinessListDetails,
10+
UpdateGenBusinessParam,
11+
)
12+
from backend.app.generator.service.gen_business_service import gen_business_service
13+
from backend.app.generator.service.gen_model_service import gen_model_service
14+
from backend.common.response.response_schema import ResponseModel, response_base
15+
from backend.common.security.jwt import DependsJwtAuth
16+
from backend.common.security.permission import RequestPermission
17+
from backend.common.security.rbac import DependsRBAC
18+
from backend.utils.serializers import select_as_dict, select_list_serialize
19+
20+
router = APIRouter()
21+
22+
23+
@router.get('/all', summary='获取所有代码生成业务', dependencies=[DependsJwtAuth])
24+
async def get_all_businesses() -> ResponseModel:
25+
businesses = await gen_business_service.get_all()
26+
data = select_list_serialize(businesses)
27+
return response_base.success(data=data)
28+
29+
30+
@router.get('/{pk}', summary='获取代码生成业务详情', dependencies=[DependsJwtAuth])
31+
async def get_business(pk: Annotated[int, Path(...)]) -> ResponseModel:
32+
business = await gen_business_service.get(pk=pk)
33+
data = GetGenBusinessListDetails(**select_as_dict(business))
34+
return response_base.success(data=data)
35+
36+
37+
@router.get('/{pk}/models', summary='获取代码生成业务所有模型', dependencies=[DependsJwtAuth])
38+
async def get_business_models(pk: Annotated[int, Path(...)]) -> ResponseModel:
39+
models = await gen_model_service.get_by_business(business_id=pk)
40+
data = select_list_serialize(models)
41+
return response_base.success(data=data)
42+
43+
44+
@router.post(
45+
'',
46+
summary='创建代码生成业务',
47+
deprecated=True,
48+
dependencies=[
49+
Depends(RequestPermission('gen:code:business:add')),
50+
DependsRBAC,
51+
],
52+
)
53+
async def create_business(obj: CreateGenBusinessParam) -> ResponseModel:
54+
await gen_business_service.create(obj=obj)
55+
return response_base.success()
56+
57+
58+
@router.put(
59+
'/{pk}',
60+
summary='更新代码生成业务',
61+
dependencies=[
62+
Depends(RequestPermission('gen:code:business:edit')),
63+
DependsRBAC,
64+
],
65+
)
66+
async def update_business(pk: Annotated[int, Path(...)], obj: UpdateGenBusinessParam) -> ResponseModel:
67+
count = await gen_business_service.update(pk=pk, obj=obj)
68+
if count > 0:
69+
return response_base.success()
70+
return response_base.fail()
71+
72+
73+
@router.delete(
74+
'/{pk}',
75+
summary='删除代码生成业务',
76+
dependencies=[
77+
Depends(RequestPermission('gen:code:business:del')),
78+
DependsRBAC,
79+
],
80+
)
81+
async def delete_business(pk: Annotated[int, Path(...)]) -> ResponseModel:
82+
count = await gen_business_service.delete(pk=pk)
83+
if count > 0:
84+
return response_base.success()
85+
return response_base.fail()
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#!/usr/bin/env python3
2+
# -*- coding: utf-8 -*-
3+
from typing import Annotated
4+
5+
from fastapi import APIRouter, Depends, Path
6+
7+
from backend.app.generator.schema.gen_model import CreateGenModelParam, GetGenModelListDetails, UpdateGenModelParam
8+
from backend.app.generator.service.gen_model_service import gen_model_service
9+
from backend.common.response.response_schema import ResponseModel, response_base
10+
from backend.common.security.jwt import DependsJwtAuth
11+
from backend.common.security.permission import RequestPermission
12+
from backend.common.security.rbac import DependsRBAC
13+
from backend.utils.serializers import select_as_dict
14+
15+
router = APIRouter()
16+
17+
18+
@router.get('/types', summary='获取代码生成模型列类型', dependencies=[DependsJwtAuth])
19+
async def get_model_types() -> ResponseModel:
20+
model_types = await gen_model_service.get_types()
21+
return response_base.success(data=model_types)
22+
23+
24+
@router.get('/{pk}', summary='获取代码生成模型详情', dependencies=[DependsJwtAuth])
25+
async def get_model(pk: Annotated[int, Path(...)]) -> ResponseModel:
26+
model = await gen_model_service.get(pk=pk)
27+
data = GetGenModelListDetails(**select_as_dict(model))
28+
return response_base.success(data=data)
29+
30+
31+
@router.post(
32+
'',
33+
summary='创建代码生成模型',
34+
dependencies=[
35+
Depends(RequestPermission('gen:code:model:add')),
36+
DependsRBAC,
37+
],
38+
)
39+
async def create_model(obj: CreateGenModelParam) -> ResponseModel:
40+
await gen_model_service.create(obj=obj)
41+
return response_base.success()
42+
43+
44+
@router.put(
45+
'/{pk}',
46+
summary='更新代码生成模型',
47+
dependencies=[
48+
Depends(RequestPermission('gen:code:model:edit')),
49+
DependsRBAC,
50+
],
51+
)
52+
async def update_model(pk: Annotated[int, Path(...)], obj: UpdateGenModelParam) -> ResponseModel:
53+
count = await gen_model_service.update(pk=pk, obj=obj)
54+
if count > 0:
55+
return response_base.success()
56+
return response_base.fail()
57+
58+
59+
@router.delete(
60+
'/{pk}',
61+
summary='删除代码生成模型',
62+
dependencies=[
63+
Depends(RequestPermission('gen:code:model:del')),
64+
DependsRBAC,
65+
],
66+
)
67+
async def delete_model(pk: Annotated[int, Path(...)]) -> ResponseModel:
68+
count = await gen_model_service.delete(pk=pk)
69+
if count > 0:
70+
return response_base.success()
71+
return response_base.fail()

0 commit comments

Comments
 (0)