From afb6594729029ea62865776814db4e4645594bc9 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Thu, 15 Sep 2022 23:30:16 +0100 Subject: [PATCH] feat: add support for archive endpoint --- archive.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 archive.go diff --git a/archive.go b/archive.go new file mode 100644 index 0000000..2d3913c --- /dev/null +++ b/archive.go @@ -0,0 +1,46 @@ +package midjourney + +import ( + "context" + "encoding/json" + "fmt" + "net/http" + "net/url" + "time" +) + +func (c *Client) ArchiveDay( + ctx context.Context, + date time.Time, +) (jobIDs []string, err error) { + u := &url.URL{ + Path: "app/archive/day/", + RawQuery: url.Values{ + "day": []string{date.Format("2")}, + "month": []string{date.Format("1")}, + "year": []string{date.Format("2006")}, + }.Encode(), + } + + req, err := http.NewRequestWithContext(ctx, http.MethodGet, u.String(), nil) + if err != nil { + return nil, err + } + + resp, err := c.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("%w: %s", ErrResponseStatus, resp.Status) + } + + err = json.NewDecoder(resp.Body).Decode(&jobIDs) + if err != nil { + return nil, err + } + + return jobIDs, nil +}