refactor(database): clean-up queries (#569)

* fix(database): build WHERE using squirrel

* flip LIKEs

* change sql.LevelReadCommitted

* feat(db): add missing commits

* implement single query for releases

* cleanup

* feat(releases): properly handle limit for Find

* feat(releases): make dynamic ILike helper

* feat(releases): check for empty ReleaseActionStatus

* add values as sql.NullX
* check if ID is non 0

* feat(releases): improve find
This commit is contained in:
Kyle Sanderson 2022-12-30 14:53:45 -08:00 committed by GitHub
parent e6c48a5228
commit 19b3899a5c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 206 additions and 168 deletions

View file

@ -8,6 +8,7 @@ import (
"github.com/autobrr/autobrr/internal/domain"
"github.com/autobrr/autobrr/internal/logger"
"github.com/autobrr/autobrr/pkg/errors"
sq "github.com/Masterminds/squirrel"
"github.com/rs/zerolog"
)
@ -31,9 +32,9 @@ func (r *FeedCacheRepo) Get(bucket string, key string) ([]byte, error) {
"ttl",
).
From("feed_cache").
Where("bucket = ?", bucket).
Where("key = ?", key).
Where("ttl > ?", time.Now())
Where(sq.Eq{"bucket": bucket}).
Where(sq.Eq{"key": key}).
Where(sq.Gt{"ttl": time.Now()})
query, args, err := queryBuilder.ToSql()
if err != nil {
@ -64,7 +65,7 @@ func (r *FeedCacheRepo) GetByBucket(ctx context.Context, bucket string) ([]domai
"ttl",
).
From("feed_cache").
Where("bucket = ?", bucket)
Where(sq.Eq{"bucket": bucket})
query, args, err := queryBuilder.ToSql()
if err != nil {
@ -102,7 +103,7 @@ func (r *FeedCacheRepo) GetCountByBucket(ctx context.Context, bucket string) (in
queryBuilder := r.db.squirrel.
Select("COUNT(*)").
From("feed_cache").
Where("bucket = ?", bucket)
Where(sq.Eq{"bucket": bucket})
query, args, err := queryBuilder.ToSql()
if err != nil {
@ -128,8 +129,8 @@ func (r *FeedCacheRepo) Exists(bucket string, key string) (bool, error) {
Select("1").
Prefix("SELECT EXISTS (").
From("feed_cache").
Where("bucket = ?", bucket).
Where("key = ?", key).
Where(sq.Eq{"bucket": bucket}).
Where(sq.Eq{"key": key}).
Suffix(")")
query, args, err := queryBuilder.ToSql()
@ -167,8 +168,8 @@ func (r *FeedCacheRepo) Put(bucket string, key string, val []byte, ttl time.Time
func (r *FeedCacheRepo) Delete(ctx context.Context, bucket string, key string) error {
queryBuilder := r.db.squirrel.
Delete("feed_cache").
Where("bucket = ?", bucket).
Where("key = ?", key)
Where(sq.Eq{"bucket": bucket}).
Where(sq.Eq{"key": key})
query, args, err := queryBuilder.ToSql()
if err != nil {
@ -186,7 +187,7 @@ func (r *FeedCacheRepo) Delete(ctx context.Context, bucket string, key string) e
func (r *FeedCacheRepo) DeleteBucket(ctx context.Context, bucket string) error {
queryBuilder := r.db.squirrel.
Delete("feed_cache").
Where("bucket = ?", bucket)
Where(sq.Eq{"bucket": bucket})
query, args, err := queryBuilder.ToSql()
if err != nil {