Skip to content

Commit 92a9662

Browse files
authored
Use ember-fetchjax and remove fetch mixin (#126)
Fixes #120
1 parent eb04cbd commit 92a9662

File tree

11 files changed

+91
-732
lines changed

11 files changed

+91
-732
lines changed

addon/adapters/application.js

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import Ember from 'ember';
77
import RSVP from 'rsvp';
88
import { pluralize } from 'ember-inflector';
9-
import FetchMixin from 'ember-jsonapi-resources/mixins/fetch';
9+
import FetchOrAjax from 'ember-fetchjax/utils/fetchjax';
1010

1111
const { Evented, getOwner } = Ember;
1212

@@ -18,7 +18,7 @@ const { Evented, getOwner } = Ember;
1818
@uses Ember.Evented
1919
@static
2020
*/
21-
export default Ember.Object.extend(FetchMixin, Evented, {
21+
export default Ember.Object.extend(Evented, {
2222

2323
/**
2424
The name of the entity
@@ -49,6 +49,41 @@ export default Ember.Object.extend(FetchMixin, Evented, {
4949
}
5050
}),
5151

52+
/**
53+
@method init
54+
*/
55+
init() {
56+
this._super(...arguments);
57+
let fetchjax = new FetchOrAjax({
58+
useAjax: false,
59+
ajax: Ember.$.ajax,
60+
promise: Ember.RSVP.Promise,
61+
deserialize: this.deserialize.bind(this)
62+
});
63+
this._fetch = fetchjax.fetch.bind(fetchjax);
64+
},
65+
66+
/**
67+
@method deserialize
68+
@param {Object} json payload from response
69+
@param {Object} headers received from response
70+
@param {Object} options passed into original request
71+
*/
72+
deserialize(json, headers, options) {
73+
if (!json || json === '' || !json.data) {
74+
return null;
75+
} else if (options.isUpdate) {
76+
json.data = this.serializer.transformAttributes(json.data);
77+
this.cacheUpdate({ meta: json.meta, data: json.data, headers: headers });
78+
return json.data;
79+
} else {
80+
let resource = this.serializer.deserialize(json);
81+
this.cacheResource({ meta: json.meta, data: resource, headers: headers });
82+
this.serializer.deserializeIncluded(json.included, { headers: headers });
83+
return resource;
84+
}
85+
},
86+
5287
/**
5388
Find resource(s) using an id or a using a query `{id: '', query: {}}`
5489
@@ -348,11 +383,10 @@ export default Ember.Object.extend(FetchMixin, Evented, {
348383
fetch(url, options = {}) {
349384
url = this.fetchUrl(url);
350385
let isUpdate = this.fetchOptions(options);
351-
if (this.get('useFetch')) {
352-
return this._fetch(url, options, isUpdate);
353-
} else {
354-
return this._ajax(url, options, isUpdate);
386+
if (isUpdate) {
387+
options.isUpdate = true;
355388
}
389+
return this._fetch(url, options);
356390
},
357391

358392
/**

0 commit comments

Comments
 (0)