from fastapi import FastAPI, HTTPException, Request
from fastapi.responses import FileResponse
import os

app = FastAPI()


@app.get("/")
async def root():
    return "welcome to fastAPI!"


@app.post("/user/login")
async def login(request: Request):
    print(request)
    data = await request.json()
    username = data.get("username")
    password = data.get("password")
    print(f"username: {username},password: {password}")
    if username == "1" and password == "1":
        data1 = None
        return {"code": "0", "msg": "ok", "data": data1}
    else:
        data2 = None
        return {"code": "-1", "msg": "账号或密码错误", "data": data2}


@app.get("/api/get-menu")
async def get_menu():
    base_url = "http://127.0.0.1:8000/api/menu-image/"
    directory = "assets/images/icon"
    pic_list = [
        {id: 1, "menu_name": "政策查询", "url": "/pages/policy/policy", "icon_name": "政策解读.png"},
        {id: 2, "menu_name": "问答", "url": "/pages/qa/qa", "icon_name": "问答.png"},
        {id: 3, "menu_name": "信息管理", "url": "/pages/assist/assist", "icon_name": "群众信息管理.png"},
        {id: 4, "menu_name": "招聘", "url": "/pages/recruit/recruit", "icon_name": "招聘.png"}
    ]
    data = []
    for item in pic_list:
        data.append({
            "id": item[id],
            "menu_name": item['menu_name'],
            "url": item['url'],
            "image_url": base_url + item['icon_name']
        })

    return {
        "code": 0,
        "msg": "ok",
        "data": data
    }


@app.get("/api/get-swiper-list")
async def get_swiper_list():
    # 设置图片所在的目录
    directory = "assets/images/pictures"
    base_url = "http://127.0.0.1:8000/api/swiper-image/"

    # 列出目录下所有文件
    files = os.listdir(directory)
    for i in files:
        if i == '.DS_Store':
            files.remove(i)
    print(files)
    # 生成包含完整路径的图片列表
    swiper_list = [{"id": i + 1, "path": base_url + file} for i, file in enumerate(files)]

    return {
        "code": 0,
        "msg": "ok",
        "data": swiper_list
    }


@app.get("/api/swiper-image/{image_id}.png")
async def get_swiper_image(image_id: str):
    base_image_path = "assets/images/pictures"
    # 构造图片文件的完整路径
    image_path = f"{base_image_path}/{image_id}.png"  # 假设图片格式为png，根据需要修改
    print(image_path)
    try:
        # 返回图片文件的响应
        return FileResponse(image_path)
    except FileNotFoundError:
        # 如果文件没有找到，返回404错误
        raise HTTPException(status_code=404, detail="Image not found")


@app.get("/api/menu-image/{image_name}.png")
async def get_menu_image(image_name: str):
    base_image_path = "assets/images/icon"
    # 构造图片文件的完整路径
    image_path = f"{base_image_path}/{image_name}.png"  # 假设图片格式为png，根据需要修改
    print(image_path)
    try:
        # 返回图片文件的响应
        return FileResponse(image_path)
    except FileNotFoundError:
        # 如果文件没有找到，返回404错误
        raise HTTPException(status_code=404, detail="Image not found")


@app.get("/api/policy-list")
async def get_policy_list():
    policy_list = [
        {"title": "政策标题1", "date": "2024-01-01"},
        {"title": "政策标题2", "date": "2023-01-02"},
        {"title": "政策标题3", "date": "2022-01-03"},
        {"title": "政策标题4", "date": "2023-01-14"},
        {"title": "政策标题5", "date": "2022-01-14"},
        {"title": "政策标题6", "date": "2023-01-15"},
        {"title": "政策标题7", "date": "2021-01-16"},
        {"title": "政策标题8", "date": "2021-01-02"},
        {"title": "政策标题9", "date": "2024-02-02"},
        {"title": "政策标题10", "date": "2024-03-02"},
        {"title": "政策标题11", "date": "2024-04-02"},
        {"title": "政策标题12", "date": "2024-01-02"},
        {"title": "政策标题13", "date": "2023-01-24"},
        {"title": "政策标题14", "date": "2022-01-02"},
        {"title": "政策标题15", "date": "2022-12-02"},
        {"title": "政策标题16", "date": "2021-04-02"},
        {"title": "政策标题17", "date": "2020-02-02"}
    ]
    return {
        "code": 0,
        "msg": "ok",
        "data": policy_list
    }


