diff --git a/.gitignore b/.gitignore index 2a349de..28038b0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /gobbs +/posts.db diff --git a/aggregator/aggregator.go b/aggregator/aggregator.go index c250938..ab34039 100644 --- a/aggregator/aggregator.go +++ b/aggregator/aggregator.go @@ -1,6 +1,8 @@ package aggregator import ( + "encoding/json" + "os" "sort" "github.com/mrusme/gobbs/models/post" @@ -22,6 +24,17 @@ func (a *Aggregator) ListPosts() ([]post.Post, []error) { var errs []error = make([]error, len(a.ctx.Systems)) var posts []post.Post + // TODO: Clean up implementation + if os.Getenv("GOBBS_TEST") == "true" { + jsonPosts, err := os.ReadFile("posts.db") + if err == nil { + err = json.Unmarshal(jsonPosts, &posts) + if err == nil { + return posts, nil + } + } + } + for idx, sys := range a.ctx.Systems { sysPosts, err := (*sys).ListPosts(idx) if err != nil { @@ -35,6 +48,12 @@ func (a *Aggregator) ListPosts() ([]post.Post, []error) { return posts[i].CreatedAt.After(posts[j].CreatedAt) }) + // TODO: Clean up implementation + jsonPosts, err := json.Marshal(posts) + if err == nil { + os.WriteFile("posts.db", jsonPosts, 0600) + } + return posts, errs }