Skip to content

Commit aa4553f

Browse files
committed
series: factorize next/prev db access
Remove duplicated code. Signed-off-by: Robin Jarry <robin@jarry.cc>
1 parent 1b1021f commit aa4553f

3 files changed

Lines changed: 19 additions & 14 deletions

File tree

‎pkg/api/util.go‎

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,17 +114,13 @@ func loadSeriesDetail(ctx context.Context, database bun.IDB, base string, series
114114
s.PreviousSeries = &u
115115
}
116116

117-
var nextIDs []int
118-
if err := database.NewSelect().
119-
Model((*db.Series)(nil)).
120-
Column("id").
121-
Where("previous_series_id = ?", s.ID).
122-
Scan(ctx, &nextIDs); err != nil {
117+
nextSeriesList, err := q.ListNextSeries(s.ID)
118+
if err != nil {
123119
log.Errorf("load next series: %v", err)
124120
}
125-
s.NextSeries = make([]string, len(nextIDs))
126-
for j, id := range nextIDs {
127-
s.NextSeries[j] = fmt.Sprintf("%s/series/%d", base, id)
121+
s.NextSeries = make([]string, len(nextSeriesList))
122+
for j, ns := range nextSeriesList {
123+
s.NextSeries[j] = fmt.Sprintf("%s/series/%d", base, ns.ID)
128124
}
129125
}
130126
}

‎pkg/db/series.go‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,15 @@ func (q *Queries) GetSeriesMetadata(seriesID int) (map[string]string, error) {
204204
return m, err
205205
}
206206

207+
func (q *Queries) ListNextSeries(seriesID int) ([]Series, error) {
208+
var series []Series
209+
err := q.DB.NewSelect().Model(&series).
210+
Where("previous_series_id = ?", seriesID).
211+
OrderExpr("version ASC").
212+
Scan(q.Ctx)
213+
return series, err
214+
}
215+
207216
func (q *Queries) LoadPatchSeries(patches []Patch) error {
208217
var seriesIDs []int
209218
for i := range patches {

‎pkg/web/patches.go‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -444,11 +444,11 @@ func (h *webHandler) PatchDetailPage(w http.ResponseWriter, r *http.Request) {
444444
prevSeries = &ps
445445
}
446446
}
447-
q.DB.NewSelect().Model(&nextSeries).
448-
Column("id", "version").
449-
Where("previous_series_id = ?", series.ID).
450-
OrderExpr("version ASC").
451-
Scan(q.Ctx)
447+
nextSeries, err = q.ListNextSeries(series.ID)
448+
if err != nil {
449+
serverErrorPage(w, "list next series", err)
450+
return
451+
}
452452
}
453453

454454
data := patchDetailData{

0 commit comments

Comments
 (0)