first implementation of search feature

This commit is contained in:
tsmethurst
2021-05-29 19:36:54 +02:00
parent cb54324430
commit 0fe853b1ee
20 changed files with 763 additions and 19 deletions

View File

@ -45,8 +45,9 @@ func (e ErrAlreadyExists) Error() string {
}
type Where struct {
Key string
Value interface{}
Key string
Value interface{}
CaseInsensitive bool
}
// DB provides methods for interacting with an underlying database or other storage mechanism (for now, just postgres).

View File

@ -223,7 +223,12 @@ func (ps *postgresService) GetWhere(where []db.Where, i interface{}) error {
q := ps.conn.Model(i)
for _, w := range where {
q = q.Where("? = ?", pg.Safe(w.Key), w.Value)
if w.CaseInsensitive {
q = q.Where("LOWER(?) = LOWER(?)", pg.Safe(w.Key), w.Value)
} else {
q = q.Where("? = ?", pg.Safe(w.Key), w.Value)
}
}
if err := q.Select(); err != nil {