summaryrefslogtreecommitdiffstats
path: root/internal/client/reddit.go
diff options
context:
space:
mode:
authors <[email protected]>2025-11-04 11:06:35 -0500
committers <[email protected]>2025-11-04 11:06:35 -0500
commit4486b6659640102dd542fea007f4c33ac02511ff (patch)
tree3e991f3722e3b0062a6078078ff6aa1478c3ab00 /internal/client/reddit.go
parent3c06eede8ac8cb79272601aad3b2d3359657443a (diff)
downloaddborg-4486b6659640102dd542fea007f4c33ac02511ff.tar.gz
dborg-4486b6659640102dd542fea007f4c33ac02511ff.zip
feat: add version checking and auto-update functionality
Diffstat (limited to 'internal/client/reddit.go')
-rw-r--r--internal/client/reddit.go83
1 files changed, 83 insertions, 0 deletions
diff --git a/internal/client/reddit.go b/internal/client/reddit.go
new file mode 100644
index 0000000..da95782
--- /dev/null
+++ b/internal/client/reddit.go
@@ -0,0 +1,83 @@
+package client
+
+import (
+ "encoding/json"
+ "fmt"
+
+ "git.db.org.ai/dborg/internal/models"
+)
+
+func (c *Client) GetSubredditPosts(params *models.RedditSubredditParams) (*models.RedditResponse, error) {
+ path := fmt.Sprintf("/reddit/r/%s", params.Subreddit)
+ data, err := c.Get(path, nil)
+ if err != nil {
+ return nil, err
+ }
+
+ var response models.RedditResponse
+ if err := json.Unmarshal(data, &response); err != nil {
+ return nil, fmt.Errorf("failed to parse response: %w", err)
+ }
+
+ return &response, nil
+}
+
+func (c *Client) GetSubredditComments(params *models.RedditSubredditParams) (*models.RedditResponse, error) {
+ path := fmt.Sprintf("/reddit/r/%s/comments", params.Subreddit)
+ data, err := c.Get(path, nil)
+ if err != nil {
+ return nil, err
+ }
+
+ var response models.RedditResponse
+ if err := json.Unmarshal(data, &response); err != nil {
+ return nil, fmt.Errorf("failed to parse response: %w", err)
+ }
+
+ return &response, nil
+}
+
+func (c *Client) GetUserPosts(params *models.RedditUserParams) (*models.RedditResponse, error) {
+ path := fmt.Sprintf("/reddit/user/%s/posts", params.Username)
+ data, err := c.Get(path, nil)
+ if err != nil {
+ return nil, err
+ }
+
+ var response models.RedditResponse
+ if err := json.Unmarshal(data, &response); err != nil {
+ return nil, fmt.Errorf("failed to parse response: %w", err)
+ }
+
+ return &response, nil
+}
+
+func (c *Client) GetUserComments(params *models.RedditUserParams) (*models.RedditResponse, error) {
+ path := fmt.Sprintf("/reddit/user/%s/comments", params.Username)
+ data, err := c.Get(path, nil)
+ if err != nil {
+ return nil, err
+ }
+
+ var response models.RedditResponse
+ if err := json.Unmarshal(data, &response); err != nil {
+ return nil, fmt.Errorf("failed to parse response: %w", err)
+ }
+
+ return &response, nil
+}
+
+func (c *Client) GetUserAbout(params *models.RedditUserParams) (*models.RedditResponse, error) {
+ path := fmt.Sprintf("/reddit/user/%s/about", params.Username)
+ data, err := c.Get(path, nil)
+ if err != nil {
+ return nil, err
+ }
+
+ var response models.RedditResponse
+ if err := json.Unmarshal(data, &response); err != nil {
+ return nil, fmt.Errorf("failed to parse response: %w", err)
+ }
+
+ return &response, nil
+}