Filter field names

This commit is contained in:
Eden Kirin
2024-06-23 18:16:32 +02:00
parent 9db7265733
commit 13fe2222dd
5 changed files with 134 additions and 40 deletions

View File

@ -8,6 +8,7 @@ import (
"repo-pattern/app/models"
"repo-pattern/app/repository"
"repo-pattern/app/repository/smartfilter"
"time"
"gorm.io/gorm"
)
@ -17,6 +18,17 @@ var (
FALSE = false
)
type CertFilter struct {
Alive *bool `filterfield:"field=alive,operator=EQ"`
SerialNumber *string `filterfield:"field=serial_number,operator=NE"`
SerialNumberContains *string `filterfield:"field=serial_number,operator=LIKE"`
IssuerContains *string `filterfield:"field=issuer,operator=ILIKE"`
Id *string `filterfield:"field=id,operator=EQ"`
Ids *[]string `filterfield:"field=id,operator=IN"`
IdsNot *[]string `filterfield:"field=id,operator=NOT_IN"`
CreatedAt_Lt *time.Time `filterfield:"field=created_at,operator=LT"`
}
func doMagic(db *gorm.DB) {
var err error
query := db
@ -29,7 +41,7 @@ func doMagic(db *gorm.DB) {
// createdTime := time.Date(2024, 5, 26, 16, 8, 0, 0, location)
ids := []string{"eb2bcac6-5173-4dbb-93b7-e7c03b924a03", "db9fb837-3483-4736-819d-f427dc8cda23", "1fece5e7-8e8d-4828-8298-3b1f07fd29ff"}
filter := smartfilter.CertFilter{
filter := CertFilter{
// Alive: &FALSE,
// Id: &id,
// SerialNumber: &serialNumber,
@ -56,7 +68,7 @@ func doList(db *gorm.DB) {
repo := repository.RepoBase[models.Cert]{}
repo.Init(db)
filter := smartfilter.CertFilter{
filter := CertFilter{
Alive: &TRUE,
}
@ -76,7 +88,7 @@ func doGet(db *gorm.DB) {
id := "db9fb837-3483-4736-819d-f427dc8cda23"
filter := smartfilter.CertFilter{
filter := CertFilter{
Id: &id,
}
@ -93,7 +105,7 @@ func doExists(db *gorm.DB) {
id := "db9fb837-3483-4736-819d-f427dc8cda23"
filter := smartfilter.CertFilter{
filter := CertFilter{
Id: &id,
}