initial commit
This commit is contained in:
27
pkg/utils/query.go
Normal file
27
pkg/utils/query.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"github.com/labstack/echo/v4"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
)
|
||||
|
||||
func ApplySort(tx *gorm.DB, column string, isDesc bool) {
|
||||
tx.Order(clause.OrderByColumn{
|
||||
Column: clause.Column{Name: column},
|
||||
Desc: isDesc,
|
||||
})
|
||||
}
|
||||
|
||||
func ApplyFilters(tx *gorm.DB, column string, value string) {
|
||||
if column != "" && value != "" {
|
||||
tx.Where(column + " LIKE '%" + value + "%'")
|
||||
}
|
||||
}
|
||||
|
||||
func ApplyIdFilter(c echo.Context, tx *gorm.DB) {
|
||||
id := c.Param("id")
|
||||
if id != "" {
|
||||
tx.Where("id = ?", id)
|
||||
}
|
||||
}
|
||||
52
pkg/utils/url.go
Normal file
52
pkg/utils/url.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"net/url"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func GetQueryParam(query url.Values, key string, defaultVal string) string {
|
||||
data := query.Get(key)
|
||||
|
||||
if data == "" {
|
||||
return defaultVal
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
func GetPaginationParams(query url.Values) (int, int) {
|
||||
offset := GetQueryParam(query, "offset", "0")
|
||||
limit := GetQueryParam(query, "limit", "10")
|
||||
|
||||
limitInt, err := strconv.Atoi(limit)
|
||||
|
||||
if err != nil {
|
||||
limitInt = 10
|
||||
}
|
||||
|
||||
offsetInt, err := strconv.Atoi(offset)
|
||||
|
||||
if err != nil {
|
||||
offsetInt = 0
|
||||
}
|
||||
|
||||
return limitInt, offsetInt
|
||||
}
|
||||
|
||||
func GetFilterParams(query url.Values) (string, bool, string, string) {
|
||||
sort := GetQueryParam(query, "sort", "id:asc")
|
||||
filter := GetQueryParam(query, "filter", ":")
|
||||
|
||||
filters := strings.Split(filter, ":")
|
||||
sorts := strings.Split(sort, ":")
|
||||
|
||||
isDesc := false
|
||||
|
||||
if sorts[1] == "desc" {
|
||||
isDesc = true
|
||||
}
|
||||
|
||||
return sorts[0], isDesc, filters[0], filters[1]
|
||||
}
|
||||
Reference in New Issue
Block a user