Keep order of shared mediafiles

This commit is contained in:
Deluan 2023-01-24 10:22:36 -05:00
parent c770229154
commit 26be5b8396
1 changed files with 16 additions and 1 deletions

View File

@ -101,13 +101,28 @@ func (r *shareRepository) loadMedia(share *model.Share) error {
return nil
case "media_file":
mfRepo := NewMediaFileRepository(r.ctx, r.ormer)
share.Tracks, err = mfRepo.GetAll(model.QueryOptions{Filters: Eq{"id": ids}})
tracks, err := mfRepo.GetAll(model.QueryOptions{Filters: Eq{"id": ids}})
share.Tracks = sortByIdPosition(tracks, ids)
return err
}
log.Warn(r.ctx, "Unsupported Share ResourceType", "share", share.ID, "resourceType", share.ResourceType)
return nil
}
func sortByIdPosition(mfs model.MediaFiles, ids []string) model.MediaFiles {
m := map[string]int{}
for i, mf := range mfs {
m[mf.ID] = i
}
var sorted model.MediaFiles
for _, id := range ids {
if idx, ok := m[id]; ok {
sorted = append(sorted, mfs[idx])
}
}
return sorted
}
func (r *shareRepository) Update(id string, entity interface{}, cols ...string) error {
s := entity.(*model.Share)
// TODO Validate record