From 6567c348340ae22064dd3db60f26f8ecaca2f4f6 Mon Sep 17 00:00:00 2001 From: Jason Streifling Date: Wed, 12 Feb 2025 17:27:56 +0100 Subject: [PATCH] Fix bug in db.GetAllArticles --- cmd/backend/articles.go | 16 +++++++++++++++- cmd/frontend/articles.go | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/cmd/backend/articles.go b/cmd/backend/articles.go index bc8b4f8..d1939de 100644 --- a/cmd/backend/articles.go +++ b/cmd/backend/articles.go @@ -356,12 +356,26 @@ func (db *DB) GetAllArticles() ([]*Article, error) { return nil, fmt.Errorf("error querying DB: %v", err) } + var created []byte + var uuidString string + articles := make([]*Article, 0) for rows.Next() { article := new(Article) - if err = rows.Scan(&article.Title, &article.Created, &article.BannerLink, &article.Summary, &article.Published, &article.CreatorID, &article.IssueID, &article.EditedID, &article.Clicks, &article.IsInIssue, &article.AutoGenerated, &article.UUID); err != nil { + if err = rows.Scan(&article.Title, &created, &article.BannerLink, &article.Summary, &article.Published, &article.CreatorID, &article.IssueID, &article.EditedID, &article.Clicks, &article.IsInIssue, &article.AutoGenerated, &uuidString); err != nil { return nil, fmt.Errorf("error scanning rows: %v", err) } + + article.Created, err = time.Parse("2006-01-02 15:04:05", string(created)) + if err != nil { + return nil, fmt.Errorf("error parsing created: %v", err) + } + + article.UUID, err = uuid.Parse(uuidString) + if err != nil { + return nil, fmt.Errorf("error parsing uuid: %v", err) + } + articles = append(articles, article) } diff --git a/cmd/frontend/articles.go b/cmd/frontend/articles.go index 098b286..5348297 100644 --- a/cmd/frontend/articles.go +++ b/cmd/frontend/articles.go @@ -840,7 +840,7 @@ func DeleteArticle(c *b.Config, db *b.DB, s map[string]*Session) http.HandlerFun return } - if err = os.Remove(filepath.Join(c.ArticleDir, fmt.Sprint(article.UUID, ".md"))); err != nil { + if err = os.Remove(filepath.Join(c.ArticleDir, article.UUID.String()+".md")); err != nil { log.Println(err) http.Error(w, err.Error(), http.StatusInternalServerError) return