59 lines
1.5 KiB
Go
59 lines
1.5 KiB
Go
package sybimport
|
|
|
|
import (
|
|
"net/http"
|
|
"strconv"
|
|
"strings"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func (handler Handler) ListSyncRuns(c *gin.Context) {
|
|
page, err := queryInt(c.Query("page"), 1)
|
|
if err != nil {
|
|
writeError(c, invalidRequest("page 必须是正整数"))
|
|
return
|
|
}
|
|
pageSize, err := queryInt(c.Query("pageSize"), 20)
|
|
if err != nil || pageSize > 100 {
|
|
writeError(c, invalidRequest("pageSize 必须是 1 到 100 的整数"))
|
|
return
|
|
}
|
|
status := strings.TrimSpace(c.Query("status"))
|
|
if status != "" && status != SyncRunRunning && status != SyncRunSucceeded && status != SyncRunFailed && status != SyncRunInterrupted {
|
|
writeError(c, invalidRequest("status 无效"))
|
|
return
|
|
}
|
|
service, ok := handler.service(c)
|
|
if !ok {
|
|
return
|
|
}
|
|
response, err := NewSyncRunService(service.DB).List(c.Request.Context(), SyncRunListRequest{
|
|
Page: page, PageSize: pageSize, Status: status,
|
|
DateFrom: strings.TrimSpace(c.Query("dateFrom")), DateTo: strings.TrimSpace(c.Query("dateTo")),
|
|
})
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
c.JSON(http.StatusOK, gin.H{"code": 200, "data": response})
|
|
}
|
|
|
|
func (handler Handler) SyncRunDetail(c *gin.Context) {
|
|
id, err := strconv.ParseUint(c.Param("runId"), 10, 64)
|
|
if err != nil || id == 0 {
|
|
writeError(c, invalidRequest("runId 无效"))
|
|
return
|
|
}
|
|
service, ok := handler.service(c)
|
|
if !ok {
|
|
return
|
|
}
|
|
item, err := NewSyncRunService(service.DB).Detail(c.Request.Context(), id)
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
c.JSON(http.StatusOK, gin.H{"code": 200, "data": gin.H{"item": item}})
|
|
}
|