From 8fb579805f9b00d651212eddde219ef1ce32524d Mon Sep 17 00:00:00 2001 From: Ron Rise Date: Wed, 25 Jun 2025 16:42:34 -0400 Subject: [PATCH] refactor: optimize file content encoding in NewAttachmentFromFileContent --- client/create.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/client/create.go b/client/create.go index 79b1cb0..6878961 100755 --- a/client/create.go +++ b/client/create.go @@ -3,6 +3,7 @@ package client import ( "bytes" "encoding/json" + "errors" "net/http" "time" ) @@ -12,6 +13,11 @@ type EmailCreateResponse struct { CreatedAt time.Time `json:"created_at"` } +type ErrorResponse struct { + Message string `json:"message"` + Error string `json:"error"` +} + func (client *Client) SendEmail(request *EmailRequest) (*EmailCreateResponse, error) { jsonData, _ := json.Marshal(request) @@ -30,6 +36,15 @@ func (client *Client) SendEmail(request *EmailRequest) (*EmailCreateResponse, er return nil, err } + if resp.StatusCode != http.StatusOK { + response, err := readResponseBody[Response[ErrorResponse]](resp) + if err != nil { + return nil, err + } + + return nil, errors.New(response.Payload.Message) + } + response, err := readResponseBody[Response[EmailCreateResponse]](resp) if err != nil { return nil, err