@accounter/green-invoice-graphql
Version:
Graphql proxy for Green Invoice API
42 lines (34 loc) • 1.16 kB
text/typescript
import { getMeshSDK, Sdk } from './mesh-artifacts/index.js';
async function obtainAccessToken(id: string, secret: string) {
try {
const authParams = {
grant_type: 'client_credentials',
client_id: id,
client_secret: secret,
};
const res = await fetch('https://api.morning.co/idp/v1/oauth/token', {
method: 'POST',
body: JSON.stringify(authParams),
headers: { 'Content-Type': 'application/json' },
});
if (res.status !== 200) {
throw Error(
`Failed to obtain access token, status code: ${res.status}, response: ${await res.text()}`,
);
}
const data = await res.json();
return data.accessToken;
} catch (e) {
console.error('Failed to obtain access token', e);
throw Error('Failed to obtain access token', { cause: e });
}
}
export const init = async (
id: string,
secret: string,
): Promise<{ sdk: Sdk; authToken: string }> => {
const greenInvoiceToken = await obtainAccessToken(id, secret);
const sdk = await getMeshSDK({ authToken: greenInvoiceToken });
return { sdk, authToken: greenInvoiceToken };
};
export * from './mesh-artifacts/index.js';