123 lines
2.9 KiB
Go
123 lines
2.9 KiB
Go
|
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, "删除成功")
|
||
|
}
|