Files
ember-cli-dunlop/addon/adapters/application.coffee
T

61 lines
2.3 KiB
CoffeeScript

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,
namespace: config.apiNamespace
host: config.apiHost
authorizer: 'authorizer:devise'
#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 'router.globals.flash_message', "Unauthorized action"
#@get('session')?.invalidate()
#application_route.set 'router.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 'router.globals.flash_message', payload.error
@_super arguments...
#buildURL: (modelName, id, snapshot, requestType, query)->
# response = @_super arguments...
# debugger
# response