feat: 创建接口
This commit is contained in:
parent
fcb82396c6
commit
ab5f99144c
|
|
@ -2,15 +2,14 @@ import asyncio
|
|||
import datetime
|
||||
import json
|
||||
import os
|
||||
from pydoc import cli
|
||||
import uvicorn
|
||||
import uuid
|
||||
import time
|
||||
from tool import format_content_uuid
|
||||
import traceback
|
||||
import models.db as DB
|
||||
import nodes as F
|
||||
from tool import format_content_uuid
|
||||
from tortoise.transactions import in_transaction
|
||||
from tortoise.expressions import Subquery
|
||||
from tortoise.functions import Max
|
||||
from fastapi import FastAPI, Depends, HTTPException
|
||||
from models.schemas.system import InitStatusResponse, InitConfigRequest, BaseResponse, TableResponse
|
||||
|
|
@ -24,7 +23,7 @@ from contextlib import asynccontextmanager
|
|||
from fastapi.security import OAuth2PasswordBearer
|
||||
from fastapi.responses import StreamingResponse
|
||||
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||
import traceback
|
||||
|
||||
|
||||
# 简单的登陆状态存储
|
||||
sessions: dict[str, tuple[float, DB.User]] = {}
|
||||
|
|
@ -310,11 +309,38 @@ def create_app():
|
|||
res.append(obj)
|
||||
return TableResponse(data=res, total=len(res))
|
||||
|
||||
@app.post("/api/flows", tags=["Flow"], description="任务创建", response_model=BaseResponse)
|
||||
async def create_flow(body: WorkRequest, user: DB.User = Depends(get_current_user)):
|
||||
work = DB.Work()
|
||||
work.uuid = uuid.uuid4().hex
|
||||
work.creator_id = user.id
|
||||
work.work_title = body.work_title
|
||||
work.work_desc = body.work_desc
|
||||
|
||||
work_content = DB.WorkContent(
|
||||
user_id=work.creator_id,
|
||||
content=[],
|
||||
is_deleted=0,
|
||||
work_id=0,
|
||||
)
|
||||
work_content.content = format_content_uuid(body.content)
|
||||
work_content.update_time = datetime.datetime.now()
|
||||
|
||||
async with in_transaction():
|
||||
await work.save()
|
||||
work_content.work_id = work.id
|
||||
await work_content.save()
|
||||
return BaseResponse()
|
||||
|
||||
@app.put("/api/flows", tags=["Flow"], description="任务修改", response_model=BaseResponse)
|
||||
async def update_flow(work_uuid: str, body: WorkRequest, user: DB.User = Depends(get_current_user)):
|
||||
work = await DB.Work.filter(uuid=work_uuid).first()
|
||||
if not work:
|
||||
return BaseResponse(success=False, message="Not Found")
|
||||
work.work_title = body.work_title
|
||||
work.work_desc = body.work_desc
|
||||
work.update_time = datetime.datetime.now()
|
||||
|
||||
work_content = await DB.WorkContent.filter(work_id=work.id).first()
|
||||
if not work_content:
|
||||
work_content = DB.WorkContent(
|
||||
|
|
@ -325,7 +351,10 @@ def create_app():
|
|||
)
|
||||
work_content.content = format_content_uuid(body.content)
|
||||
work_content.update_time = datetime.datetime.now()
|
||||
await work_content.save()
|
||||
|
||||
async with in_transaction():
|
||||
await work.save()
|
||||
await work_content.save()
|
||||
return BaseResponse()
|
||||
|
||||
@app.get("/api/flows/detail", tags=["Flow"], description="任务详情", response_model=BaseResponse)
|
||||
|
|
@ -391,5 +420,6 @@ def create_app():
|
|||
|
||||
app = create_app()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
uvicorn.run("main:app", host="0.0.0.0", port=8080, reload=True)
|
||||
|
|
|
|||
Loading…
Reference in New Issue