Files
2026-06-12 15:50:01 +08:00

61 lines
1.5 KiB
Go

package handler
import (
"net/http"
"github.com/gin-gonic/gin"
"github.com/luxsin/app-api/internal/repository"
"github.com/luxsin/app-api/internal/response"
"github.com/luxsin/app-api/pkg/encode"
"go.uber.org/zap"
)
type ModelHandler struct {
repo *repository.ModelRepository
log *zap.Logger
}
func NewModelHandler(repo *repository.ModelRepository, log *zap.Logger) *ModelHandler {
return &ModelHandler{
repo: repo,
log: log,
}
}
// GetModel 获取型号列表
//
// @Summary 获取型号列表
// @Tags Model
// @Produce json
// @Param brandName query string false "品牌名称"
// @Param modelName query string false "型号名称"
// @Param base64Resp query string false "是否返回 base64 编码响应"
// @Success 200 {array} object
// @Failure 500 {object} object
// @Router /audio/getModel [get]
func (h *ModelHandler) GetModel(c *gin.Context) {
brandName := c.Query("brandName")
modelName := c.Query("modelName")
base64Resp := encode.ParseBase64Param(c)
list, err := h.repo.List(c.Request.Context(), brandName, modelName)
if err != nil {
h.log.Error("get model list failed", zap.Error(err))
response.InternalError(c, "failed to get model list")
return
}
if base64Resp {
encoded, err := encode.EncodeJSON(list)
if err != nil {
h.log.Error("encode response failed", zap.Error(err))
response.InternalError(c, "failed to encode response")
return
}
c.String(http.StatusOK, encoded)
return
}
c.JSON(http.StatusOK, list)
}