diff --git a/zendesk/mock/client.go b/zendesk/mock/client.go index c1733161..abbf4fd4 100644 --- a/zendesk/mock/client.go +++ b/zendesk/mock/client.go @@ -125,18 +125,18 @@ func (mr *ClientMockRecorder) CreateTrigger(arg0 interface{}) *gomock.Call { } // CreateUser mocks base method -func (m *Client) CreateUser(arg0 zendesk.User) (zendesk.User, error) { +func (m *Client) CreateUser(arg0 context.Context, arg1 zendesk.User) (zendesk.User, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateUser", arg0) + ret := m.ctrl.Call(m, "CreateUser", arg0, arg1) ret0, _ := ret[0].(zendesk.User) ret1, _ := ret[1].(error) return ret0, ret1 } // CreateUser indicates an expected call of CreateUser -func (mr *ClientMockRecorder) CreateUser(arg0 interface{}) *gomock.Call { +func (mr *ClientMockRecorder) CreateUser(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateUser", reflect.TypeOf((*Client)(nil).CreateUser), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateUser", reflect.TypeOf((*Client)(nil).CreateUser), arg0, arg1) } // DeleteBrand mocks base method @@ -409,9 +409,9 @@ func (mr *ClientMockRecorder) GetTriggers() *gomock.Call { } // GetUsers mocks base method -func (m *Client) GetUsers() ([]zendesk.User, zendesk.Page, error) { +func (m *Client) GetUsers(arg0 context.Context) ([]zendesk.User, zendesk.Page, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetUsers") + ret := m.ctrl.Call(m, "GetUsers", arg0) ret0, _ := ret[0].([]zendesk.User) ret1, _ := ret[1].(zendesk.Page) ret2, _ := ret[2].(error) @@ -419,9 +419,9 @@ func (m *Client) GetUsers() ([]zendesk.User, zendesk.Page, error) { } // GetUsers indicates an expected call of GetUsers -func (mr *ClientMockRecorder) GetUsers() *gomock.Call { +func (mr *ClientMockRecorder) GetUsers(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUsers", reflect.TypeOf((*Client)(nil).GetUsers)) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUsers", reflect.TypeOf((*Client)(nil).GetUsers), arg0) } // UpdateBrand mocks base method diff --git a/zendesk/user.go b/zendesk/user.go index d0cb0f55..1152c26a 100644 --- a/zendesk/user.go +++ b/zendesk/user.go @@ -1,6 +1,7 @@ package zendesk import ( + "context" "encoding/json" "time" ) @@ -69,18 +70,18 @@ func UserRoleText(role int) string { // UserAPI an interface containing all user related methods type UserAPI interface { - GetUsers() ([]User, Page, error) - CreateUser(user User) (User, error) + GetUsers(ctx context.Context) ([]User, Page, error) + CreateUser(ctx context.Context, user User) (User, error) } // GetUsers fetch user list -func (z *Client) GetUsers() ([]User, Page, error) { +func (z *Client) GetUsers(ctx context.Context) ([]User, Page, error) { var data struct { Users []User `json:"users"` Page } - body, err := z.Get("/users.json") + body, err := z.get(ctx, "/users.json") if err != nil { return nil, Page{}, err } @@ -96,13 +97,13 @@ func (z *Client) GetUsers() ([]User, Page, error) { // CreateUser creates new user // ref: https://developer.zendesk.com/rest_api/docs/core/triggers#create-trigger -func (z *Client) CreateUser(user User) (User, error) { +func (z *Client) CreateUser(ctx context.Context, user User) (User, error) { var data, result struct { User User `json:"user"` } data.User = user - body, err := z.Post("/users.json", data) + body, err := z.post(ctx, "/users.json", data) if err != nil { return User{}, err } diff --git a/zendesk/user_test.go b/zendesk/user_test.go index bcc8515e..18be4c85 100644 --- a/zendesk/user_test.go +++ b/zendesk/user_test.go @@ -18,7 +18,7 @@ func TestGetUsers(t *testing.T) { client := newTestClient(mockAPI) defer mockAPI.Close() - users, _, err := client.GetUsers() + users, _, err := client.GetUsers(ctx) if err != nil { t.Fatalf("Failed to get users: %s", err) } @@ -33,7 +33,7 @@ func TestCreateUser(t *testing.T) { client := newTestClient(mockAPI) defer mockAPI.Close() - user, err := client.CreateUser(User{ + user, err := client.CreateUser(ctx, User{ Email: "test@example.com", Name: "testuser", })