forked from ebhomengo/niki
36 lines
754 B
Go
36 lines
754 B
Go
package param
|
|
|
|
import (
|
|
"regexp"
|
|
"strings"
|
|
)
|
|
|
|
const (
|
|
id = "benefactors.id"
|
|
phoneNumber = "benefactors.phone_number"
|
|
fullName = "concat(benefactors.first_name, benefactors.last_name)"
|
|
)
|
|
|
|
var searchItems = []string{id, phoneNumber, fullName}
|
|
|
|
type SearchRequest struct {
|
|
Query string `query:"search" example:"09123456789"`
|
|
}
|
|
|
|
type QuerySearch map[string]any
|
|
|
|
func (s *SearchRequest) GetSearch() *QuerySearch {
|
|
searchParams := QuerySearch{}
|
|
|
|
if s.Query != "" {
|
|
s.Query = strings.TrimSpace(s.Query)
|
|
re := regexp.MustCompile(`[\p{P}\p{S}]+`)
|
|
s.Query = re.ReplaceAllString(s.Query, "")
|
|
s.Query = strings.ReplaceAll(s.Query, " ", "")
|
|
for _, val := range searchItems {
|
|
searchParams[val] = s.Query
|
|
}
|
|
}
|
|
return &searchParams
|
|
}
|