[Files Refactor] Bug fixes (#2868)

* Return error if multiple rows returned for id
* Add missing LoadFiles calls
* Show id if path is empty
This commit is contained in:
WithoutPants
2022-09-02 11:18:37 +10:00
parent 273cf0383d
commit 94d39da706
23 changed files with 93 additions and 26 deletions

View File

@@ -299,6 +299,7 @@ func (qb *GalleryStore) get(ctx context.Context, q *goqu.SelectDataset) (*models
func (qb *GalleryStore) getMany(ctx context.Context, q *goqu.SelectDataset) ([]*models.Gallery, error) {
const single = false
var ret []*models.Gallery
var lastID int
if err := queryFunc(ctx, q, single, func(r *sqlx.Rows) error {
var f galleryQueryRow
if err := r.StructScan(&f); err != nil {
@@ -307,6 +308,11 @@ func (qb *GalleryStore) getMany(ctx context.Context, q *goqu.SelectDataset) ([]*
s := f.resolve()
if s.ID == lastID {
return fmt.Errorf("internal error: multiple rows returned for single gallery id %d", s.ID)
}
lastID = s.ID
ret = append(ret, s)
return nil
}); err != nil {

View File

@@ -315,6 +315,7 @@ func (qb *ImageStore) get(ctx context.Context, q *goqu.SelectDataset) (*models.I
func (qb *ImageStore) getMany(ctx context.Context, q *goqu.SelectDataset) ([]*models.Image, error) {
const single = false
var ret []*models.Image
var lastID int
if err := queryFunc(ctx, q, single, func(r *sqlx.Rows) error {
var f imageQueryRow
if err := r.StructScan(&f); err != nil {
@@ -323,6 +324,11 @@ func (qb *ImageStore) getMany(ctx context.Context, q *goqu.SelectDataset) ([]*mo
i := f.resolve()
if i.ID == lastID {
return fmt.Errorf("internal error: multiple rows returned for single image id %d", i.ID)
}
lastID = i.ID
ret = append(ret, i)
return nil
}); err != nil {

View File

@@ -410,6 +410,7 @@ func (qb *SceneStore) get(ctx context.Context, q *goqu.SelectDataset) (*models.S
func (qb *SceneStore) getMany(ctx context.Context, q *goqu.SelectDataset) ([]*models.Scene, error) {
const single = false
var ret []*models.Scene
var lastID int
if err := queryFunc(ctx, q, single, func(r *sqlx.Rows) error {
var f sceneQueryRow
if err := r.StructScan(&f); err != nil {
@@ -417,6 +418,10 @@ func (qb *SceneStore) getMany(ctx context.Context, q *goqu.SelectDataset) ([]*mo
}
s := f.resolve()
if s.ID == lastID {
return fmt.Errorf("internal error: multiple rows returned for single scene id %d", s.ID)
}
lastID = s.ID
ret = append(ret, s)
return nil