2052 zapier integration 5 deploy twenty zapier app into the public repository (#2101)

* Add create_company Zap action

* Add testing for that action

* Core review returns
This commit is contained in:
martmull
2023-10-18 17:56:40 +02:00
committed by GitHub
parent 547a17b145
commit 51a06b3ebd
11 changed files with 334 additions and 60 deletions

View File

@ -0,0 +1,7 @@
const getBundle = (inputData?: object) => {
return {
authData: { apiKey: String(process.env.API_KEY) },
inputData,
};
};
export default getBundle;

View File

@ -0,0 +1,11 @@
const handleQueryParams = (inputData: { [x: string]: any }): string => {
let result = '';
Object.keys(inputData).forEach((key) => {
let quote = '';
if (typeof inputData[key] === 'string') quote = '"';
result = result.concat(`${key}: ${quote}${inputData[key]}${quote}, `);
});
if (result.length) result = result.slice(0, -2); // Remove the last ', '
return result;
};
export default handleQueryParams;

View File

@ -0,0 +1,38 @@
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: {
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(
'The API Key you supplied is incorrect',
'AuthenticationError',
results.errors,
);
}
response.throwForStatus();
return results;
})
.catch((err) => {
throw new z.errors.Error(
'The API Key you supplied is incorrect',
'AuthenticationError',
err.message,
);
});
};
export default requestDb;