feat: initialize aivideo project
This commit is contained in:
86
backend/app/modules/admins/router.py
Normal file
86
backend/app/modules/admins/router.py
Normal file
@@ -0,0 +1,86 @@
|
||||
from fastapi import APIRouter, Depends, Response
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.common.db.session import get_db
|
||||
from app.common.responses.api_response import success_response
|
||||
from app.common.security.deps import get_current_admin, require_admin_permission
|
||||
from app.modules.admins.schema import AdminLoginRequest, ManualAdjustRequest
|
||||
from app.modules.admins.service import AdminsService
|
||||
|
||||
|
||||
auth_router = APIRouter(prefix="/api/v1/admin/auth", tags=["admin-auth"])
|
||||
router = APIRouter(prefix="/api/v1/admin", tags=["admin"])
|
||||
|
||||
|
||||
@auth_router.post("/login")
|
||||
def admin_login(
|
||||
payload: AdminLoginRequest,
|
||||
response: Response,
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
return {"code": 0, "message": "ok", "data": AdminsService(db).login(payload, response)}
|
||||
|
||||
|
||||
@auth_router.post("/logout")
|
||||
def admin_logout(response: Response, db: Session = Depends(get_db)):
|
||||
AdminsService(db).logout(response)
|
||||
return {"code": 0, "message": "ok", "data": {"success": True}}
|
||||
|
||||
|
||||
@auth_router.get("/me")
|
||||
def admin_me(admin=Depends(get_current_admin)):
|
||||
return success_response(AdminsService.serialize_admin(admin))
|
||||
|
||||
|
||||
@router.get("/dashboard")
|
||||
def dashboard(
|
||||
_=Depends(require_admin_permission()),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
return success_response(AdminsService(db).dashboard())
|
||||
|
||||
|
||||
@router.get("/users")
|
||||
def list_users(
|
||||
_=Depends(require_admin_permission()),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
return success_response(AdminsService(db).list_users())
|
||||
|
||||
|
||||
@router.get("/users/{user_id}")
|
||||
def get_user_detail(
|
||||
user_id: int,
|
||||
_=Depends(require_admin_permission()),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
return success_response(AdminsService(db).get_user_detail(user_id))
|
||||
|
||||
|
||||
@router.post("/users/{user_id}/wallet-adjust")
|
||||
def manual_adjust_wallet(
|
||||
user_id: int,
|
||||
payload: ManualAdjustRequest,
|
||||
_=Depends(require_admin_permission()),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
return success_response(
|
||||
AdminsService(db).manual_adjust_wallet(user_id, payload.amount_points, payload.reason)
|
||||
)
|
||||
|
||||
|
||||
@router.get("/users/{user_id}/invite-relations")
|
||||
def user_invite_relations(
|
||||
user_id: int,
|
||||
_=Depends(require_admin_permission()),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
return success_response(AdminsService(db).user_invite_relations(user_id))
|
||||
|
||||
|
||||
@router.get("/invite-relations")
|
||||
def list_invite_relations(
|
||||
_=Depends(require_admin_permission()),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
return success_response(AdminsService(db).list_invite_relations())
|
||||
Reference in New Issue
Block a user