Fix ordering of records on the subscribers page
This commit is contained in:
parent
db032d3001
commit
e7da8fa668
|
@ -224,6 +224,7 @@ SELECT (SELECT email FROM prof) as email,
|
||||||
-- there's a COUNT() OVER() that still returns the total result count
|
-- there's a COUNT() OVER() that still returns the total result count
|
||||||
-- for pagination in the frontend, albeit being a field that'll repeat
|
-- for pagination in the frontend, albeit being a field that'll repeat
|
||||||
-- with every resultant row.
|
-- with every resultant row.
|
||||||
|
-- %s = arbitrary expression, %s = order by field, %s = order direction
|
||||||
SELECT COUNT(*) OVER () AS total, subscribers.* FROM subscribers
|
SELECT COUNT(*) OVER () AS total, subscribers.* FROM subscribers
|
||||||
LEFT JOIN subscriber_lists
|
LEFT JOIN subscriber_lists
|
||||||
ON (
|
ON (
|
||||||
|
@ -233,7 +234,7 @@ SELECT COUNT(*) OVER () AS total, subscribers.* FROM subscribers
|
||||||
)
|
)
|
||||||
WHERE subscriber_lists.list_id = ALL($1::INT[])
|
WHERE subscriber_lists.list_id = ALL($1::INT[])
|
||||||
%s
|
%s
|
||||||
ORDER BY $2 DESC OFFSET $3 LIMIT $4;
|
ORDER BY %s %s OFFSET $2 LIMIT $3;
|
||||||
|
|
||||||
-- name: query-subscribers-template
|
-- name: query-subscribers-template
|
||||||
-- raw: true
|
-- raw: true
|
||||||
|
|
|
@ -101,12 +101,16 @@ func handleQuerySubscribers(c echo.Context) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// There's an arbitrary query condition from the frontend.
|
// There's an arbitrary query condition from the frontend.
|
||||||
cond := ""
|
var (
|
||||||
|
cond = ""
|
||||||
|
ordBy = "updated_at"
|
||||||
|
ord = "DESC"
|
||||||
|
)
|
||||||
if query != "" {
|
if query != "" {
|
||||||
cond = " AND " + query
|
cond = " AND " + query
|
||||||
}
|
}
|
||||||
|
|
||||||
stmt := fmt.Sprintf(app.queries.QuerySubscribers, cond)
|
stmt := fmt.Sprintf(app.queries.QuerySubscribers, cond, ordBy, ord)
|
||||||
|
|
||||||
// Create a readonly transaction to prevent mutations.
|
// Create a readonly transaction to prevent mutations.
|
||||||
tx, err := app.db.BeginTxx(context.Background(), &sql.TxOptions{ReadOnly: true})
|
tx, err := app.db.BeginTxx(context.Background(), &sql.TxOptions{ReadOnly: true})
|
||||||
|
@ -117,8 +121,8 @@ func handleQuerySubscribers(c echo.Context) error {
|
||||||
}
|
}
|
||||||
defer tx.Rollback()
|
defer tx.Rollback()
|
||||||
|
|
||||||
// Run the query.
|
// Run the query. stmt is the raw SQL query.
|
||||||
if err := tx.Select(&out.Results, stmt, listIDs, "updaated_at", pg.Offset, pg.Limit); err != nil {
|
if err := tx.Select(&out.Results, stmt, listIDs, pg.Offset, pg.Limit); err != nil {
|
||||||
return echo.NewHTTPError(http.StatusInternalServerError,
|
return echo.NewHTTPError(http.StatusInternalServerError,
|
||||||
fmt.Sprintf("Error querying subscribers: %v", pqErrMsg(err)))
|
fmt.Sprintf("Error querying subscribers: %v", pqErrMsg(err)))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue