api-mapper / routers /users_v1.py
tanbushi's picture
auth
1a31c9f
raw
history blame
1.39 kB
from fastapi import APIRouter, Depends
from pydantic import BaseModel
import uuid
from global_state import get
from db.tbs_db import TbsDb
from auth import get_current_user_id
router = APIRouter()
db_module_filename = f"{get('project_root')}/db/cloudflare.py"
@router.get("/users")
async def read_users(current_user_id: int = Depends(get_current_user_id)):
query = "SELECT * FROM users"
response = TbsDb(db_module_filename, "Cloudflare").get_list(query)
return response
class User(BaseModel):
username: str
password: str
email: str
nikename: str = None
@router.post("/users")
async def create_user(user: User, current_user_id: int = Depends(get_current_user_id)):
username = user.username
password = user.password
email = user.email
nikename = user.nikename
if nikename==None:
nikename = ''
api_key = f'airs-{uuid.uuid4()}'
query = f"INSERT INTO users (username, password, email, nikename, api_key) VALUES ('{username}', '{password}', '{email}', '{nikename}', '{api_key}')"
response = TbsDb(db_module_filename, "Cloudflare").add_item(query)
return response
@router.get("/users/{id}")
async def read_user(id:int, current_user_id: int = Depends(get_current_user_id)):
query = f"SELECT * FROM users where id={id}"
response = TbsDb(db_module_filename, "Cloudflare").get_item(query)
return response