Skip to content

Commit 9b5a19a

Browse files
authored
simplify crud method naming (#75)
* simplify crud method naming * update get_user_list to get_select
1 parent 4868cb1 commit 9b5a19a

File tree

9 files changed

+72
-73
lines changed

9 files changed

+72
-73
lines changed

backend/__init__.py

Lines changed: 0 additions & 2 deletions
This file was deleted.

backend/app/api/v1/user.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ async def update_avatar(username: str, avatar: Avatar, current_user: CurrentUser
5050

5151
@router.get('', summary='获取所有用户', dependencies=[DependsUser, PageDepends])
5252
async def get_all_users(db: CurrentSession):
53-
user_list = await UserService.get_user_list()
54-
page_data = await paging_data(db, user_list, GetUserInfo)
53+
user_select = await UserService.get_select()
54+
page_data = await paging_data(db, user_select, GetUserInfo)
5555
return response_base.success(data=page_data)
5656

5757

backend/app/common/jwt.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ async def get_current_user(db: CurrentSession, data: dict = Depends(jwt_authenti
150150
:return:
151151
"""
152152
user_id = data.get('sub')
153-
user = await UserDao.get_user_with_relation(db, user_id=user_id)
153+
user = await UserDao.get_with_relation(db, user_id=user_id)
154154
if not user:
155155
raise TokenError
156156
return user

backend/app/core/registrar.py

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
from contextlib import asynccontextmanager
44

55
from fastapi import FastAPI
6-
from fastapi.middleware.cors import CORSMiddleware
7-
from fastapi.middleware.gzip import GZipMiddleware
86
from fastapi_limiter import FastAPILimiter
97
from fastapi_pagination import add_pagination
108

@@ -14,9 +12,8 @@
1412
from backend.app.common.task import scheduler
1513
from backend.app.core.conf import settings
1614
from backend.app.database.db_mysql import create_table
17-
from backend.app.middleware.access_middleware import AccessMiddleware
18-
from backend.app.utils.openapi import simplify_operation_ids
1915
from backend.app.utils.health_check import ensure_unique_route_names
16+
from backend.app.utils.openapi import simplify_operation_ids
2017

2118

2219
@asynccontextmanager
@@ -57,9 +54,8 @@ def register_app():
5754
lifespan=register_init,
5855
)
5956

60-
if settings.STATIC_FILES:
61-
# 注册静态文件
62-
register_static_file(app)
57+
# 静态文件
58+
register_static_file(app)
6359

6460
# 中间件
6561
register_middleware(app)
@@ -83,17 +79,20 @@ def register_static_file(app: FastAPI):
8379
:param app:
8480
:return:
8581
"""
86-
import os
87-
from fastapi.staticfiles import StaticFiles
82+
if settings.STATIC_FILES:
83+
import os
84+
from fastapi.staticfiles import StaticFiles
8885

89-
if not os.path.exists('./static'):
90-
os.mkdir('./static')
91-
app.mount('/static', StaticFiles(directory='static'), name='static')
86+
if not os.path.exists('./static'):
87+
os.mkdir('./static')
88+
app.mount('/static', StaticFiles(directory='static'), name='static')
9289

9390

9491
def register_middleware(app: FastAPI):
9592
# CORS
9693
if settings.MIDDLEWARE_CORS:
94+
from fastapi.middleware.cors import CORSMiddleware
95+
9796
app.add_middleware(
9897
CORSMiddleware,
9998
allow_origins=['*'],
@@ -103,9 +102,13 @@ def register_middleware(app: FastAPI):
103102
)
104103
# Gzip
105104
if settings.MIDDLEWARE_GZIP:
105+
from fastapi.middleware.gzip import GZipMiddleware
106+
106107
app.add_middleware(GZipMiddleware)
107108
# Api access logs
108109
if settings.MIDDLEWARE_ACCESS:
110+
from backend.app.middleware.access_middleware import AccessMiddleware
111+
109112
app.add_middleware(AccessMiddleware)
110113

111114

@@ -118,7 +121,7 @@ def register_router(app: FastAPI):
118121
"""
119122
app.include_router(v1)
120123

121-
# extra
124+
# Extra
122125
ensure_unique_route_names(app)
123126
simplify_operation_ids(app)
124127

backend/app/crud/base.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class CRUDBase(Generic[ModelType, CreateSchemaType, UpdateSchemaType]):
1717
def __init__(self, model: Type[ModelType]):
1818
self.model = model
1919

20-
async def get(self, db: AsyncSession, pk: int) -> ModelType | None:
20+
async def get_(self, db: AsyncSession, pk: int) -> ModelType | None:
2121
"""
2222
通过主键 id 获取一条数据
2323
@@ -28,7 +28,7 @@ async def get(self, db: AsyncSession, pk: int) -> ModelType | None:
2828
model = await db.execute(select(self.model).where(self.model.id == pk))
2929
return model.scalars().first()
3030

31-
async def create(self, db: AsyncSession, obj_in: CreateSchemaType, user_id: int | None = None) -> NoReturn:
31+
async def create_(self, db: AsyncSession, obj_in: CreateSchemaType, user_id: int | None = None) -> NoReturn:
3232
"""
3333
新增一条数据
3434
@@ -43,7 +43,7 @@ async def create(self, db: AsyncSession, obj_in: CreateSchemaType, user_id: int
4343
db_obj = self.model(**obj_in.dict())
4444
db.add(db_obj)
4545

46-
async def update(
46+
async def update_(
4747
self, db: AsyncSession, pk: int, obj_in: UpdateSchemaType | Dict[str, Any], user_id: int | None = None
4848
) -> int:
4949
"""
@@ -64,7 +64,7 @@ async def update(
6464
model = await db.execute(update(self.model).where(self.model.id == pk).values(**update_data))
6565
return model.rowcount
6666

67-
async def delete(self, db: AsyncSession, pk: int) -> int:
67+
async def delete_(self, db: AsyncSession, pk: int) -> int:
6868
"""
6969
通过主键 id 删除一条数据
7070

backend/app/crud/crud_dept.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77

88
class CRUDDept(CRUDBase[Dept, CreateDept, UpdateDept]):
9-
async def get_dept_by_id(self, db, dept_id):
10-
return await self.get(db, dept_id)
9+
async def get(self, db, dept_id: int):
10+
return await self.get_(db, dept_id)
1111

1212

1313
DeptDao: CRUDDept = CRUDDept(Dept)

backend/app/crud/crud_role.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77

88
class CRUDRole(CRUDBase[Role, CreateRole, UpdateRole]):
9-
async def get_role_by_id(self, db, role_id):
10-
return await self.get(db, role_id)
9+
async def get(self, db, role_id: int):
10+
return await self.get_(db, role_id)
1111

1212

1313
RoleDao: CRUDRole = CRUDRole(Role)

backend/app/crud/crud_user.py

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,18 @@
1414

1515

1616
class CRUDUser(CRUDBase[User, CreateUser, UpdateUser]):
17-
async def get_user_by_id(self, db: AsyncSession, user_id: int) -> User | None:
18-
return await self.get(db, user_id)
17+
async def get(self, db: AsyncSession, user_id: int) -> User | None:
18+
return await self.get_(db, user_id)
1919

20-
async def get_user_by_username(self, db: AsyncSession, username: str) -> User | None:
20+
async def get_by_username(self, db: AsyncSession, username: str) -> User | None:
2121
user = await db.execute(select(self.model).where(self.model.username == username))
2222
return user.scalars().first()
2323

24-
async def update_user_login_time(self, db: AsyncSession, username: str) -> int:
24+
async def update_login_time(self, db: AsyncSession, username: str) -> int:
2525
user = await db.execute(update(self.model).where(self.model.username == username).values(last_login=func.now()))
2626
return user.rowcount
2727

28-
async def create_user(self, db: AsyncSession, create: CreateUser) -> NoReturn:
28+
async def create(self, db: AsyncSession, create: CreateUser) -> NoReturn:
2929
create.password = jwt.get_hash_password(create.password)
3030
new_user = self.model(**create.dict(exclude={'roles'}))
3131
role_list = []
@@ -52,8 +52,8 @@ async def update_avatar(self, db: AsyncSession, current_user: User, avatar: Avat
5252
user = await db.execute(update(self.model).where(self.model.id == current_user.id).values(avatar=avatar))
5353
return user.rowcount
5454

55-
async def delete_user(self, db: AsyncSession, user_id: int) -> int:
56-
return await self.delete(db, user_id)
55+
async def delete(self, db: AsyncSession, user_id: int) -> int:
56+
return await super().delete_(db, user_id)
5757

5858
async def check_email(self, db: AsyncSession, email: str) -> User | None:
5959
mail = await db.execute(select(self.model).where(self.model.email == email))
@@ -65,45 +65,43 @@ async def reset_password(self, db: AsyncSession, pk: int, password: str) -> int:
6565
)
6666
return user.rowcount
6767

68-
def get_users(self) -> Select:
68+
def get_all(self) -> Select:
6969
return (
7070
select(self.model)
7171
.options(selectinload(self.model.roles).selectinload(Role.menus))
7272
.order_by(desc(self.model.time_joined))
7373
)
7474

75-
async def get_user_is_super(self, db: AsyncSession, user_id: int) -> bool:
76-
user = await self.get_user_by_id(db, user_id)
75+
async def get_super(self, db: AsyncSession, user_id: int) -> bool:
76+
user = await self.get(db, user_id)
7777
return user.is_superuser
7878

79-
async def get_user_is_active(self, db: AsyncSession, user_id: int) -> bool:
80-
user = await self.get_user_by_id(db, user_id)
79+
async def get_active(self, db: AsyncSession, user_id: int) -> bool:
80+
user = await self.get(db, user_id)
8181
return user.is_active
8282

83-
async def super_set(self, db: AsyncSession, user_id: int) -> int:
84-
super_status = await self.get_user_is_super(db, user_id)
83+
async def set_super(self, db: AsyncSession, user_id: int) -> int:
84+
super_status = await self.get_super(db, user_id)
8585
user = await db.execute(
8686
update(self.model).where(self.model.id == user_id).values(is_superuser=False if super_status else True)
8787
)
8888
return user.rowcount
8989

90-
async def active_set(self, db: AsyncSession, user_id: int) -> int:
91-
active_status = await self.get_user_is_active(db, user_id)
90+
async def set_active(self, db: AsyncSession, user_id: int) -> int:
91+
active_status = await self.get_active(db, user_id)
9292
user = await db.execute(
9393
update(self.model).where(self.model.id == user_id).values(is_active=False if active_status else True)
9494
)
9595
return user.rowcount
9696

97-
async def get_user_role_ids(self, db: AsyncSession, user_id: int) -> list[int]:
97+
async def get_role_ids(self, db: AsyncSession, user_id: int) -> list[int]:
9898
user = await db.execute(
9999
select(self.model).where(self.model.id == user_id).options(selectinload(self.model.roles))
100100
)
101101
roles_id = [role.id for role in user.scalars().first().roles]
102102
return roles_id
103103

104-
async def get_user_with_relation(
105-
self, db: AsyncSession, *, user_id: int = None, username: str = None
106-
) -> User | None:
104+
async def get_with_relation(self, db: AsyncSession, *, user_id: int = None, username: str = None) -> User | None:
107105
where = []
108106
if user_id:
109107
where.append(self.model.id == user_id)

0 commit comments

Comments
 (0)