@accounter/hashavshevet-mesh
Version:
Graphql proxy for Hashavshevet API
42 lines (41 loc) • 1.45 kB
JavaScript
import https from 'node:https';
import { getBuiltMesh, getMeshSDK } from './mesh-artifacts/index.js';
export const init = async (hashavshevetPersonalToken, hashavshevetCompanyKey, hashavshevetUrl) => {
const authToken = (await login(hashavshevetPersonalToken, hashavshevetCompanyKey, hashavshevetUrl));
const { execute } = await getBuiltMesh();
const sdk = await getMeshSDK({ authToken, hashavshevetUrl });
return { sdk, execute };
};
const login = (hashavshevetKey, company, hashavshevetUrl) => {
const p = new Promise((resolve, reject) => {
if (!hashavshevetKey || !company) {
reject(new Error('Missing Hashavshevet user key or company ID'));
return;
}
const path = `/createSession/${hashavshevetKey}/${company}`;
const req = https.request({
host: hashavshevetUrl,
path,
method: 'GET',
}, res => {
let data = '';
res.on('data', chunk => {
data += chunk;
});
res.on('end', () => {
if (data === 'iligal token') {
reject(new Error('Illegal token'));
}
else {
resolve(data);
}
});
});
req.on('error', error => {
reject(error);
});
req.end();
});
return p;
};
export * from './mesh-artifacts/index.js';