You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
2.2 KiB

# -*- coding:utf-8 -*-
"""
@Created on : 2023/5/24 13:59
@Author: hxl
@Des: 定位板规格
"""
from fastapi import APIRouter
from pydantic import BaseModel
from helper import respond_to
from models import Board
router = APIRouter(prefix='/board')
class CreateBoard(BaseModel):
name: str
holable: int
standard: int
matrix: str
chip_dict: dict
class UpdateBoard(BaseModel):
name: str
holable: int
standard: int
matrix: str
chip_dict: dict
@router.get('/test', summary='数据测试')
async def create():
"""
创建定位板规格
:param post: CreateBoard
:return:
"""
return respond_to(data=[1, 2, 3, 4, 5, 6])
@router.post('', summary='创建定位板规格')
async def create(post: CreateBoard):
"""
创建定位板规格
:param post: CreateBoard
:return:
"""
result = await Board.create(**post.dict())
if not result:
return respond_to(desc="创建失败!")
return respond_to(desc="创建成功!")
@router.delete('/{board_id}', summary='删除定位板规格')
async def destroy(board_id: str):
"""
删除定位板规格
:param board_id: str
:return:
"""
board = await Board.get_or_none(pk=board_id)
if not board or board.reserved:
return respond_to(code=400, desc='删除失败')
result = await Board.filter(id=board_id).delete()
if not result:
return respond_to(code=400, desc='删除失败')
return respond_to(desc='删除成功')
@router.put('/{board_id}', summary='修改定位板规格')
async def update(board_id: str, post: UpdateBoard):
"""
编辑定位板规格
:param board_id: str
:param post: UpdateBoard
:return:
"""
board = await Board.get_or_none(pk=board_id)
result = await Board.filter(id=board_id).update(**post.dict())
if not result:
return respond_to(code=400, desc='更新失败')
return respond_to(desc='更新成功')
@router.get('', summary='定位板规格列表')
async def index():
"""
获取定位板规格列表
:return:
"""
query = Board.all()
count = await query.count()
drawers = await query.order_by("created_at").values()
return respond_to(data=dict(count=count, drawers=drawers))