首次提交
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/luxsin/app-api/internal/response"
|
||||
"github.com/luxsin/app-api/internal/search"
|
||||
"github.com/luxsin/app-api/pkg/encode"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type ModelListHandler struct {
|
||||
search *search.Client
|
||||
log *zap.Logger
|
||||
}
|
||||
|
||||
func NewModelListHandler(searchClient *search.Client, log *zap.Logger) *ModelListHandler {
|
||||
return &ModelListHandler{
|
||||
search: searchClient,
|
||||
log: log,
|
||||
}
|
||||
}
|
||||
|
||||
func (h *ModelListHandler) ModelList(c *gin.Context) {
|
||||
key := c.Query("key")
|
||||
base64Resp := encode.ParseBase64Param(c)
|
||||
|
||||
count := 100
|
||||
if v := c.Query("count"); v != "" {
|
||||
if n, err := strconv.Atoi(v); err == nil && n > 0 {
|
||||
count = n
|
||||
}
|
||||
}
|
||||
|
||||
list, err := h.search.ModelList(c.Request.Context(), key, count)
|
||||
if err != nil {
|
||||
h.log.Error("model list search failed", zap.Error(err))
|
||||
response.InternalError(c, "failed to search models")
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user