82 lines
2.9 KiB
Python
82 lines
2.9 KiB
Python
from fastapi import APIRouter, Query, HTTPException
|
||
from data_base.requests import Request
|
||
from fastapi.responses import FileResponse
|
||
import model_messege as mm
|
||
import bcrypt
|
||
import asyncio
|
||
|
||
router = APIRouter(prefix="/api-data-base")
|
||
|
||
#table_name: mm.TableName = Query(...)
|
||
|
||
def check_password(input_password, hashed_password) -> bool:
|
||
"""Проверка пароля"""
|
||
return bcrypt.checkpw(input_password.encode('utf-8'), hashed_password.encode('utf-8'))
|
||
|
||
@router.get("/load_preset")
|
||
async def load_preset():
|
||
"""Загрузка пресета"""
|
||
await Request.load_preset()
|
||
return {"messege":"пресет загружен"}
|
||
|
||
@router.get("/start")
|
||
async def create_tables():
|
||
"""Создание таблиц"""
|
||
await Request.craete_all_table()
|
||
return {"message": f"все таблицы созданы"}
|
||
|
||
@router.post("/login")
|
||
async def login(auth_request: mm.Login):#auth_request: mm.Login
|
||
"""Авторизация"""
|
||
user = await Request.login(auth_request=auth_request)
|
||
if user == None:#если пользователь не найден
|
||
return {
|
||
"id":0,
|
||
"name_poo":"",
|
||
"inn":"",
|
||
"mail":"",
|
||
"drop_table":""
|
||
}
|
||
if check_password(input_password=auth_request.password, hashed_password=user.password):#если пароль верный
|
||
#data = await Request.select_drop_down_list()
|
||
return {
|
||
"id":user.id,
|
||
"name_poo":user.name_poo,
|
||
"inn":user.inn,
|
||
"mail":user.mail
|
||
#"drop_table": data
|
||
}
|
||
@router.post("/add_column")
|
||
async def add_column(new_column: mm.column_table):
|
||
"""Добавление колонки"""
|
||
await Request.add_column(table_name=new_column.table_name.name, column_name=new_column.column_name, data_type=new_column.data_type.name)
|
||
return {"message":"колонка добавлена"}
|
||
|
||
@router.post("/drop_column")
|
||
async def drop_column(new_column: mm.column_table):
|
||
"""Удаление колонки"""
|
||
await Request.drop_column(table_name=new_column.table_name.name, column_name=new_column.column_name)
|
||
return {"message":"колонка удалена"}
|
||
|
||
@router.post("/get_name_column")
|
||
async def get_name_column(table_name: mm.TableName):
|
||
"""Получение имен колонок"""
|
||
return await Request.get_table_columns(table_name=table_name.name)
|
||
|
||
|
||
@router.post("/insert_table")
|
||
async def insert_table(data:dict):
|
||
"""Добавление записи"""
|
||
return await Request.insert_table(data=data)
|
||
|
||
@router.post("select_rows_with_filter")
|
||
async def select_rows_with_filter(value:str):
|
||
"""Выборка с фильтром"""
|
||
return await Request.select_rows_with_filter(value=value)
|
||
|
||
@router.get("get_table_name")
|
||
async def get_table_name(data:dict):
|
||
return await {
|
||
"name":"Сollection_form_opk",
|
||
"name_bd":"Сollection_form_opk"
|
||
} |