114 lines
2.7 KiB
Go
114 lines
2.7 KiB
Go
package controllers
|
|
|
|
import (
|
|
"strconv"
|
|
"time"
|
|
|
|
"com.snow.auto_monitor/app/constants/errorcode"
|
|
"com.snow.auto_monitor/app/http/entities"
|
|
"com.snow.auto_monitor/app/http/formatters/bannerformatter"
|
|
"com.snow.auto_monitor/app/services/bannerservice"
|
|
"com.snow.auto_monitor/app/utils/httpclient"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/qit-team/snow-core/log/logger"
|
|
)
|
|
|
|
// hello示例
|
|
func HandleHello(c *gin.Context) {
|
|
logger.Debug(c, "hello", "test message")
|
|
client := httpclient.NewClient(c.Request.Context())
|
|
resposne, err := client.R().Get("https://www.baidu.com")
|
|
if err != nil {
|
|
Error(c, errorcode.SystemError, err.Error())
|
|
return
|
|
}
|
|
logger.Info(c, "HandleHello", resposne.String())
|
|
Success(c, "hello world!")
|
|
return
|
|
}
|
|
|
|
// request和response的示例
|
|
// HandleTest godoc
|
|
// @Summary request和response的示例
|
|
// @Description request和response的示例
|
|
// @Tags snow
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param test body entities.TestRequest true "test request"
|
|
// @Success 200 {array} entities.TestResponse
|
|
// @Failure 400 {object} controllers.HTTPError
|
|
// @Failure 404 {object} controllers.HTTPError
|
|
// @Failure 500 {object} controllers.HTTPError
|
|
// @Router /test [post]
|
|
func HandleTest(c *gin.Context) {
|
|
request := new(entities.TestRequest)
|
|
err := GenRequest(c, request)
|
|
if err != nil {
|
|
Error(c, errorcode.ParamError)
|
|
return
|
|
}
|
|
|
|
response := new(entities.TestResponse)
|
|
response.Name = request.Name
|
|
response.Url = request.Url
|
|
response.Id = time.Now().Unix()
|
|
Success(c, response)
|
|
return
|
|
}
|
|
|
|
// 测试数据库服务示例
|
|
func GetBannerList(c *gin.Context) {
|
|
pageStr := c.Query("page")
|
|
limitStr := c.DefaultQuery("limit", "20")
|
|
|
|
page, _ := strconv.Atoi(pageStr)
|
|
if page <= 0 {
|
|
page = 1
|
|
}
|
|
|
|
limit, _ := strconv.Atoi(limitStr)
|
|
if limit <= 0 {
|
|
limit = 20
|
|
}
|
|
|
|
list, err := bannerservice.GetListByPid(1, limit, page)
|
|
if err != nil {
|
|
Error500(c)
|
|
return
|
|
}
|
|
|
|
data := map[string]interface{}{
|
|
"page": page,
|
|
"limit": limit,
|
|
"data": bannerformatter.FormatList(list),
|
|
}
|
|
|
|
Success(c, data)
|
|
}
|
|
|
|
// validator的示例
|
|
// HandleTestValidator godoc
|
|
// @Summary HandleTestValidator的示例
|
|
// @Description HandleTestValidator的示例
|
|
// @Tags snow
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param testValidator body entities.TestValidatorRequest true "example of validator"
|
|
// @Success 200 {array} entities.TestValidatorRequest
|
|
// @Failure 400 {object} controllers.HTTPError
|
|
// @Failure 404 {object} controllers.HTTPError
|
|
// @Failure 500 {object} controllers.HTTPError
|
|
// @Router /test_validator [post]
|
|
func HandleTestValidator(c *gin.Context) {
|
|
request := new(entities.TestValidatorRequest)
|
|
err := GenRequest(c, request)
|
|
if err != nil {
|
|
Error(c, errorcode.ParamError)
|
|
return
|
|
}
|
|
|
|
Success(c, request)
|
|
return
|
|
}
|