wmj-test/src/controller/project_controller.go

55 lines
1.4 KiB
Go

package controller
import (
"errors"
"github.com/gin-gonic/gin"
"k8s-manager/src/model"
"k8s-manager/src/utils"
)
func AddProject(username string, proj *model.ProjectModel) (utils.OKType, error) {
proj.UserName = username
proj.Create()
return utils.OK, nil
}
func DeleteProject(username string, ID uint) (utils.OKType, error) {
old := model.ProjectModel{}
old.ID = ID
old.Fill()
if username != old.UserName {
return nil, errors.New("wrong username")
}
old.Delete()
return utils.OK, nil
}
func UpdateProject(username string, proj *model.ProjectModel) (utils.OKType, error) {
old := &model.ProjectModel{}
old.ID = proj.ID
old.Fill()
if username != old.GetUserName() {
return nil, errors.New("wrong username")
}
proj.Save(old)
return utils.OK, nil
}
func GetProjects(UserName string, IsPublished bool) (gin.H, error) {
proj := &model.ProjectModel{}
proj.UserName = UserName
proj.IsPublished = IsPublished
if UserName == "" && !IsPublished {
return gin.H{"data": []string{}}, nil
}
ans := proj.Gets()
return gin.H{"data": ans}, nil
}
func AddProjectController(r *gin.Engine) {
utils.RouteWrapper(r, "POST", "/project", AddProject, []string{"username", "1"})
utils.RouteWrapper(r, "DELETE", "/project", DeleteProject, []string{"username", "ID"})
utils.RouteWrapper(r, "PUT", "/project", UpdateProject, []string{"username", "1"})
utils.RouteWrapper(r, "GET", "/projects", GetProjects, []string{"UserName", "IsPublished"})
}