fix: blank page loading filters (#107)

* fix(filters): load indexers separate

* feat: add ctx to filter related db methods
This commit is contained in:
Ludvig Lundgren 2022-02-03 21:58:41 +01:00 committed by GitHub
parent 10a2ab2c96
commit 26f558859a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 90 additions and 115 deletions

View file

@ -16,7 +16,7 @@ func NewActionRepo(db *SqliteDB) domain.ActionRepo {
return &ActionRepo{db: db}
}
func (r *ActionRepo) FindByFilterID(filterID int) ([]domain.Action, error) {
func (r *ActionRepo) FindByFilterID(ctx context.Context, filterID int) ([]domain.Action, error) {
//r.db.lock.RLock()
//defer r.db.lock.RUnlock()

View file

@ -19,11 +19,11 @@ func NewFilterRepo(db *SqliteDB) domain.FilterRepo {
return &FilterRepo{db: db}
}
func (r *FilterRepo) ListFilters() ([]domain.Filter, error) {
func (r *FilterRepo) ListFilters(ctx context.Context) ([]domain.Filter, error) {
//r.db.lock.RLock()
//defer r.db.lock.RUnlock()
rows, err := r.db.handler.Query("SELECT id, enabled, name, match_releases, except_releases, created_at, updated_at FROM filter ORDER BY name ASC")
rows, err := r.db.handler.QueryContext(ctx, "SELECT id, enabled, name, match_releases, except_releases, created_at, updated_at FROM filter ORDER BY name ASC")
if err != nil {
log.Error().Stack().Err(err).Msg("filters_list: error query data")
return nil, err
@ -54,18 +54,16 @@ func (r *FilterRepo) ListFilters() ([]domain.Filter, error) {
return filters, nil
}
func (r *FilterRepo) FindByID(filterID int) (*domain.Filter, error) {
func (r *FilterRepo) FindByID(ctx context.Context, filterID int) (*domain.Filter, error) {
//r.db.lock.RLock()
//defer r.db.lock.RUnlock()
row := r.db.handler.QueryRow("SELECT id, enabled, name, min_size, max_size, delay, match_releases, except_releases, use_regex, match_release_groups, except_release_groups, scene, freeleech, freeleech_percent, shows, seasons, episodes, resolutions, codecs, sources, containers, match_hdr, except_hdr, years, artists, albums, release_types_match, formats, quality, media, log_score, has_log, has_cue, perfect_flac, match_categories, except_categories, match_uploaders, except_uploaders, tags, except_tags, created_at, updated_at FROM filter WHERE id = ?", filterID)
var f domain.Filter
row := r.db.handler.QueryRowContext(ctx, "SELECT id, enabled, name, min_size, max_size, delay, match_releases, except_releases, use_regex, match_release_groups, except_release_groups, scene, freeleech, freeleech_percent, shows, seasons, episodes, resolutions, codecs, sources, containers, match_hdr, except_hdr, years, artists, albums, release_types_match, formats, quality, media, log_score, has_log, has_cue, perfect_flac, match_categories, except_categories, match_uploaders, except_uploaders, tags, except_tags, created_at, updated_at FROM filter WHERE id = ?", filterID)
if err := row.Err(); err != nil {
return nil, err
}
var f domain.Filter
var minSize, maxSize, matchReleases, exceptReleases, matchReleaseGroups, exceptReleaseGroups, freeleechPercent, shows, seasons, episodes, years, artists, albums, matchCategories, exceptCategories, matchUploaders, exceptUploaders, tags, exceptTags sql.NullString
var useRegex, scene, freeleech, hasLog, hasCue, perfectFlac sql.NullBool
var delay, logScore sql.NullInt32

View file

@ -64,7 +64,8 @@ func (r *IndexerRepo) List() ([]domain.Indexer, error) {
rows, err := r.db.handler.Query("SELECT id, enabled, name, identifier, settings FROM indexer ORDER BY name ASC")
if err != nil {
log.Fatal().Err(err)
log.Error().Stack().Err(err).Msg("indexer.list: error query indexer")
return nil, err
}
defer rows.Close()
@ -78,8 +79,6 @@ func (r *IndexerRepo) List() ([]domain.Indexer, error) {
if err := rows.Scan(&f.ID, &f.Enabled, &f.Name, &f.Identifier, &settings); err != nil {
log.Error().Stack().Err(err).Msg("indexer.list: error scanning data to struct")
}
if err != nil {
return nil, err
}
@ -100,17 +99,18 @@ func (r *IndexerRepo) List() ([]domain.Indexer, error) {
return indexers, nil
}
func (r *IndexerRepo) FindByFilterID(id int) ([]domain.Indexer, error) {
func (r *IndexerRepo) FindByFilterID(ctx context.Context, id int) ([]domain.Indexer, error) {
//r.db.lock.RLock()
//defer r.db.lock.RUnlock()
rows, err := r.db.handler.Query(`
rows, err := r.db.handler.QueryContext(ctx, `
SELECT i.id, i.enabled, i.name, i.identifier
FROM indexer i
JOIN filter_indexer fi on i.id = fi.indexer_id
WHERE fi.filter_id = ?`, id)
if err != nil {
log.Fatal().Err(err)
log.Error().Stack().Err(err).Msg("indexer.find_by_filter_id: error query indexer")
return nil, err
}
defer rows.Close()
@ -123,9 +123,7 @@ func (r *IndexerRepo) FindByFilterID(id int) ([]domain.Indexer, error) {
//var settingsMap map[string]string
if err := rows.Scan(&f.ID, &f.Enabled, &f.Name, &f.Identifier); err != nil {
log.Error().Stack().Err(err).Msg("indexer.list: error scanning data to struct")
}
if err != nil {
log.Error().Stack().Err(err).Msg("indexer.find_by_filter_id: error scanning data to struct")
return nil, err
}