feat(repo): enhance MoveToArchive to compute new IDs for archived episodes
This commit is contained in:
parent
e34d2bf8f1
commit
2063dffc09
@ -218,14 +218,19 @@ func (r *pgxEpisodeRepo) MoveToArchive(ctx context.Context, ids []int64) (episod
|
|||||||
}
|
}
|
||||||
|
|
||||||
if !inserted {
|
if !inserted {
|
||||||
|
var newID int64
|
||||||
|
if err := tx.QueryRow(ctx, `SELECT COALESCE(MAX(id), 0) + 1 FROM current_archive`).Scan(&newID); err != nil {
|
||||||
|
log.Printf("archive compute new id failed for original id=%d: %v", item.id, err)
|
||||||
|
return res, err
|
||||||
|
}
|
||||||
if err := tx.QueryRow(ctx, `
|
if err := tx.QueryRow(ctx, `
|
||||||
INSERT INTO current_archive (
|
INSERT INTO current_archive (
|
||||||
id, ep_num, ep_title, season_name, start_time, playback_length, current_ep, date_created
|
id, ep_num, ep_title, season_name, start_time, playback_length, current_ep, date_created
|
||||||
)
|
)
|
||||||
VALUES (nextval(pg_get_serial_sequence('current','id')), $1, $2, $3, $4, $5, $6, $7)
|
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
|
||||||
RETURNING id
|
RETURNING id
|
||||||
`, item.epNum, item.epTitle, item.seasonName, item.startTime, item.playback, item.currentEp, item.dateCreated).Scan(&archivedID); err != nil {
|
`, newID, item.epNum, item.epTitle, item.seasonName, item.startTime, item.playback, item.currentEp, item.dateCreated).Scan(&archivedID); err != nil {
|
||||||
log.Printf("archive fallback insert failed for original id=%d: %v", item.id, err)
|
log.Printf("archive fallback insert failed for original id=%d using new id=%d: %v", item.id, newID, err)
|
||||||
return res, err
|
return res, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user