From 2406c9d51d87129a5cad1809614aeee33b5dad30 Mon Sep 17 00:00:00 2001 From: kobtea Date: Sat, 14 Jan 2017 23:26:41 +0900 Subject: [PATCH] implement get item --- todoist/item.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/todoist/item.go b/todoist/item.go index 1e9b425..0debf54 100644 --- a/todoist/item.go +++ b/todoist/item.go @@ -1,5 +1,11 @@ package todoist +import ( + "context" + "net/url" + "net/http" +) + type Item struct { ID int `json:"id"` UserID int `json:"user_id"` @@ -23,3 +29,26 @@ type Item struct { SyncID int `json:"sync_id"` DateAdded string `json:"date_added"` } + +type ItemResponse struct { + Item Item + Project Project + Notes []Note +} + +func (c *Client) GetItem(ctx context.Context, id string) (*ItemResponse, error) { + req, err := c.NewRequest(ctx, http.MethodGet, "items/get", url.Values{"item_id": {id}}) + if err != nil { + return nil, err + } + res, err := c.HTTPClient.Do(req) + if err != nil { + return nil, err + } + var out ItemResponse + err = decodeBody(res, &out) + if err != nil { + return nil, err + } + return &out, nil +}