Skip to content

Commit 30be975

Browse files
committed
Added missing requests to the resource object
1 parent 8f99b1a commit 30be975

File tree

2 files changed

+82
-18
lines changed

2 files changed

+82
-18
lines changed

src/Resource.ts

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -484,44 +484,63 @@ export class Resource implements IQueryable {
484484
}
485485

486486
/**
487-
* Patch the resource
487+
* Paginate the resource
488488
*
489-
* @param data object
489+
* @param query IPaginate
490490
* @returns object
491491
*/
492-
async patch(data: object) {
493-
return this.sendRequest("PATCH", data);
492+
async paginate(query?: IPaginate): Promise<IPagination> {
493+
this.params.append("page", query?.page?.toString() ?? "1");
494+
this.params.append("per_page", query?.perPage?.toString() ?? "10");
495+
return this.sendRequest("GET");
494496
}
495497

496498
/**
497-
* Delete the resource
499+
* Get the resource
498500
*
499-
* @param data object
500-
* @returns null
501+
* @returns object
501502
*/
502-
async delete() {
503-
this.sendRequest("DELETE");
503+
async get() {
504+
return this.sendRequest("GET");
504505
}
505506

506507
/**
507-
* Paginate the resource
508+
* Send a POSt request
508509
*
509-
* @param query IPaginate
510+
* @param data FormBody
510511
* @returns object
511512
*/
512-
async paginate(query?: IPaginate): Promise<IPagination> {
513-
this.params.append("page", query?.page?.toString() ?? "1");
514-
this.params.append("per_page", query?.perPage?.toString() ?? "10");
515-
return this.sendRequest("GET");
513+
async post(data?: FormBody) {
514+
return this.sendRequest("POST", data);
516515
}
517516

518517
/**
519-
* Get the resource
518+
* Send a PUT request
520519
*
520+
* @param data FormBody
521521
* @returns object
522522
*/
523-
async get() {
524-
return this.sendRequest("GET");
523+
async put(data?: FormBody) {
524+
return this.sendRequest("PUT", data);
525+
}
526+
527+
/**
528+
* Send a PUT request
529+
*
530+
* @param data FormBody
531+
* @returns object
532+
*/
533+
async patch(data?: FormBody) {
534+
return this.sendRequest("PATCH", data);
535+
}
536+
537+
/**
538+
* Send a DELETE request
539+
*
540+
* @returns null
541+
*/
542+
async delete() {
543+
return this.sendRequest("DELETE");
525544
}
526545

527546
private async sendRequest(method: MethodType, data?: FormBody) {

tests/index.spec.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,4 +264,49 @@ describe("axe-api-client", () => {
264264
expect(request.method).toBe("GET");
265265
expect(response).toBe(mockResponse);
266266
});
267+
268+
test(`post()`, async () => {
269+
global.fetch = mock(200, "RESULT");
270+
271+
const data = { name: "John Doe" };
272+
273+
const response = await api.resource("users").post(data);
274+
expect(global.fetch.mock.calls.length).toBe(1);
275+
276+
const request = global.fetch.mock.calls[0][1];
277+
expect(request.url).toBe("https://axe-api.com/api/v1/users");
278+
expect(request.method).toBe("POST");
279+
expect(JSON.parse(request.body).name).toBe(data.name);
280+
expect(response).toBe("RESULT");
281+
});
282+
283+
test(`put()`, async () => {
284+
global.fetch = mock(200, "RESULT");
285+
286+
const data = { name: "John Doe" };
287+
288+
const response = await api.resource("users").put(data);
289+
expect(global.fetch.mock.calls.length).toBe(1);
290+
291+
const request = global.fetch.mock.calls[0][1];
292+
expect(request.url).toBe("https://axe-api.com/api/v1/users");
293+
expect(request.method).toBe("PUT");
294+
expect(JSON.parse(request.body).name).toBe(data.name);
295+
expect(response).toBe("RESULT");
296+
});
297+
298+
test(`patch()`, async () => {
299+
global.fetch = mock(200, "RESULT");
300+
301+
const data = { name: "John Doe" };
302+
303+
const response = await api.resource("users").patch(data);
304+
expect(global.fetch.mock.calls.length).toBe(1);
305+
306+
const request = global.fetch.mock.calls[0][1];
307+
expect(request.url).toBe("https://axe-api.com/api/v1/users");
308+
expect(request.method).toBe("PATCH");
309+
expect(JSON.parse(request.body).name).toBe(data.name);
310+
expect(response).toBe("RESULT");
311+
});
267312
});

0 commit comments

Comments
 (0)