feat():learning后台管理项目初始化
This commit is contained in:
97
internal/api/handlers/user_project_quota_handler.go
Normal file
97
internal/api/handlers/user_project_quota_handler.go
Normal file
@@ -0,0 +1,97 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"goalfymax-admin/internal/models"
|
||||
"goalfymax-admin/internal/services"
|
||||
"goalfymax-admin/internal/storage"
|
||||
"goalfymax-admin/pkg/utils"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type UserProjectQuotaHandler struct {
|
||||
svc services.UserProjectQuotaService
|
||||
resp *utils.Response
|
||||
}
|
||||
|
||||
func NewUserProjectQuotaHandler(s services.UserProjectQuotaService) *UserProjectQuotaHandler {
|
||||
return &UserProjectQuotaHandler{svc: s, resp: utils.NewResponse()}
|
||||
}
|
||||
|
||||
func (h *UserProjectQuotaHandler) Create(c *gin.Context) {
|
||||
var req models.UserProjectQuota
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
h.resp.ValidateError(c, err)
|
||||
return
|
||||
}
|
||||
out, err := h.svc.Create(&req)
|
||||
if err != nil {
|
||||
h.resp.BadRequest(c, err.Error())
|
||||
return
|
||||
}
|
||||
h.resp.Success(c, out)
|
||||
}
|
||||
|
||||
func (h *UserProjectQuotaHandler) Update(c *gin.Context) {
|
||||
id64, _ := strconv.ParseUint(c.Param("id"), 10, 64)
|
||||
var req models.UserProjectQuota
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
h.resp.ValidateError(c, err)
|
||||
return
|
||||
}
|
||||
out, err := h.svc.Update(uint(id64), &req)
|
||||
if err != nil {
|
||||
h.resp.BadRequest(c, err.Error())
|
||||
return
|
||||
}
|
||||
h.resp.Success(c, out)
|
||||
}
|
||||
|
||||
func (h *UserProjectQuotaHandler) Delete(c *gin.Context) {
|
||||
id64, _ := strconv.ParseUint(c.Param("id"), 10, 64)
|
||||
if err := h.svc.Delete(uint(id64)); err != nil {
|
||||
h.resp.BadRequest(c, err.Error())
|
||||
return
|
||||
}
|
||||
h.resp.Success(c, gin.H{"message": "deleted"})
|
||||
}
|
||||
|
||||
func (h *UserProjectQuotaHandler) GetByID(c *gin.Context) {
|
||||
id64, _ := strconv.ParseUint(c.Param("id"), 10, 64)
|
||||
out, err := h.svc.GetByID(uint(id64))
|
||||
if err != nil {
|
||||
h.resp.NotFound(c, "not found")
|
||||
return
|
||||
}
|
||||
h.resp.Success(c, out)
|
||||
}
|
||||
|
||||
func (h *UserProjectQuotaHandler) List(c *gin.Context) {
|
||||
var filter storage.UserProjectQuotaFilter
|
||||
filter.UserID = c.Query("user_id")
|
||||
if v := c.Query("enabled"); v != "" {
|
||||
if v == "true" {
|
||||
b := true
|
||||
filter.Enabled = &b
|
||||
} else if v == "false" {
|
||||
b := false
|
||||
filter.Enabled = &b
|
||||
}
|
||||
}
|
||||
if p := c.Query("page"); p != "" {
|
||||
if v, err := strconv.Atoi(p); err == nil {
|
||||
filter.Page = v
|
||||
}
|
||||
}
|
||||
if s := c.Query("size"); s != "" {
|
||||
if v, err := strconv.Atoi(s); err == nil {
|
||||
filter.Size = v
|
||||
}
|
||||
}
|
||||
items, total, err := h.svc.List(filter)
|
||||
if err != nil {
|
||||
h.resp.InternalServerError(c, err.Error())
|
||||
return
|
||||
}
|
||||
h.resp.Page(c, items, total, filter.Page, filter.Size)
|
||||
}
|
||||
Reference in New Issue
Block a user