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
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))
|