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.

63 lines
2.3 KiB

from fastapi import Depends, APIRouter, status, Query, Path, HTTPException
from internal.models import *
from internal.database import fetch_one, fetch_all, execute_query, response_success, raise_if_exists,raise_if_not_found
from dependencies import get_current_active_user
router = APIRouter(
prefix="/comlinks",
tags=['链接管理']
)
# 获取列表
@router.get("/list")
async def comlink_list():
select_query = "SELECT id,linktext,linkurl,descr FROM comlinks;"
comlink_list = fetch_all(select_query)
return response_success(comlink_list, "comlink get list success")
# 新增
@router.post("/add")
async def link_add(link:ComLink):
insert_query="""INSERT INTO comlinks (linktext,linkurl,descr) VALUES(%s,%s,%s)"""
insert_value=(link.linktext,link.linkurl,link.descr)
execute_query(insert_query,insert_value)
return response_success(data=link,message="link create success")
# 单条数据查询
@router.get("/list/search")
async def link_search(linktext:str=Query(description="链接名称")):
select_query="SELECT id,linktext,linkurl,descr FROM comlinks WHERE 1=1 "
params=[]
if linktext:
select_query+="AND linktext LIKE %s"
params.append(f"%{linktext}%")
link_query=fetch_all(select_query,params=params,fetchall=True)
return response_success(data=link_query,message="link search success")
# 链接修改
@router.put("/update/{id}")
async def link_put(link:ComLink,id: str = Path(description="链接id")):
update_query = (
"UPDATE comlinks SET linktext=%s,linkurl=%s,descr=%s WHERE id=%s;"
)
update_data = (link.linktext, link.linkurl,
link.descr,id)
execute_query(update_query, update_data)
return response_success("link update sucess")
# 链接删除
@router.delete("/delete/{id}")
async def link_del(id: str = Path(description="链接id")):
update_query = (
"DELETE FROM comlinks WHERE id=%s;"
)
update_data = (id)
execute_query(update_query, update_data)
return response_success()
# 根据id查询链接
@router.get("/list/search/{id}")
async def link_search_id(id:str=Path(description="链接id")):
select_query="SELECT * FROM comlinks WHERE id=%s"
link_query=fetch_one(select_query,(id,))
return response_success(data=link_query,message="link search success")