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