Add organization details patch and instance groups disassociate methods to api

This commit is contained in:
Marliana Lara 2019-02-22 14:51:38 -05:00
parent b6eacbab86
commit f1fefbf5f0
No known key found for this signature in database
GPG Key ID: 38C73B40DFA809EE
2 changed files with 42 additions and 0 deletions

View File

@ -138,4 +138,36 @@ describe('APIClient (api.js)', () => {
done();
});
test('associateInstanceGroup calls expected http method with expected data', async (done) => {
const createPromise = () => Promise.resolve();
const mockHttp = ({ post: jest.fn(createPromise) });
const api = new APIClient(mockHttp);
const url = 'foo/bar/';
const id = 1;
await api.associateInstanceGroup(url, id);
expect(mockHttp.post).toHaveBeenCalledTimes(1);
expect(mockHttp.post.mock.calls[0][0]).toEqual(url);
expect(mockHttp.post.mock.calls[0][1]).toEqual({ id });
done();
});
test('disassociateInstanceGroup calls expected http method with expected data', async (done) => {
const createPromise = () => Promise.resolve();
const mockHttp = ({ post: jest.fn(createPromise) });
const api = new APIClient(mockHttp);
const url = 'foo/bar/';
const id = 1;
await api.disassociateInstanceGroup(url, id);
expect(mockHttp.post).toHaveBeenCalledTimes(1);
expect(mockHttp.post.mock.calls[0][0]).toEqual(url);
expect(mockHttp.post.mock.calls[0][1]).toEqual({ id, disassociate: true });
done();
});
});

View File

@ -70,6 +70,12 @@ class APIClient {
return this.http.get(endpoint);
}
updateOrganizationDetails (id, data) {
const endpoint = `${API_ORGANIZATIONS}${id}/`;
return this.http.patch(endpoint, data);
}
getOrganizationInstanceGroups (id, params = {}) {
const endpoint = `${API_ORGANIZATIONS}${id}/instance_groups/`;
@ -113,6 +119,10 @@ class APIClient {
associateInstanceGroup (url, id) {
return this.http.post(url, { id });
}
disassociateInstanceGroup (url, id) {
return this.http.post(url, { id, disassociate: true });
}
}
export default APIClient;