chore: add pagination to list inboxes

This commit is contained in:
Steven
2024-10-14 23:32:39 +08:00
parent b4d72e3349
commit 14712b42fa
9 changed files with 170 additions and 55 deletions

View File

@ -2,6 +2,7 @@ package postgres
import (
"context"
"fmt"
"strings"
"github.com/pkg/errors"
@ -51,6 +52,12 @@ func (d *DB) ListInboxes(ctx context.Context, find *store.FindInbox) ([]*store.I
}
query := "SELECT id, created_ts, sender_id, receiver_id, status, message FROM inbox WHERE " + strings.Join(where, " AND ") + " ORDER BY created_ts DESC"
if find.Limit != nil {
query = fmt.Sprintf("%s LIMIT %d", query, *find.Limit)
if find.Offset != nil {
query = fmt.Sprintf("%s OFFSET %d", query, *find.Offset)
}
}
rows, err := d.db.QueryContext(ctx, query, args...)
if err != nil {
return nil, err