From 04a5c6adf18c15745f9d4749e1b8484ab834b67f Mon Sep 17 00:00:00 2001 From: clchen Date: Thu, 27 Oct 2016 16:16:26 +0800 Subject: [PATCH] support maniphest.gettasktransactions --- README.md | 1 + entities/maniphest_task_transaction.go | 16 ++++++++++++++++ maniphest.go | 12 ++++++++++++ requests/maniphest_gettasktransactions.go | 7 +++++++ responses/maniphest_gettasktransactions.go | 6 ++++++ 5 files changed, 42 insertions(+) create mode 100644 entities/maniphest_task_transaction.go create mode 100644 requests/maniphest_gettasktransactions.go create mode 100644 responses/maniphest_gettasktransactions.go diff --git a/README.md b/README.md index 54ac03f..e5fe9f8 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,7 @@ for more information on how to use them. - macro.creatememe - maniphest.query - maniphest.createtask +- maniphest.gettasktransactions - paste.create - paste.query - phid.lookup diff --git a/entities/maniphest_task_transaction.go b/entities/maniphest_task_transaction.go new file mode 100644 index 0000000..140d4f4 --- /dev/null +++ b/entities/maniphest_task_transaction.go @@ -0,0 +1,16 @@ +package entities + +import "github.com/etcinit/gonduit/util" + +// ManiphestTaskTranscation represents a single task's transcation on Maniphest. +type ManiphestTaskTranscation struct { + TaskID string `json:"taskID"` + TransactionID string `json:"transactionID"` + TransactionPHID string `json:"transactionPHID"` + TransactionType string `json:"transactionType"` + OldValue interface{} `json:"oldValue"` + NewValue interface{} `json:"newValue"` + Comments string `json:"comments"` + AuthorPHID string `json:"authorPHID"` + DateCreated util.UnixTimestamp `json:"dateCreated"` +} diff --git a/maniphest.go b/maniphest.go index 2c3340c..7d452d4 100644 --- a/maniphest.go +++ b/maniphest.go @@ -31,3 +31,15 @@ func (c *Conn) ManiphestCreateTask( return &res, nil } + +func (c *Conn) ManiphestGetTaskTransactions( + req requests.ManiphestGetTaskTransactions, +) (*responses.ManiphestGetTaskTransactionsResponse, error) { + var res responses.ManiphestGetTaskTransactionsResponse + + if err := c.Call("maniphest.gettasktransactions", &req, &res); err != nil { + return nil, err + } + + return &res, nil +} diff --git a/requests/maniphest_gettasktransactions.go b/requests/maniphest_gettasktransactions.go new file mode 100644 index 0000000..e61a983 --- /dev/null +++ b/requests/maniphest_gettasktransactions.go @@ -0,0 +1,7 @@ +package requests + +// ManiphestGetTaskTransactions represents a request to maniphest.gettasktransactions. +type ManiphestGetTaskTransactions struct { + IDs []string `json:"ids"` + Request +} diff --git a/responses/maniphest_gettasktransactions.go b/responses/maniphest_gettasktransactions.go new file mode 100644 index 0000000..2687b6c --- /dev/null +++ b/responses/maniphest_gettasktransactions.go @@ -0,0 +1,6 @@ +package responses + +import "github.com/etcinit/gonduit/entities" + +// ManiphestGetTaskTransactionsResponse is the response of calling maniphest.query. +type ManiphestGetTaskTransactionsResponse map[string][]*entities.ManiphestTaskTranscation