open-nomad/ui/app/services/system.js

26 lines
705 B
JavaScript
Raw Normal View History

2017-09-19 14:47:10 +00:00
import Ember from 'ember';
import PromiseObject from '../utils/classes/promise-object';
import { namespace } from '../adapters/application';
const { Service, computed, inject } = Ember;
2017-09-19 14:47:10 +00:00
export default Service.extend({
token: inject.service(),
2017-09-19 14:47:10 +00:00
leader: computed(function() {
const token = this.get('token');
2017-09-19 14:47:10 +00:00
return PromiseObject.create({
promise: token
.authorizedRequest(`/${namespace}/status/leader`)
2017-09-19 14:47:10 +00:00
.then(res => res.json())
.then(rpcAddr => ({ rpcAddr }))
.then(leader => {
// Dirty self so leader can be used as a dependent key
this.notifyPropertyChange('leader.rpcAddr');
return leader;
}),
});
}),
});