import Base from '../client/base';
import { heatBase } from '../client/constants';
export class HeatClient extends Base {
get baseUrl() {
return heatBase();
}
get projectInUrl() {
return true;
}
getDetailUrlForStack = ({ id, name }) => `stacks/${name}/${id}`;
get resources() {
return [
{
key: 'stacks',
responseKey: 'stack',
extendOperations: [
{
key: 'show',
generate: ({ id, name }, params) => {
return this.request.get(
this.getDetailUrlForStack({ id, name }),
params
);
},
},
{
key: 'update',
generate: ({ id, name }, data) =>
this.request.put(this.getDetailUrlForStack({ id, name }), data),
},
{
key: 'delete',
generate: ({ id, name }) =>
this.request.delete(this.getDetailUrlForStack({ id, name })),
},
{
key: 'abandon',
generate: ({ id, name }) =>
this.request.delete(
`${this.getDetailUrlForStack({ id, name })}/abandon`
),
},
{
key: 'template',
generate: ({ id, name }) =>
this.request.get(
`${this.getDetailUrlForStack({ id, name })}/template`
),
},
{
key: 'events',
generate: ({ id, name }) =>
this.request.get(
`${this.getDetailUrlForStack({ id, name })}/events`
),
},
{
key: 'resources',
generate: ({ id, name }) =>
this.request.get(
`${this.getDetailUrlForStack({ id, name })}/resources`
),
},
],
},
{
key: 'services',
responseKey: 'service',
},
];
}
}
const heatClient = new HeatClient();
export default heatClient;