github.com/zoomfoo/nomad@v0.8.5-0.20180907175415-f28fd3a1a056/ui/app/serializers/node.js (about) 1 import { get } from '@ember/object'; 2 import { assign } from '@ember/polyfills'; 3 import { inject as service } from '@ember/service'; 4 import ApplicationSerializer from './application'; 5 6 export default ApplicationSerializer.extend({ 7 config: service(), 8 9 attrs: { 10 isDraining: 'Drain', 11 httpAddr: 'HTTPAddr', 12 }, 13 14 normalize(modelClass, hash) { 15 // Transform the map-based Drivers object into an array-based NodeDriver fragment list 16 hash.Drivers = Object.keys(get(hash, 'Drivers') || {}).map(key => { 17 return assign({}, get(hash, `Drivers.${key}`), { Name: key }); 18 }); 19 20 return this._super(modelClass, hash); 21 }, 22 23 extractRelationships(modelClass, hash) { 24 const { modelName } = modelClass; 25 const nodeURL = this.store 26 .adapterFor(modelName) 27 .buildURL(modelName, this.extractId(modelClass, hash), hash, 'findRecord'); 28 29 return { 30 allocations: { 31 links: { 32 related: `${nodeURL}/allocations`, 33 }, 34 }, 35 }; 36 }, 37 });