Files
nl-blogs/server/handlers/services.go
2026-01-16 17:03:34 +08:00

153 lines
3.3 KiB
Go

package handlers
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/niangaodev/art-code/models"
"github.com/niangaodev/art-code/repositories"
"github.com/niangaodev/art-code/utils"
)
// GetTestimonials 获取客户评价
func GetTestimonials(c *gin.Context) {
testimonials, err := repositories.GetTestimonials()
if err != nil {
utils.ServerError(c, err)
return
}
if testimonials == nil {
utils.Success(c, []interface{}{})
} else {
utils.Success(c, testimonials)
}
}
// GetPartners 获取合作伙伴
func GetPartners(c *gin.Context) {
partners, err := repositories.GetPartners()
if err != nil {
utils.ServerError(c, err)
return
}
if partners == nil {
utils.Success(c, []interface{}{})
} else {
utils.Success(c, partners)
}
}
// AdminCreateTestimonial 创建客户评价
func AdminCreateTestimonial(c *gin.Context) {
var t models.Testimonial
if err := c.ShouldBindJSON(&t); err != nil {
utils.Error(c, 400, "Invalid request")
return
}
if err := repositories.CreateTestimonial(&t); err != nil {
utils.ServerError(c, err)
return
}
utils.SuccessWithMsg(c, "Testimonial created successfully", nil)
}
// AdminUpdateTestimonial 更新客户评价
func AdminUpdateTestimonial(c *gin.Context) {
idStr := c.Param("id")
var id uint
if _, err := fmt.Sscanf(idStr, "%d", &id); err != nil {
utils.Error(c, 400, "Invalid ID")
return
}
var t models.Testimonial
if err := c.ShouldBindJSON(&t); err != nil {
utils.Error(c, 400, "Invalid request")
return
}
t.ID = id
if err := repositories.UpdateTestimonial(&t); err != nil {
utils.ServerError(c, err)
return
}
utils.SuccessWithMsg(c, "Testimonial updated successfully", nil)
}
// AdminDeleteTestimonial 删除客户评价
func AdminDeleteTestimonial(c *gin.Context) {
idStr := c.Param("id")
var id uint
if _, err := fmt.Sscanf(idStr, "%d", &id); err != nil {
utils.Error(c, 400, "Invalid ID")
return
}
if err := repositories.DeleteTestimonial(id); err != nil {
utils.ServerError(c, err)
return
}
utils.SuccessWithMsg(c, "Testimonial deleted successfully", nil)
}
// AdminCreatePartner 创建合作伙伴
func AdminCreatePartner(c *gin.Context) {
var p models.Partner
if err := c.ShouldBindJSON(&p); err != nil {
utils.Error(c, 400, "Invalid request")
return
}
if err := repositories.CreatePartner(&p); err != nil {
utils.ServerError(c, err)
return
}
utils.SuccessWithMsg(c, "Partner created successfully", nil)
}
// AdminUpdatePartner 更新合作伙伴
func AdminUpdatePartner(c *gin.Context) {
idStr := c.Param("id")
var id uint
if _, err := fmt.Sscanf(idStr, "%d", &id); err != nil {
utils.Error(c, 400, "Invalid ID")
return
}
var p models.Partner
if err := c.ShouldBindJSON(&p); err != nil {
utils.Error(c, 400, "Invalid request")
return
}
p.ID = id
if err := repositories.UpdatePartner(&p); err != nil {
utils.ServerError(c, err)
return
}
utils.SuccessWithMsg(c, "Partner updated successfully", nil)
}
// AdminDeletePartner 删除合作伙伴
func AdminDeletePartner(c *gin.Context) {
idStr := c.Param("id")
var id uint
if _, err := fmt.Sscanf(idStr, "%d", &id); err != nil {
utils.Error(c, 400, "Invalid ID")
return
}
if err := repositories.DeletePartner(id); err != nil {
utils.ServerError(c, err)
return
}
utils.SuccessWithMsg(c, "Partner deleted successfully", nil)
}