@managed-api/jira-cloud-v3-stitch-it
Version:
Adaptavist Managed API for Jira Cloud for ScriptRunner Connect environment
37 lines • 1.67 kB
JavaScript
/*!
* Copyright Adaptavist 2022 (c) All rights reserved
*/
import { JiraCloudApiCore } from "@managed-api/jira-cloud-v3-core";
import { Headers } from "@managed-api/commons-core";
export class JiraCloudApi extends JiraCloudApiCore {
constructor(connectionId) {
super();
this.connectionId = connectionId;
}
getPlatformImplementation() {
return {
buffer: {
encode: (input) => new TextEncoder().encode(input),
decode: (input) => new TextDecoder().decode(new Uint8Array(input))
},
performHttpCall: (request) => this.performHttpCall(request)
};
}
async performHttpCall(request) {
var _a;
const requestUrl = `${request.url}`;
request.headers.set('x-stitch-connection-id', this.connectionId);
const requestHeaders = Object.entries(request.headers.raw()).reduce((acc, [key, value]) => ({ ...acc, [key]: value.join(', ') }), {});
const response = await fetch(requestUrl, {
method: request.method,
headers: requestHeaders,
body: request.method.toLowerCase() !== 'get' ? (_a = await request.arrayBuffer(), (_a !== null && _a !== void 0 ? _a : new ArrayBuffer(0))) : undefined
});
// TODO: fix incompatibilities so headers could be passed directly
const apiHeaders = new Headers();
response.headers.forEach((value, key) => apiHeaders.append(key, value));
const body = await response.arrayBuffer();
return super.buildResponse(requestUrl, response.status, response.statusText, apiHeaders, body);
}
}
//# sourceMappingURL=index.js.map