diff options
author | Jordan <me@jordan.im> | 2021-12-26 20:55:20 -0700 |
---|---|---|
committer | Jordan <me@jordan.im> | 2021-12-26 20:55:20 -0700 |
commit | 69bc97bdbe330c084d9937360dd11c04b617033d (patch) | |
tree | 4bf808c75435b93552a4ed2ebd5b90cfc2fb0376 /db.go | |
parent | 9b28b7df9897353b5921dd13e2d6e07b016ac70a (diff) | |
download | keep-69bc97bdbe330c084d9937360dd11c04b617033d.tar.gz keep-69bc97bdbe330c084d9937360dd11c04b617033d.zip |
web, db: add wildcard URL search
Diffstat (limited to 'db.go')
-rw-r--r-- | db.go | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -156,7 +156,7 @@ func (db *SqliteDB) Stats() (*Stats, error) { } func (db *SqliteDB) ListEntries(limit int, offset int, user string, - guild string, channel string) (*[]Entry, error) { + guild string, channel string, search string) (*[]Entry, error) { query := ` SELECT urls.id, urls.url, users.user_id, guilds.guild_id, channels.channel_id, status_code @@ -202,6 +202,20 @@ func (db *SqliteDB) ListEntries(limit int, offset int, user string, args = append(args, channel) } } + if search != "" { + if !hasWhere { + query = fmt.Sprintf(`%s + WHERE urls.url LIKE '%%' || ? || '%%' + `, query) + args = append(args, search) + hasWhere = true + } else { + query = fmt.Sprintf(`%s + AND urls.url LIKE '%%' || ? || '%%' + `, query) + args = append(args, search) + } + } query = fmt.Sprintf(`%s ORDER BY urls.id DESC LIMIT ? OFFSET ?;`, query) |