package common

import (
	"mtp2_if/global/app"
	"mtp2_if/global/e"
	"mtp2_if/logger"
	"mtp2_if/models"
	"net/http"

	"github.com/gin-gonic/gin"
)

// QueryErrorInfosReq 获取数据库错误信息请求参数
type QueryErrorInfosReq struct {
	RowNumber string `form:"rowNumber"`
}

// QueryErrorInfos 获取数据库错误信息
// @Description 如果传入rowNumber，则返回此rowNumber后的数据
// @Summary 获取数据库错误信息
// @Produce json
// @Param rowNumber query string false "起始行号前索引"
// @Success 200 {object} models.QueryErrorInfosRsp
// @Failure 500 {object} app.Response
// @Router /Common/QueryErrorInfos [get]
// @Tags 通用服务
func QueryErrorInfos(c *gin.Context) {
	appG := app.Gin{C: c}

	// 获取请求参数
	var req QueryErrorInfosReq
	if err := appG.C.ShouldBindQuery(&req); err != nil {
		logger.GetLogger().Errorf("QueryErrorInfos failed: %s", err.Error())
		appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
		return
	}

	errorCodes, err := models.GetErrorInfos(req.RowNumber)
	if err != nil {
		// 查询失败
		logger.GetLogger().Errorf("QueryErrorInfos failed: %s", err.Error())
		appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
		return
	}

	// 查询成功
	logger.GetLogger().Debugln("QueryErrorInfos successed: %v", errorCodes)
	appG.Response(http.StatusOK, e.SUCCESS, errorCodes)
}
