consul/ui-v2/app/services/data-sink/protocols/http.js

34 lines
975 B
JavaScript

import Service, { inject as service } from '@ember/service';
import { setProperties } from '@ember/object';
export default Service.extend({
settings: service('settings'),
intention: service('repository/intention'),
prepare: function(sink, data, instance) {
const [, dc, nspace, model, slug] = sink.split('/');
const repo = this[model];
if (slug === '') {
instance = repo.create({
Datacenter: dc,
Namespace: nspace,
});
} else {
if (typeof instance === 'undefined') {
instance = repo.peek(slug);
}
}
setProperties(instance, data);
return instance;
},
persist: function(sink, instance) {
const [, , , /*dc*/ /*nspace*/ model] = sink.split('/');
const repo = this[model];
return repo.persist(instance);
},
remove: function(sink, instance) {
const [, , , /*dc*/ /*nspace*/ model] = sink.split('/');
const repo = this[model];
return repo.remove(instance);
},
});