in pkg/admin/handlers/service.go [84:127]
func SearchService(c *gin.Context) {
pattern := c.Query("pattern")
filter := c.Query("filter")
page := c.Query("page")
pageInt, err := strconv.Atoi(page)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{
"error": err.Error(),
})
return
}
size := c.Query("size")
sizeInt, err := strconv.Atoi(page)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{
"error": err.Error(),
})
return
}
// get services
serviceDTOS, err := providerService.FindService(pattern, filter)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{
"error": err.Error(),
})
return
}
// paging
p := paginator.New(adapter.NewSliceAdapter(serviceDTOS), sizeInt)
p.SetPage(pageInt)
var serviceResults []*model.ServiceDTO
p.Results(&serviceResults)
// return results
c.JSON(http.StatusOK, model.ListServiceByPage{
Content: serviceResults,
TotalPages: p.PageNums(),
TotalElements: p.Nums(),
Size: size,
First: pageInt == 0,
Last: pageInt == p.PageNums()-1,
PageNumber: page,
Offset: (pageInt - 1) * sizeInt,
})
}