From d6d9b49b3d00d217bdad9167063c9a1470f3e94a Mon Sep 17 00:00:00 2001 From: yyoshiki41 Date: Tue, 23 Mar 2021 09:40:30 +0900 Subject: [PATCH] feat(receipts): implements GetReceipt --- receipts.go | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/receipts.go b/receipts.go index 7eea7c4..6687fc8 100644 --- a/receipts.go +++ b/receipts.go @@ -2,8 +2,12 @@ package freee import ( "context" - "golang.org/x/oauth2" + "net/http" + "path" "strconv" + + "github.com/google/go-querystring/query" + "golang.org/x/oauth2" ) const ( @@ -34,6 +38,10 @@ func NewCreateReceiptParams(companyID int32, description string, issueDate strin return &this } +type Receipts struct { + Receipts []Receipt `json:"receipts"` +} + type ReceiptResponse struct { Receipt Receipt `json:"receipt"` } @@ -58,6 +66,18 @@ type Receipt struct { User UserCreatedReceipt `json:"user"` } +type GetReceiptOpts struct { + StartDate string `url:"start_date"` + EndDate string `url:"end_date"` + UserName string `url:"user_name,omitempty"` + Number int32 `url:"number,omitempty"` + CommentType string `url:"comment_type,omitempty"` + CommentImportant bool `url:"comment_important,omitempty"` + Category string `url:"category,omitempty"` + Offset uint32 `url:"offset,omitempty"` + Limit uint32 `url:"limit,omitempty"` +} + type UserCreatedReceipt struct { // ユーザーID ID int32 `json:"id"` @@ -83,3 +103,20 @@ func (c *Client) CreateReceipt( } return &result, oauth2Token, nil } + +func (c *Client) GetReceipt( + ctx context.Context, oauth2Token *oauth2.Token, companyID uint32, receiptID int32, +) (*ReceiptResponse, *oauth2.Token, error) { + var result ReceiptResponse + + v, err := query.Values(nil) + if err != nil { + return nil, oauth2Token, err + } + SetCompanyID(&v, companyID) + oauth2Token, err = c.call(ctx, path.Join(APIPathReceipts, strconv.Itoa(int(receiptID))), http.MethodGet, oauth2Token, v, nil, &result) + if err != nil { + return nil, oauth2Token, err + } + return &result, oauth2Token, nil +}