Files
twenty_crm/packages/twenty-zapier/src/utils/requestDb.ts
martmull a413b29dd4 Fix zapier (#2735)
* Fix zapier tests

* Handle nested fields

* Code review returns
2023-11-27 18:09:21 +01:00

41 lines
1008 B
TypeScript

import { Bundle, HttpRequestOptions, ZObject } from 'zapier-platform-core';
const requestDb = async (z: ZObject, bundle: Bundle, query: string) => {
const options = {
url: `${process.env.SERVER_BASE_URL}/graphql`,
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
Authorization: `Bearer ${bundle.authData.apiKey}`,
},
body: {
query,
},
} satisfies HttpRequestOptions;
return z
.request(options)
.then((response) => {
const results = response.json;
if (results.errors) {
throw new z.errors.Error(
`query: ${query}, error: ${JSON.stringify(results.errors)}`,
'ApiError',
response.status
);
}
response.throwForStatus();
return results;
})
.catch((err) => {
throw new z.errors.Error(
`query: ${query}, error: ${err.message}`,
'Error',
err.status
);
});
};
export default requestDb;