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 {
|
||||
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, `
|
||||
INSERT INTO current_archive (
|
||||
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
|
||||
`, 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)
|
||||
`, 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 using new id=%d: %v", item.id, newID, err)
|
||||
return res, err
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user