first commit
This commit is contained in:
commit
a1642c8dc4
16 changed files with 497 additions and 0 deletions
41
run_order/api.py
Normal file
41
run_order/api.py
Normal file
|
@ -0,0 +1,41 @@
|
|||
from ninja import Schema
|
||||
from ninja_extra import NinjaExtraAPI, api_controller, route
|
||||
from ninja_extra.exceptions import APIException
|
||||
|
||||
from uuid import UUID
|
||||
|
||||
from .models import RunOrder, MowerVersion, AnonymousUser
|
||||
|
||||
|
||||
class RunOrderSchema(Schema):
|
||||
version: str
|
||||
uuid: UUID
|
||||
level: int
|
||||
skill: str
|
||||
grandet: bool
|
||||
|
||||
|
||||
@api_controller()
|
||||
class RunOrderAPI:
|
||||
@route.post("/run-order")
|
||||
def run_order(self, data: RunOrderSchema):
|
||||
if data.level < 1 or data.level > 3:
|
||||
raise APIException("贸易站等级错误")
|
||||
if data.skill not in RunOrder.SKILL_CHOICES:
|
||||
raise APIException("跑单技能错误")
|
||||
if data.level != 3 and data.skill == "t":
|
||||
raise APIException("跑单技能与贸易站等级不匹配")
|
||||
version = MowerVersion.objects.get_or_create(version=data.version)[0]
|
||||
anonymous = AnonymousUser.objects.get_or_create(uuid=data.uuid)[0]
|
||||
run_order_data = RunOrder.objects.create(
|
||||
version=version,
|
||||
uuid=anonymous,
|
||||
facility_level=data.level,
|
||||
skill=data.skill,
|
||||
grandet_mode=data.grandet,
|
||||
)
|
||||
return run_order_data.id
|
||||
|
||||
|
||||
api = NinjaExtraAPI()
|
||||
api.register_controllers(RunOrderAPI)
|
Loading…
Add table
Add a link
Reference in a new issue