|
| 1 | +import DS from 'ember-data'; |
| 2 | +import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin'; |
| 3 | +import Configuration from '../config/environment'; |
| 4 | +import Ember from 'ember'; |
| 5 | + |
| 6 | +export default DS.RESTAdapter.extend(DataAdapterMixin, { |
| 7 | + |
| 8 | + authorizer: 'authorizer:kontinuous', |
| 9 | + defaultSerializer: 'kontinuous', |
| 10 | + host: Configuration.APP.kontinuousAPI.host, |
| 11 | + namespace: `api/${Configuration.APP.kontinuousAPI.version}`, |
| 12 | + |
| 13 | + handleResponse(status, headers, payload) { |
| 14 | + if (payload && payload.hasOwnProperty('Code') && (payload.Code >= 400 && payload.Code <= 500)) { |
| 15 | + return new DS.AdapterError(payload); |
| 16 | + } |
| 17 | + return this._super(...arguments); |
| 18 | + }, |
| 19 | + |
| 20 | + |
| 21 | + queryRecord(store, type, query) { |
| 22 | + var q = Ember.copy(query), |
| 23 | + url = this.buildURL(type.modelName, null, null, "queryRecord", q); |
| 24 | + |
| 25 | + if (this.sortQueryParams) { |
| 26 | + q = this.sortQueryParams(q); |
| 27 | + } |
| 28 | + |
| 29 | + return this.ajax(url, "GET", { data: q }); |
| 30 | + }, |
| 31 | + |
| 32 | + query(store, type, query) { |
| 33 | + var q = Ember.copy(query), |
| 34 | + url = this.buildURL(type.modelName, null, null, "query", q); |
| 35 | + |
| 36 | + if (this.sortQueryParams) { |
| 37 | + q = this.sortQueryParams(q); |
| 38 | + } |
| 39 | + |
| 40 | + return this.ajax(url, "GET", { data: q }); |
| 41 | + }, |
| 42 | + |
| 43 | + urlForQueryRecord: function(query, modelName) { |
| 44 | + var urlParts = this._buildURL(modelName).split('/'); |
| 45 | + |
| 46 | + if (Ember.isPresent(query.owner) && Ember.isPresent(query.repo)) { |
| 47 | + urlParts.push(query.owner, query.repo); |
| 48 | + delete query.owner; |
| 49 | + delete query.repo; |
| 50 | + } |
| 51 | + |
| 52 | + return urlParts.join('/'); |
| 53 | + }, |
| 54 | + |
| 55 | +}); |
0 commit comments