import Ember from 'ember' import DS from 'ember-data' import { pluralize } from 'ember-inflector' import config from 'ember-get-config' #import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin' export default DS.JSONAPIAdapter.extend #DataAdapterMixin, session: Ember.inject.service() namespace: config.apiNamespace host: config.apiHost authorizer: 'authorizer:devise' headers: Ember.computed 'session.{data.authenticated.access_token,isAuthenticated}', -> headers = {} headers['Authorization'] = "Bearer #{@get('session.data.authenticated.token')}" if @get('session.isAuthenticated') headers #pathForType: (type)-> # type.underscore().pluralize() # Code for createRecord and updateRecord taken from ember data v2.0.0 restadapter createRecord: (store, type, snapshot) -> data = {} #var serializer = store.serializerFor(type.modelName); serializer = Ember.get(snapshot.record, 'store').serializerFor('create-and-update') url = @buildURL(type.modelName, null, snapshot, 'createRecord') serializer.serializeIntoHash data, type, snapshot, includeId: true @ajax url, 'POST', data: data # return pluralized underscored version pathForType: (modelName) -> base = Ember.String.underscore(modelName) base = base.replace(/\./g, '/') #base.split(/\//).map( (str) -> pluralize(str) ).join('/') # all parts pluralized pluralize(base) updateRecord: (store, type, snapshot) -> data = {} #var serializer = store.serializerFor(type.modelName); serializer = Ember.get(snapshot.record, 'store').serializerFor('create-and-update') id = snapshot.id url = @buildURL(type.modelName, id, snapshot, 'updateRecord') serializer.serializeIntoHash data, type, snapshot, includeId: true @ajax url, 'PUT', data: data handleResponse: (status, headers, payload) -> switch status when 401, 403 application_route = Ember.getOwner(@).lookup('route:application') application_route.set 'globals.flash_message', "Unauthorized action" #@get('session')?.invalidate() #application_route.set 'globals.current_user', null #application_route.transitionTo('login') else if typeof(payload?.error) is 'string' application_route = Ember.getOwner(@).lookup('route:application') application_route.set 'globals.flash_message', payload.error @_super arguments... #buildURL: (modelName, id, snapshot, requestType, query)-> # response = @_super arguments... # debugger # response