From a3ce6a476e7bde5caa29f7950070281ee96ee234 Mon Sep 17 00:00:00 2001 From: Conrad Date: Fri, 25 Dec 2020 21:13:16 -0800 Subject: [PATCH 1/3] feat: support for ouptut to a writer (#1) --- client.go | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/client.go b/client.go index 6fcae1a..d18d608 100644 --- a/client.go +++ b/client.go @@ -110,21 +110,42 @@ func (c *Client) Post(req Request) (*http.Response, error) { return resp, nil } -// Store creates the resulting PDF to given destination. -func (c *Client) Store(req Request, dest string) error { +func (c *Client) makeRequest(req Request) (*bytes.Buffer, error) { if hasWebhook(req) { - return errors.New("cannot use Store method with a webhook") + return nil, errors.New("cannot use Store method with a webhook") } resp, err := c.Post(req) if err != nil { - return err + return nil, err } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { - return errors.New("failed to generate the result PDF") + return nil, errors.New("failed to generate the result PDF") + } + + buff := bytes.NewBuffer(nil) + _, err = io.Copy(buff, resp.Body) + return buff, err +} + +// Store creates the resulting PDF to given destination. +func (c *Client) Store(req Request, dest string) error { + data, err := c.makeRequest(req) + if err != nil { + return err + } + return writeNewFile(dest, data) +} + +// StoreToWriter creates the resulting PDF to a io writer +func (c *Client) StoreToWriter(req Request, w io.Writer) error { + data, err := c.makeRequest(req) + if err != nil { + return err } - return writeNewFile(dest, resp.Body) + _, err = io.Copy(w, data) + return err } func hasWebhook(req Request) bool { From f5deffbd499c972cdbdf8d23c8372e322792c648 Mon Sep 17 00:00:00 2001 From: Cornel Kundt Date: Fri, 25 Mar 2022 14:12:12 -0500 Subject: [PATCH 2/3] add http status code to error message --- client.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client.go b/client.go index d18d608..91305cf 100644 --- a/client.go +++ b/client.go @@ -120,8 +120,8 @@ func (c *Client) makeRequest(req Request) (*bytes.Buffer, error) { } defer resp.Body.Close() - if resp.StatusCode != http.StatusOK { - return nil, errors.New("failed to generate the result PDF") + if resp.StatusCode >= http.StatusBadRequest { + return nil, fmt.Errorf("failed to generate the result PDF - http status code: %d", resp.StatusCode) } buff := bytes.NewBuffer(nil) From deacbf2e879b36738c47f8ee9cad27c7249465c3 Mon Sep 17 00:00:00 2001 From: Conrad Kurth Date: Thu, 4 Aug 2022 08:51:06 -0700 Subject: [PATCH 3/3] fix: update post url --- html.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html.go b/html.go index 0cf18a7..9fdefc7 100644 --- a/html.go +++ b/html.go @@ -20,7 +20,7 @@ func (req *HTMLRequest) Assets(assets ...Document) { } func (req *HTMLRequest) postURL() string { - return "/convert/html" + return "/forms/chromium/convert/html" } func (req *HTMLRequest) formFiles() map[string]Document {