From 541e5cd85225a50410eb5303338e0fc3bfb0f8f7 Mon Sep 17 00:00:00 2001 From: Matjaz Debelak Date: Mon, 14 Oct 2024 14:42:00 +0200 Subject: [PATCH] Fix loader not returning data correctly --- backend/cmd/api/loaders.go | 2 +- backend/common/items.go | 2 +- backend/sqlc/timedmetadata-queries.go | 2 +- backend/sqlc/timedmetadata.sql.go | 7 ++++--- queries/timedmetadata.sql | 6 +++--- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/backend/cmd/api/loaders.go b/backend/cmd/api/loaders.go index c1cfc915..500f1249 100644 --- a/backend/cmd/api/loaders.go +++ b/backend/cmd/api/loaders.go @@ -279,7 +279,7 @@ func initBatchLoaders(queries *sqlc.Queries, membersClient *members.Client) *com return i.ID })), ChaptersLoader: loaders.NewListLoader(ctx, queries.GetChaptersForEpisodeID, func(i common.TimedMetadata) int { - return int(i.ParentEpisodeID.Int64) + return i.ParentEpisodeID }), PhraseLoader: loaders.New(ctx, queries.GetPhrases, loaders.WithName("phrases-loader"), loaders.WithKeyFunc(func(i common.Phrase) string { return i.Key diff --git a/backend/common/items.go b/backend/common/items.go index bc2be0e4..22b4b943 100644 --- a/backend/common/items.go +++ b/backend/common/items.go @@ -239,7 +239,7 @@ type TimedMetadata struct { SongID uuid.NullUUID MediaItemID uuid.NullUUID Images Images - ParentEpisodeID null.Int + ParentEpisodeID int } // Short item type diff --git a/backend/sqlc/timedmetadata-queries.go b/backend/sqlc/timedmetadata-queries.go index 03e76e13..5362d138 100644 --- a/backend/sqlc/timedmetadata-queries.go +++ b/backend/sqlc/timedmetadata-queries.go @@ -66,7 +66,7 @@ func (q *Queries) GetChaptersForEpisodeID(ctx context.Context, ids []int) ([]com Description: description, MediaItemID: i.MediaitemID, Images: q.getImages(i.Images), - ParentEpisodeID: i.EpisodeID, + ParentEpisodeID: int(i.EpisodeID), } }), nil } diff --git a/backend/sqlc/timedmetadata.sql.go b/backend/sqlc/timedmetadata.sql.go index 31ba4c19..0d5d27ae 100644 --- a/backend/sqlc/timedmetadata.sql.go +++ b/backend/sqlc/timedmetadata.sql.go @@ -203,9 +203,9 @@ func (q *Queries) InsertTimedMetadata(ctx context.Context, arg InsertTimedMetada const getChaptesFromEpisode = `-- name: getChaptesFromEpisode :many SELECT + e.id as episode_id, tm.id::uuid as id, tm.type::text as type, - tm.episode_id, tm.content_type, tm.song_id, (SELECT array_agg(c.person_id) FROM "contributions" c WHERE c.timedmetadata_id = tm.id)::uuid[] AS person_ids, @@ -253,12 +253,13 @@ FROM episodes e WHERE e.id= ANY($1::int[]) AND tm.status = 'published' AND tm.type = 'chapter' +ORDER BY tm.seconds ASC ` type getChaptesFromEpisodeRow struct { + EpisodeID int32 `db:"episode_id" json:"episodeId"` ID uuid.UUID `db:"id" json:"id"` Type string `db:"type" json:"type"` - EpisodeID null_v4.Int `db:"episode_id" json:"episodeId"` ContentType null_v4.String `db:"content_type" json:"contentType"` SongID uuid.NullUUID `db:"song_id" json:"songId"` PersonIds []uuid.UUID `db:"person_ids" json:"personIds"` @@ -283,9 +284,9 @@ func (q *Queries) getChaptesFromEpisode(ctx context.Context, episodeIds []int32) for rows.Next() { var i getChaptesFromEpisodeRow if err := rows.Scan( + &i.EpisodeID, &i.ID, &i.Type, - &i.EpisodeID, &i.ContentType, &i.SongID, pq.Array(&i.PersonIds), diff --git a/queries/timedmetadata.sql b/queries/timedmetadata.sql index 176a0ab6..427cea72 100644 --- a/queries/timedmetadata.sql +++ b/queries/timedmetadata.sql @@ -117,9 +117,9 @@ DELETE FROM timedmetadata WHERE asset_id = @asset_id; -- name: getChaptesFromEpisode :many SELECT + e.id as episode_id, tm.id::uuid as id, tm.type::text as type, - tm.episode_id, tm.content_type, tm.song_id, (SELECT array_agg(c.person_id) FROM "contributions" c WHERE c.timedmetadata_id = tm.id)::uuid[] AS person_ids, @@ -166,5 +166,5 @@ FROM episodes e ) images ON (images.timedmetadata_id = tm.id) WHERE e.id= ANY(@episode_ids::int[]) AND tm.status = 'published' - AND tm.type = 'chapter'; -; + AND tm.type = 'chapter' +ORDER BY tm.seconds ASC;