diff --git a/zendesk/mock/client.go b/zendesk/mock/client.go index abbf4fd4..334c6b19 100644 --- a/zendesk/mock/client.go +++ b/zendesk/mock/client.go @@ -110,18 +110,18 @@ func (mr *ClientMockRecorder) CreateTicketForm(arg0, arg1 interface{}) *gomock.C } // CreateTrigger mocks base method -func (m *Client) CreateTrigger(arg0 zendesk.Trigger) (zendesk.Trigger, error) { +func (m *Client) CreateTrigger(arg0 context.Context, arg1 zendesk.Trigger) (zendesk.Trigger, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateTrigger", arg0) + ret := m.ctrl.Call(m, "CreateTrigger", arg0, arg1) ret0, _ := ret[0].(zendesk.Trigger) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateTrigger indicates an expected call of CreateTrigger -func (mr *ClientMockRecorder) CreateTrigger(arg0 interface{}) *gomock.Call { +func (mr *ClientMockRecorder) CreateTrigger(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTrigger", reflect.TypeOf((*Client)(nil).CreateTrigger), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateTrigger", reflect.TypeOf((*Client)(nil).CreateTrigger), arg0, arg1) } // CreateUser mocks base method @@ -196,17 +196,17 @@ func (mr *ClientMockRecorder) DeleteTicketForm(arg0, arg1 interface{}) *gomock.C } // DeleteTrigger mocks base method -func (m *Client) DeleteTrigger(arg0 int64) error { +func (m *Client) DeleteTrigger(arg0 context.Context, arg1 int64) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteTrigger", arg0) + ret := m.ctrl.Call(m, "DeleteTrigger", arg0, arg1) ret0, _ := ret[0].(error) return ret0 } // DeleteTrigger indicates an expected call of DeleteTrigger -func (mr *ClientMockRecorder) DeleteTrigger(arg0 interface{}) *gomock.Call { +func (mr *ClientMockRecorder) DeleteTrigger(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTrigger", reflect.TypeOf((*Client)(nil).DeleteTrigger), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteTrigger", reflect.TypeOf((*Client)(nil).DeleteTrigger), arg0, arg1) } // DeleteUpload mocks base method @@ -378,24 +378,24 @@ func (mr *ClientMockRecorder) GetTicketForms(arg0 interface{}) *gomock.Call { } // GetTrigger mocks base method -func (m *Client) GetTrigger(arg0 int64) (zendesk.Trigger, error) { +func (m *Client) GetTrigger(arg0 context.Context, arg1 int64) (zendesk.Trigger, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTrigger", arg0) + ret := m.ctrl.Call(m, "GetTrigger", arg0, arg1) ret0, _ := ret[0].(zendesk.Trigger) ret1, _ := ret[1].(error) return ret0, ret1 } // GetTrigger indicates an expected call of GetTrigger -func (mr *ClientMockRecorder) GetTrigger(arg0 interface{}) *gomock.Call { +func (mr *ClientMockRecorder) GetTrigger(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTrigger", reflect.TypeOf((*Client)(nil).GetTrigger), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTrigger", reflect.TypeOf((*Client)(nil).GetTrigger), arg0, arg1) } // GetTriggers mocks base method -func (m *Client) GetTriggers() ([]zendesk.Trigger, zendesk.Page, error) { +func (m *Client) GetTriggers(arg0 context.Context) ([]zendesk.Trigger, zendesk.Page, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetTriggers") + ret := m.ctrl.Call(m, "GetTriggers", arg0) ret0, _ := ret[0].([]zendesk.Trigger) ret1, _ := ret[1].(zendesk.Page) ret2, _ := ret[2].(error) @@ -403,9 +403,9 @@ func (m *Client) GetTriggers() ([]zendesk.Trigger, zendesk.Page, error) { } // GetTriggers indicates an expected call of GetTriggers -func (mr *ClientMockRecorder) GetTriggers() *gomock.Call { +func (mr *ClientMockRecorder) GetTriggers(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTriggers", reflect.TypeOf((*Client)(nil).GetTriggers)) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetTriggers", reflect.TypeOf((*Client)(nil).GetTriggers), arg0) } // GetUsers mocks base method @@ -485,18 +485,18 @@ func (mr *ClientMockRecorder) UpdateTicketForm(arg0, arg1, arg2 interface{}) *go } // UpdateTrigger mocks base method -func (m *Client) UpdateTrigger(arg0 int64, arg1 zendesk.Trigger) (zendesk.Trigger, error) { +func (m *Client) UpdateTrigger(arg0 context.Context, arg1 int64, arg2 zendesk.Trigger) (zendesk.Trigger, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateTrigger", arg0, arg1) + ret := m.ctrl.Call(m, "UpdateTrigger", arg0, arg1, arg2) ret0, _ := ret[0].(zendesk.Trigger) ret1, _ := ret[1].(error) return ret0, ret1 } // UpdateTrigger indicates an expected call of UpdateTrigger -func (mr *ClientMockRecorder) UpdateTrigger(arg0, arg1 interface{}) *gomock.Call { +func (mr *ClientMockRecorder) UpdateTrigger(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTrigger", reflect.TypeOf((*Client)(nil).UpdateTrigger), arg0, arg1) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateTrigger", reflect.TypeOf((*Client)(nil).UpdateTrigger), arg0, arg1, arg2) } // UploadAttachment mocks base method diff --git a/zendesk/trigger.go b/zendesk/trigger.go index cd4b1e32..d5167c0d 100644 --- a/zendesk/trigger.go +++ b/zendesk/trigger.go @@ -1,12 +1,14 @@ package zendesk import ( + "context" "encoding/json" "fmt" "time" ) // TriggerCondition zendesk trigger condition +// // ref: https://developer.zendesk.com/rest_api/docs/core/triggers#conditions-reference type TriggerCondition struct { Field string `json:"field"` @@ -15,6 +17,7 @@ type TriggerCondition struct { } // TriggerAction is zendesk trigger action +// // ref: https://developer.zendesk.com/rest_api/docs/core/triggers#actions type TriggerAction struct { Field string `json:"field"` @@ -22,6 +25,7 @@ type TriggerAction struct { } // Trigger is zendesk trigger JSON payload format +// // ref: https://developer.zendesk.com/rest_api/docs/core/triggers#json-format type Trigger struct { ID int64 `json:"id,omitempty"` @@ -40,22 +44,23 @@ type Trigger struct { // TriggerAPI an interface containing all trigger related methods type TriggerAPI interface { - GetTriggers() ([]Trigger, Page, error) - CreateTrigger(trigger Trigger) (Trigger, error) - GetTrigger(id int64) (Trigger, error) - UpdateTrigger(id int64, trigger Trigger) (Trigger, error) - DeleteTrigger(id int64) error + GetTriggers(ctx context.Context) ([]Trigger, Page, error) + CreateTrigger(ctx context.Context, trigger Trigger) (Trigger, error) + GetTrigger(ctx context.Context, id int64) (Trigger, error) + UpdateTrigger(ctx context.Context, id int64, trigger Trigger) (Trigger, error) + DeleteTrigger(ctx context.Context, id int64) error } // GetTriggers fetch trigger list +// // ref: https://developer.zendesk.com/rest_api/docs/support/triggers#getting-triggers -func (z *Client) GetTriggers() ([]Trigger, Page, error) { +func (z *Client) GetTriggers(ctx context.Context) ([]Trigger, Page, error) { var data struct { Triggers []Trigger `json:"triggers"` Page } - body, err := z.Get("/triggers.json") + body, err := z.get(ctx, "/triggers.json") if err != nil { return []Trigger{}, Page{}, err } @@ -68,14 +73,15 @@ func (z *Client) GetTriggers() ([]Trigger, Page, error) { } // CreateTrigger creates new trigger +// // ref: https://developer.zendesk.com/rest_api/docs/support/triggers#create-trigger -func (z *Client) CreateTrigger(trigger Trigger) (Trigger, error) { +func (z *Client) CreateTrigger(ctx context.Context, trigger Trigger) (Trigger, error) { var data, result struct { Trigger Trigger `json:"trigger"` } data.Trigger = trigger - body, err := z.Post("/triggers.json", data) + body, err := z.post(ctx, "/triggers.json", data) if err != nil { return Trigger{}, err } @@ -88,13 +94,14 @@ func (z *Client) CreateTrigger(trigger Trigger) (Trigger, error) { } // GetTrigger returns the specified trigger +// // ref: https://developer.zendesk.com/rest_api/docs/support/triggers#getting-triggers -func (z *Client) GetTrigger(id int64) (Trigger, error) { +func (z *Client) GetTrigger(ctx context.Context, id int64) (Trigger, error) { var result struct { Trigger Trigger `json:"trigger"` } - body, err := z.Get(fmt.Sprintf("/triggers/%d.json", id)) + body, err := z.get(ctx, fmt.Sprintf("/triggers/%d.json", id)) if err != nil { return Trigger{}, err } @@ -107,14 +114,15 @@ func (z *Client) GetTrigger(id int64) (Trigger, error) { } // UpdateTrigger updates the specified trigger and returns the updated one +// // ref: https://developer.zendesk.com/rest_api/docs/support/triggers#update-trigger -func (z *Client) UpdateTrigger(id int64, trigger Trigger) (Trigger, error) { +func (z *Client) UpdateTrigger(ctx context.Context, id int64, trigger Trigger) (Trigger, error) { var data, result struct { Trigger Trigger `json:"trigger"` } data.Trigger = trigger - body, err := z.Put(fmt.Sprintf("/triggers/%d.json", id), data) + body, err := z.put(ctx, fmt.Sprintf("/triggers/%d.json", id), data) if err != nil { return Trigger{}, err } @@ -128,9 +136,10 @@ func (z *Client) UpdateTrigger(id int64, trigger Trigger) (Trigger, error) { } // DeleteTrigger deletes the specified trigger +// // ref: https://developer.zendesk.com/rest_api/docs/support/triggers#delete-trigger -func (z *Client) DeleteTrigger(id int64) error { - err := z.Delete(fmt.Sprintf("/triggers/%d.json", id)) +func (z *Client) DeleteTrigger(ctx context.Context, id int64) error { + err := z.delete(ctx, fmt.Sprintf("/triggers/%d.json", id)) if err != nil { return err } diff --git a/zendesk/trigger_test.go b/zendesk/trigger_test.go index 9a643677..7b02318e 100644 --- a/zendesk/trigger_test.go +++ b/zendesk/trigger_test.go @@ -11,7 +11,7 @@ func TestGetTriggers(t *testing.T) { client := newTestClient(mockAPI) defer mockAPI.Close() - triggers, _, err := client.GetTriggers() + triggers, _, err := client.GetTriggers(ctx) if err != nil { t.Fatalf("Failed to get triggers: %s", err) } @@ -26,7 +26,7 @@ func TestCreateTrigger(t *testing.T) { client := newTestClient(mockAPI) defer mockAPI.Close() - _, err := client.CreateTrigger(Trigger{}) + _, err := client.CreateTrigger(ctx, Trigger{}) if err != nil { t.Fatalf("Failed to send request to create trigger: %s", err) } @@ -37,7 +37,7 @@ func TestGetTrigger(t *testing.T) { client := newTestClient(mockAPI) defer mockAPI.Close() - trg, err := client.GetTrigger(123) + trg, err := client.GetTrigger(ctx, 123) if err != nil { t.Fatalf("Failed to get trigger: %s", err) } @@ -55,7 +55,7 @@ func TestGetTriggerFailure(t *testing.T) { })) c := newTestClient(mockAPI) - _, err := c.GetTrigger(1234) + _, err := c.GetTrigger(ctx, 1234) if err == nil { t.Fatal("Client did not return error when api failed") } @@ -66,7 +66,7 @@ func TestUpdateTrigger(t *testing.T) { client := newTestClient(mockAPI) defer mockAPI.Close() - trg, err := client.UpdateTrigger(123, Trigger{}) + trg, err := client.UpdateTrigger(ctx, 123, Trigger{}) if err != nil { t.Fatalf("Failed to get trigger: %s", err) } @@ -84,7 +84,7 @@ func TestUpdateTriggerFailure(t *testing.T) { })) c := newTestClient(mockAPI) - _, err := c.UpdateTrigger(1234, Trigger{}) + _, err := c.UpdateTrigger(ctx, 1234, Trigger{}) if err == nil { t.Fatal("Client did not return error when api failed") } @@ -97,7 +97,7 @@ func TestDeleteTrigger(t *testing.T) { })) c := newTestClient(mockAPI) - err := c.DeleteTrigger(1234) + err := c.DeleteTrigger(ctx, 1234) if err != nil { t.Fatalf("Failed to delete trigger: %s", err) } @@ -110,7 +110,7 @@ func TestDeleteTriggerFailure(t *testing.T) { })) c := newTestClient(mockAPI) - err := c.DeleteTrigger(1234) + err := c.DeleteTrigger(ctx, 1234) if err == nil { t.Fatal("Client did not return error when api failed") }