Skip to content

Commit 295ae84

Browse files
Merge pull request #3 from CodingItWrong/update-type
Allow Omitting Type for Update
2 parents dc65786 + 2aa7f77 commit 295ae84

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

src/Resource.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,9 @@ class Resource {
8383
.catch(extractErrorResponse);
8484
}
8585

86-
update(record) {
86+
update(partialRecord) {
8787
// http://jsonapi.org/faq/#wheres-put
88+
const record = Object.assign({}, partialRecord, { type: this.name });
8889
const requestData = { data: record };
8990
return this.api
9091
.patch(`${this.name}/${record.id}`, requestData)

test/Resource.spec.js

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -244,19 +244,19 @@ describe('Resource', () => {
244244

245245
describe('create', () => {
246246
it('can create a record', () => {
247-
const expectedRequestBody = {
248-
data: {
249-
type: 'widgets',
250-
...record,
251-
},
252-
};
247+
const partialRecord = { attributes: { key: 'value' } };
253248

254249
const responseBody = { data: record };
255250
api.post.mockResolvedValue({ data: responseBody });
256251

257-
const result = resource.create(record);
252+
const result = resource.create(partialRecord);
258253

259-
expect(api.post).toHaveBeenCalledWith('widgets', expectedRequestBody);
254+
expect(api.post).toHaveBeenCalledWith('widgets', {
255+
data: {
256+
...partialRecord,
257+
type: 'widgets',
258+
},
259+
});
260260
return expect(result).resolves.toEqual(responseBody);
261261
});
262262

@@ -274,12 +274,15 @@ describe('Resource', () => {
274274

275275
describe('update', () => {
276276
it('can update a record', () => {
277+
const partialRecord = { id: '1', attributes: { key: 'value' } };
277278
const responseBody = { data: record };
278279
api.patch.mockResolvedValue({ data: responseBody });
279280

280-
const result = resource.update(record);
281+
const result = resource.update(partialRecord);
281282

282-
expect(api.patch).toHaveBeenCalledWith('widgets/1', { data: record });
283+
expect(api.patch).toHaveBeenCalledWith('widgets/1', {
284+
data: { ...partialRecord, type: 'widgets' },
285+
});
283286
return expect(result).resolves.toEqual(responseBody);
284287
});
285288

0 commit comments

Comments
 (0)