Files
goauto/server/app/goauto/sybimport/sync_run_handler.go
T

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