55 lines
1.4 KiB
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"})
|
|
}
|