ui/lib/shared/addon/linode/service.js

31 lines
896 B
JavaScript

import Service from '@ember/service';
import fetch from '@rancher/ember-api-store/utils/fetch';
import { inject as service } from '@ember/service';
import { get, set } from '@ember/object';
import { reject } from 'rsvp';
const LINODE_API = 'api.linode.com/v4';
export default Service.extend({
app: service(),
request(auth = {}, command) {
let url = `${ get(this, 'app.proxyEndpoint') }/`;
let token = get(auth, 'token');
let headers = { 'Accept': 'application/json' };
if (get(auth, 'type') === 'cloud') {
set(headers, 'x-api-cattleauth-header', `Bearer credID=${ token } passwordField=token`);
} else {
set(headers, 'X-Api-Auth-Header', `Bearer ${ token }`);
}
url += `${ LINODE_API }/${ command }`;
return fetch(url, { headers }).then((res) => {
return res.body;
}).catch((err) => {
return reject(err);
});
}
});