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) }