Performer select refactor (#4013)

* Overhaul performer select
* Add interface to load performers by id
* Add Performer ID select and replace existing
This commit is contained in:
WithoutPants
2023-08-24 11:15:49 +10:00
committed by GitHub
parent 3dc01a9362
commit e40b3d78b2
15 changed files with 667 additions and 226 deletions

View File

@@ -23,9 +23,19 @@ func (r *queryResolver) FindPerformer(ctx context.Context, id string) (ret *mode
return ret, nil
}
func (r *queryResolver) FindPerformers(ctx context.Context, performerFilter *models.PerformerFilterType, filter *models.FindFilterType) (ret *FindPerformersResultType, err error) {
func (r *queryResolver) FindPerformers(ctx context.Context, performerFilter *models.PerformerFilterType, filter *models.FindFilterType, performerIDs []int) (ret *FindPerformersResultType, err error) {
if err := r.withReadTxn(ctx, func(ctx context.Context) error {
performers, total, err := r.repository.Performer.Query(ctx, performerFilter, filter)
var performers []*models.Performer
var err error
var total int
if len(performerIDs) > 0 {
performers, err = r.repository.Performer.FindMany(ctx, performerIDs)
total = len(performers)
} else {
performers, total, err = r.repository.Performer.Query(ctx, performerFilter, filter)
}
if err != nil {
return err
}
@@ -34,6 +44,7 @@ func (r *queryResolver) FindPerformers(ctx context.Context, performerFilter *mod
Count: total,
Performers: performers,
}
return nil
}); err != nil {
return nil, err