From 7eeba4dc9e3b3324d8ec57fd0eea97bee100cb4a Mon Sep 17 00:00:00 2001 From: Matt Baer Date: Thu, 30 Jul 2020 16:28:21 -0400 Subject: [PATCH] Limit initial draft post loading to 10 posts Ref T401 --- account.go | 2 +- database.go | 17 ++++++++++++++--- export.go | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/account.go b/account.go index 56a4f84..aead6c5 100644 --- a/account.go +++ b/account.go @@ -731,7 +731,7 @@ func viewMyCollectionsAPI(app *App, u *User, w http.ResponseWriter, r *http.Requ } func viewArticles(app *App, u *User, w http.ResponseWriter, r *http.Request) error { - p, err := app.db.GetAnonymousPosts(u) + p, err := app.db.GetAnonymousPosts(u, 1) if err != nil { log.Error("unable to fetch anon posts: %v", err) } diff --git a/database.go b/database.go index 000d62c..07663ad 100644 --- a/database.go +++ b/database.go @@ -77,7 +77,7 @@ type writestore interface { GetTotalCollections() (int64, error) GetTotalPosts() (int64, error) GetTopPosts(u *User, alias string) (*[]PublicPost, error) - GetAnonymousPosts(u *User) (*[]PublicPost, error) + GetAnonymousPosts(u *User, page int) (*[]PublicPost, error) GetUserPosts(u *User) (*[]PublicPost, error) CreateOwnedPost(post *SubmittedPost, accessToken, collAlias, hostName string) (*PublicPost, error) @@ -1774,8 +1774,19 @@ func (db *datastore) GetTopPosts(u *User, alias string) (*[]PublicPost, error) { return &posts, nil } -func (db *datastore) GetAnonymousPosts(u *User) (*[]PublicPost, error) { - rows, err := db.Query("SELECT id, view_count, title, created, updated, content FROM posts WHERE owner_id = ? AND collection_id IS NULL ORDER BY created DESC", u.ID) +func (db *datastore) GetAnonymousPosts(u *User, page int) (*[]PublicPost, error) { + pagePosts := 10 + start := page*pagePosts - pagePosts + if page == 0 { + start = 0 + pagePosts = 1000 + } + + limitStr := "" + if page > 0 { + limitStr = fmt.Sprintf(" LIMIT %d, %d", start, pagePosts) + } + rows, err := db.Query("SELECT id, view_count, title, created, updated, content FROM posts WHERE owner_id = ? AND collection_id IS NULL ORDER BY created DESC"+limitStr, u.ID) if err != nil { log.Error("Failed selecting from posts: %v", err) return nil, impart.HTTPError{http.StatusInternalServerError, "Couldn't retrieve user anonymous posts."} diff --git a/export.go b/export.go index 592bc0c..bdfd7c4 100644 --- a/export.go +++ b/export.go @@ -110,7 +110,7 @@ func compileFullExport(app *App, u *User) *ExportUser { log.Error("unable to fetch collections: %v", err) } - posts, err := app.db.GetAnonymousPosts(u) + posts, err := app.db.GetAnonymousPosts(u, 0) if err != nil { log.Error("unable to fetch anon posts: %v", err) }