package api import ( "cc/db/model" "cc/web/util/response" "github.com/gofiber/fiber/v2" ) // GetProjects 获取所有项目 func GetProjects(c *fiber.Ctx) error { pro := model.Project{} // 获取所有项目 projects, err := pro.GetAll() if err != nil { return response.Error(c, response.InternalServerError, "获取项目失败: "+err.Error()) } // 返回项目 return response.Ok(c, projects) } // GetProjectByID 通过项目ID获取项目 func GetProjectByID(c *fiber.Ctx) error { // 获取项目ID id, err := c.ParamsInt("id") if err != nil { return response.Error(c, response.BadRequest, "参数错误") } // 获取项目 pro := model.Project{ ID: id, } // 通过项目ID获取项目 err = pro.GetProjectByID() if err != nil { return response.Error(c, response.InternalServerError, "获取项目失败: "+err.Error()) } // 返回项目 return response.Ok(c, pro) } // GetProjectByCode 通过项目代码获取项目 func GetProjectByCode(c *fiber.Ctx) error { // 获取项目代码 code, err := c.ParamsInt("code") if err != nil { return response.Error(c, response.BadRequest, "参数错误") } // 获取项目 pro := model.Project{ Code: code, } // 通过项目代码获取项目 err = pro.GetProjectByCode() if err != nil { return response.Error(c, response.InternalServerError, "获取项目失败: "+err.Error()) } // 返回项目 return response.Ok(c, pro) } // CreateProject 创建项目 func CreateProject(c *fiber.Ctx) error { pro := model.Project{} // 解析参数 err := c.BodyParser(&pro) if err != nil { return response.Error(c, response.BadRequest, "参数错误") } // 创建项目 err = pro.CreateProject() if err != nil { return response.Error(c, response.InternalServerError, "创建项目失败: "+err.Error()) } // 返回项目 return response.Ok(c, pro) } // UpdateProject 更新项目 func UpdateProject(c *fiber.Ctx) error { // 获取项目代码 id, err := c.ParamsInt("id") if err != nil { return response.Error(c, response.BadRequest, "参数错误") } // 获取项目 pro := model.Project{ ID: id, } // 解析参数 err = c.BodyParser(&pro) if err != nil { return response.Error(c, response.BadRequest, "参数错误") } // 更新项目 err = pro.UpdateProject() if err != nil { return response.Error(c, response.InternalServerError, "更新项目失败: "+err.Error()) } // 返回项目 return response.Ok(c, pro) } // DeleteProject 删除项目 func DeleteProject(c *fiber.Ctx) error { // 获取项目代码 id, err := c.ParamsInt("id") if err != nil { return response.Error(c, response.BadRequest, "参数错误") } // 获取项目 pro := model.Project{ ID: id, } // 删除项目 err = pro.DeleteProject() if err != nil { return response.Error(c, response.InternalServerError, "删除项目失败: "+err.Error()) } // 返回项目 return response.Ok(c, "删除成功") }