Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.env
.envrc
test.json
.idea
3 changes: 2 additions & 1 deletion alternative_payment_types_get.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package toast

import (
"context"
"net/http"
"net/url"

Expand Down Expand Up @@ -114,7 +115,7 @@ func (r *AlternativePaymentTypesGetRequest) URL() *url.URL {

func (r *AlternativePaymentTypesGetRequest) Do() (AlternativePaymentTypesGetResponseBody, error, *http.Response) {
// Create http request
req, err := r.client.NewRequest(nil, r)
req, err := r.client.NewRequest(context.Background(), r)
if err != nil {
return *r.NewResponseBody(), err, nil
}
Expand Down
73 changes: 29 additions & 44 deletions client.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"encoding/json"
"fmt"
"io"
"io/ioutil"
"log"
"mime/multipart"
"net/http"
Expand Down Expand Up @@ -214,8 +213,11 @@ func (c *Client) NewRequest(ctx context.Context, req Request) (*http.Request, er
}
}

if ctx == nil {
ctx = context.Background()
}
// create new http request
r, err := http.NewRequest(req.Method(), req.URL().String(), body)
r, err := http.NewRequestWithContext(ctx, req.Method(), req.URL().String(), body)
if err != nil {
return nil, err
}
Expand All @@ -226,11 +228,6 @@ func (c *Client) NewRequest(ctx context.Context, req Request) (*http.Request, er
// return nil, err
// }

// optionally pass along context
if ctx != nil {
r = r.WithContext(ctx)
}

// set other headers
r.Header.Add("Content-Type", fmt.Sprintf("%s; charset=%s", c.MediaType(), c.Charset()))
r.Header.Add("Accept", c.MediaType())
Expand Down Expand Up @@ -261,15 +258,21 @@ func (c *Client) NewFormRequest(ctx context.Context, method string, URL url.URL,
return nil, err
}
_, err = io.Copy(part, f.Content)
if err != nil {
return nil, err
}
}

err := w.Close()
if err != nil {
return nil, err
}

if ctx == nil {
ctx = context.Background()
}
// create new http request
req, err := http.NewRequest(method, URL.String(), body)
req, err := http.NewRequestWithContext(ctx, method, URL.String(), body)
if err != nil {
return nil, err
}
Expand All @@ -280,11 +283,6 @@ func (c *Client) NewFormRequest(ctx context.Context, method string, URL url.URL,
return nil, err
}

// optionally pass along context
if ctx != nil {
req = req.WithContext(ctx)
}

// set other headers
req.Header.Add("Content-Type", fmt.Sprintf("%s; charset=%s", w.FormDataContentType(), c.Charset()))
req.Header.Add("Accept", c.MediaType())
Expand All @@ -301,7 +299,7 @@ func (c *Client) Do(req *http.Request, body interface{}) (*http.Response, error)
c.beforeRequestDo(c.http, req, body)
}

if c.debug == true {
if c.debug {
dump, _ := httputil.DumpRequestOut(req, true)
log.Println(string(dump))
}
Expand All @@ -317,12 +315,10 @@ func (c *Client) Do(req *http.Request, body interface{}) (*http.Response, error)

// close body io.Reader
defer func() {
if rerr := httpResp.Body.Close(); err == nil {
err = rerr
}
_ = httpResp.Body.Close()
}()

if c.debug == true {
if c.debug {
dump, _ := httputil.DumpResponse(httpResp, true)
log.Println(string(dump))
}
Expand Down Expand Up @@ -364,12 +360,12 @@ func (c *Client) Unmarshal(r io.Reader, vv ...interface{}) error {
return nil
}

b, err := ioutil.ReadAll(r)
b, err := io.ReadAll(r)
if err != nil {
return err
}

errs := []error{}
var errs []error
for _, v := range vv {
r := bytes.NewReader(b)
dec := json.NewDecoder(r)
Expand All @@ -378,7 +374,7 @@ func (c *Client) Unmarshal(r io.Reader, vv ...interface{}) error {
}

err := dec.Decode(v)
if err != nil && err != io.EOF {
if err != nil && !errors.Is(err, io.EOF) {
errs = append(errs, err)
}

Expand All @@ -388,7 +384,7 @@ func (c *Client) Unmarshal(r io.Reader, vv ...interface{}) error {
// Everything errored
msgs := make([]string, len(errs))
for i, e := range errs {
msgs[i] = fmt.Sprint(e)
msgs[i] = e.Error()
}
return errors.New(strings.Join(msgs, ", "))
}
Expand All @@ -415,11 +411,12 @@ func CheckResponse(r *http.Response) error {
}

// read data and copy it back
data, err := ioutil.ReadAll(r.Body)
r.Body = ioutil.NopCloser(bytes.NewReader(data))
data, err := io.ReadAll(r.Body)
if err != nil {
return errorResponse
}
_ = r.Body.Close()
r.Body = io.NopCloser(bytes.NewReader(data))

err = checkContentType(r)
if err != nil {
Expand Down Expand Up @@ -515,31 +512,19 @@ func GetFileContentType(file io.Reader) (string, error) {
return "", err
}

// Use the net/http package's handy DectectContentType function. Always returns a valid
// Use the net/http package's handy DetectContentType function. Always returns a valid
// content-type by returning "application/octet-stream" if no others seemed to match.
contentType := http.DetectContentType(buffer)

return contentType, nil
}

func (c *Client) InitToken(req *http.Request) error {
if c.token.AccessToken == "" {
req := c.NewLoginPostRequest()
req.RequestBody().ClientID = c.ClientID()
req.RequestBody().ClientSecret = c.ClientSecret()
resp, err := req.Do()
if err != nil {
return errors.WithStack(err)
}

c.token = resp.Token
}

if c.token.IsExpired() {
req := c.NewLoginPostRequest()
req.RequestBody().ClientID = c.ClientID()
req.RequestBody().ClientSecret = c.ClientSecret()
resp, err := req.Do()
if c.token.AccessToken == "" || c.token.IsExpired() {
loginRequest := c.NewLoginPostRequest()
loginRequest.RequestBody().ClientID = c.ClientID()
loginRequest.RequestBody().ClientSecret = c.ClientSecret()
resp, err := loginRequest.Do()
if err != nil {
return errors.WithStack(err)
}
Expand Down Expand Up @@ -568,7 +553,7 @@ func (c *Client) GetNextURL(resp *http.Response) (string, error) {
}

func (c *Client) GetNextPage(resp *http.Response) (int, error) {
s, err := c.GetNextURL(resp)
s, _ := c.GetNextURL(resp)
if s == "" {
return 0, nil
}
Expand All @@ -587,7 +572,7 @@ func (c *Client) GetNextPage(resp *http.Response) (int, error) {
}

func (c *Client) GetPageToken(resp *http.Response) (string, error) {
s, err := c.GetNextURL(resp)
s, _ := c.GetNextURL(resp)
if s == "" {
return "", nil
}
Expand Down
3 changes: 2 additions & 1 deletion dining_options_get.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package toast

import (
"context"
"net/http"
"net/url"

Expand Down Expand Up @@ -114,7 +115,7 @@ func (r *DiningOptionsGetRequest) URL() *url.URL {

func (r *DiningOptionsGetRequest) Do() (DiningOptionsGetResponseBody, error, *http.Response) {
// Create http request
req, err := r.client.NewRequest(nil, r)
req, err := r.client.NewRequest(context.Background(), r)
if err != nil {
return *r.NewResponseBody(), err, nil
}
Expand Down
3 changes: 2 additions & 1 deletion discounts_get.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package toast

import (
"context"
"net/http"
"net/url"

Expand Down Expand Up @@ -118,7 +119,7 @@ func (r *DiscountsGetRequest) URL() *url.URL {

func (r *DiscountsGetRequest) Do() (DiscountsGetResponseBody, error, *http.Response) {
// Create http request
req, err := r.client.NewRequest(nil, r)
req, err := r.client.NewRequest(context.Background(), r)
if err != nil {
return *r.NewResponseBody(), err, nil
}
Expand Down
3 changes: 2 additions & 1 deletion login_post.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package toast

import (
"context"
"net/http"
"net/url"
"time"
Expand Down Expand Up @@ -123,7 +124,7 @@ func (r *LoginPostRequest) URL() *url.URL {

func (r *LoginPostRequest) Do() (LoginPostResponseBody, error) {
// Create http request
req, err := r.client.NewRequest(nil, r)
req, err := r.client.NewRequest(context.Background(), r)
if err != nil {
return *r.NewResponseBody(), err
}
Expand Down
3 changes: 2 additions & 1 deletion menu_groups_get.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package toast

import (
"context"
"net/http"
"net/url"

Expand Down Expand Up @@ -118,7 +119,7 @@ func (r *MenuGroupsGetRequest) URL() *url.URL {

func (r *MenuGroupsGetRequest) Do() (MenuGroupsGetResponseBody, error, *http.Response) {
// Create http request
req, err := r.client.NewRequest(nil, r)
req, err := r.client.NewRequest(context.Background(), r)
if err != nil {
return *r.NewResponseBody(), err, nil
}
Expand Down
3 changes: 2 additions & 1 deletion menu_item_get.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package toast

import (
"context"
"net/http"
"net/url"

Expand Down Expand Up @@ -115,7 +116,7 @@ func (r *MenuItemGetRequest) URL() *url.URL {

func (r *MenuItemGetRequest) Do() (MenuItemGetResponseBody, error, *http.Response) {
// Create http request
req, err := r.client.NewRequest(nil, r)
req, err := r.client.NewRequest(context.Background(), r)
if err != nil {
return *r.NewResponseBody(), err, nil
}
Expand Down
3 changes: 2 additions & 1 deletion menu_items_get.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package toast

import (
"context"
"net/http"
"net/url"

Expand Down Expand Up @@ -114,7 +115,7 @@ func (r *MenuItemsGetRequest) URL() *url.URL {

func (r *MenuItemsGetRequest) Do() (MenuItemsGetResponseBody, error, *http.Response) {
// Create http request
req, err := r.client.NewRequest(nil, r)
req, err := r.client.NewRequest(context.Background(), r)
if err != nil {
return *r.NewResponseBody(), err, nil
}
Expand Down
4 changes: 2 additions & 2 deletions omitempty/omitempty.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func MarshalJSON(obj interface{}) ([]byte, error) {
fs = append(fs, st.Field(i))
}

for i, _ := range fs {
for i := range fs {
if !fieldHasOmitEmpty(fs[i], "json") {
continue
}
Expand Down Expand Up @@ -56,7 +56,7 @@ func MarshalXML(obj interface{}, e *xml.Encoder, start xml.StartElement) error {
fs = append(fs, f)
}

for i, _ := range fs {
for i := range fs {
if !fieldHasOmitEmpty(fs[i], "xml") {
continue
}
Expand Down
3 changes: 2 additions & 1 deletion orders_bulk_get.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package toast

import (
"context"
"net/http"
"net/url"

Expand Down Expand Up @@ -118,7 +119,7 @@ func (r *OrdersBulkGetRequest) URL() *url.URL {

func (r *OrdersBulkGetRequest) Do() (OrdersBulkGetResponseBody, error, *http.Response) {
// Create http request
req, err := r.client.NewRequest(nil, r)
req, err := r.client.NewRequest(context.Background(), r)
if err != nil {
return *r.NewResponseBody(), err, nil
}
Expand Down
3 changes: 2 additions & 1 deletion orders_get.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package toast

import (
"context"
"net/http"
"net/url"

Expand Down Expand Up @@ -116,7 +117,7 @@ func (r *OrdersGetRequest) URL() *url.URL {

func (r *OrdersGetRequest) Do() (OrdersGetResponseBody, error, *http.Response) {
// Create http request
req, err := r.client.NewRequest(nil, r)
req, err := r.client.NewRequest(context.Background(), r)
if err != nil {
return *r.NewResponseBody(), err, nil
}
Expand Down
5 changes: 3 additions & 2 deletions partner_restaurants_get.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package toast

import (
"context"
"net/http"
"net/url"
"time"
Expand Down Expand Up @@ -64,7 +65,7 @@ func (r PartnerRestaurantsGetRequest) NewPathParams() *PartnerRestaurantsGetRequ
return &PartnerRestaurantsGetRequestPathParams{}
}

type PartnerRestaurantsGetRequestPathParams struct {}
type PartnerRestaurantsGetRequestPathParams struct{}

func (p *PartnerRestaurantsGetRequestPathParams) Params() map[string]string {
return map[string]string{}
Expand Down Expand Up @@ -130,7 +131,7 @@ func (r *PartnerRestaurantsGetRequest) URL() *url.URL {

func (r *PartnerRestaurantsGetRequest) Do() (PartnerRestaurantsGetResponseBody, error, *http.Response) {
// Create http request
req, err := r.client.NewRequest(nil, r)
req, err := r.client.NewRequest(context.Background(), r)
if err != nil {
return *r.NewResponseBody(), err, nil
}
Expand Down
Loading