diff options
author | 2021-05-21 23:04:59 +0200 | |
---|---|---|
committer | 2021-05-21 23:04:59 +0200 | |
commit | 0df2e18cc0d5440deca32681f33c66d883913901 (patch) | |
tree | d52cb72f376695c70c37377fdb03ae47177e420e /internal/db/pg/pg.go | |
parent | Follows and relationships (#27) (diff) | |
download | gotosocial-0df2e18cc0d5440deca32681f33c66d883913901.tar.xz |
Home timeline (#28)
* v. basic implementation of home timeline
* Go fmt ./...
Diffstat (limited to 'internal/db/pg/pg.go')
-rw-r--r-- | internal/db/pg/pg.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/internal/db/pg/pg.go b/internal/db/pg/pg.go index 2a4b040d1..30b073bcc 100644 --- a/internal/db/pg/pg.go +++ b/internal/db/pg/pg.go @@ -1103,6 +1103,26 @@ func (ps *postgresService) WhoFavedStatus(status *gtsmodel.Status) ([]*gtsmodel. return accounts, nil } +func (ps *postgresService) GetHomeTimelineForAccount(accountID string, maxID string, sinceID string, minID string, limit int, local bool) ([]*gtsmodel.Status, error) { + statuses := []*gtsmodel.Status{} + + q := ps.conn.Model(&statuses). + ColumnExpr("status.*"). + Join("JOIN follows AS f ON f.target_account_id = status.account_id"). + Where("f.account_id = ?", accountID). + Limit(limit). + Order("status.created_at DESC") + + err := q.Select() + if err != nil { + if err != pg.ErrNoRows { + return nil, err + } + } + + return statuses, nil +} + /* CONVERSION FUNCTIONS */ |