mirror of https://github.com/hashicorp/consul
46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
|
import Serializer from './application';
|
||
|
import { PRIMARY_KEY, SLUG_KEY } from 'consul-ui/models/service-instance';
|
||
|
|
||
|
export default Serializer.extend({
|
||
|
primaryKey: PRIMARY_KEY,
|
||
|
slugKey: SLUG_KEY,
|
||
|
respondForQuery: function(respond, query) {
|
||
|
return this._super(function(cb) {
|
||
|
return respond(function(headers, body) {
|
||
|
if (body.length === 0) {
|
||
|
const e = new Error();
|
||
|
e.errors = [
|
||
|
{
|
||
|
status: '404',
|
||
|
title: 'Not found',
|
||
|
},
|
||
|
];
|
||
|
throw e;
|
||
|
}
|
||
|
return cb(headers, body);
|
||
|
});
|
||
|
}, query);
|
||
|
},
|
||
|
respondForQueryRecord: function(respond, query) {
|
||
|
return this._super(function(cb) {
|
||
|
return respond(function(headers, body) {
|
||
|
body = body.find(function(item) {
|
||
|
return item.Node.Node === query.node && item.Service.ID === query.serviceId;
|
||
|
});
|
||
|
if (typeof body === 'undefined') {
|
||
|
const e = new Error();
|
||
|
e.errors = [
|
||
|
{
|
||
|
status: '404',
|
||
|
title: 'Not found',
|
||
|
},
|
||
|
];
|
||
|
throw e;
|
||
|
}
|
||
|
body.Namespace = body.Service.Namespace;
|
||
|
return cb(headers, body);
|
||
|
});
|
||
|
}, query);
|
||
|
},
|
||
|
});
|