cabana/src/api/comma-api.js

58 lines
1.1 KiB
JavaScript

// API gateway for `api.commadotai.com/v1` urls
import { getCommaAccessToken } from "./comma-auth";
const URL_ROOT = "https://api.commadotai.com/v1/";
const ConfigRequest = require("config-request/instance");
const request = ConfigRequest();
var initPromise = init();
async function init() {
var token = await getCommaAccessToken();
request.configure({
baseUrl: URL_ROOT,
token: "JWT " + token,
jwt: false
});
}
export async function get(endpoint, data) {
await initPromise;
return new Promise((resolve, reject) => {
request.get(
endpoint,
{
query: data,
json: true
},
errorHandler(resolve, reject)
);
});
}
export async function post(endpoint, data) {
await initPromise;
return new Promise((resolve, reject) => {
request.post(
endpoint,
{
body: data,
json: true
},
errorHandler(resolve, reject)
);
});
}
function errorHandler(resolve, reject) {
return handle;
function handle(err, data) {
if (err) {
return reject(err);
}
resolve(data);
}
}