2017-09-19 14:47:10 +00:00
|
|
|
import ApplicationSerializer from './application';
|
2017-09-28 17:47:02 +00:00
|
|
|
import { AdapterError } from 'ember-data/adapters/errors';
|
2017-09-19 14:47:10 +00:00
|
|
|
|
|
|
|
export default ApplicationSerializer.extend({
|
|
|
|
attrs: {
|
|
|
|
datacenter: 'dc',
|
|
|
|
address: 'Addr',
|
|
|
|
serfPort: 'Port',
|
|
|
|
},
|
|
|
|
|
|
|
|
normalize(typeHash, hash) {
|
2017-09-28 17:47:02 +00:00
|
|
|
if (!hash) {
|
|
|
|
// It's unusual to throw an adapter error from a serializer,
|
|
|
|
// but there is no single server end point so the serializer
|
|
|
|
// acts like the API in this case.
|
|
|
|
const error = new AdapterError([{ status: '404' }]);
|
|
|
|
|
|
|
|
error.message = 'Requested Agent was not found in set of available Agents';
|
|
|
|
throw error;
|
|
|
|
}
|
|
|
|
|
2017-09-19 14:47:10 +00:00
|
|
|
hash.ID = hash.Name;
|
|
|
|
hash.Datacenter = hash.Tags && hash.Tags.dc;
|
|
|
|
hash.Region = hash.Tags && hash.Tags.region;
|
|
|
|
hash.RpcPort = hash.Tags && hash.Tags.port;
|
|
|
|
|
|
|
|
return this._super(typeHash, hash);
|
|
|
|
},
|
|
|
|
|
|
|
|
normalizeResponse(store, typeClass, hash, ...args) {
|
2017-10-13 00:40:04 +00:00
|
|
|
return this._super(store, typeClass, hash.Members || [], ...args);
|
2017-09-19 14:47:10 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
normalizeSingleResponse(store, typeClass, hash, id, ...args) {
|
|
|
|
return this._super(store, typeClass, hash.findBy('Name', id), id, ...args);
|
|
|
|
},
|
|
|
|
});
|