test/backend/internal/handlers/member_handler.go
2025-11-21 16:03:52 +08:00

65 lines
1.5 KiB
Go

package handlers
import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"soda-api/backend/internal/models"
"soda-api/backend/internal/utils"
)
type MemberHandler struct {
db *gorm.DB
}
func NewMemberHandler(db *gorm.DB) *MemberHandler {
return &MemberHandler{db: db}
}
func (h *MemberHandler) List(c *gin.Context) {
var members []models.Member
if err := h.db.Find(&members).Error; err != nil {
utils.JSONError(c, 500, "获取会员失败")
return
}
utils.JSONSuccess(c, members)
}
func (h *MemberHandler) Create(c *gin.Context) {
var member models.Member
if err := c.ShouldBindJSON(&member); err != nil {
utils.JSONError(c, 400, "请填写完整的会员信息")
return
}
if err := h.db.Create(&member).Error; err != nil {
utils.JSONError(c, 500, "创建会员失败")
return
}
utils.JSONSuccess(c, member)
}
func (h *MemberHandler) Update(c *gin.Context) {
var member models.Member
if err := h.db.First(&member, c.Param("id")).Error; err != nil {
utils.JSONError(c, 404, "会员不存在")
return
}
if err := c.ShouldBindJSON(&member); err != nil {
utils.JSONError(c, 400, "数据无效")
return
}
if err := h.db.Save(&member).Error; err != nil {
utils.JSONError(c, 500, "更新失败")
return
}
utils.JSONSuccess(c, member)
}
func (h *MemberHandler) Delete(c *gin.Context) {
if err := h.db.Delete(&models.Member{}, c.Param("id")).Error; err != nil {
utils.JSONError(c, 500, "删除失败")
return
}
utils.JSONSuccess(c, gin.H{"message": "删除成功"})
}