weather/web/app/project/api/project.go

123 lines
2.9 KiB
Go
Raw Normal View History

2025-01-02 22:57:51 +08:00
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, "删除成功")
}