func SearchService()

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