Files
twenty/packages/twenty-zapier/src/triggers/company.ts
martmull d61511262e 2060 create a new api key (#2206)
* Add folder for api settings

* Init create api key page

* Update create api key page

* Implement api call to create apiKey

* Add create api key mutation

* Get id when creating apiKey

* Display created Api Key

* Add delete api key button

* Remove button from InputText

* Update stuff

* Add test for ApiDetail

* Fix type

* Use recoil instead of router state

* Remane route paths

* Remove online return

* Move and test date util

* Remove useless Component

* Rename ApiKeys paths

* Rename ApiKeys files

* Add input text info testing

* Rename hooks to webhooks

* Remove console error

* Add tests to reach minimum coverage
2023-10-24 16:14:54 +02:00

75 lines
1.9 KiB
TypeScript

import { Bundle, ZObject } from 'zapier-platform-core';
import requestDb from '../utils/requestDb';
import handleQueryParams from '../utils/handleQueryParams';
const performSubscribe = async (z: ZObject, bundle: Bundle) => {
const data = { targetUrl: bundle.targetUrl, operation: 'createOneCompany' };
const result = await requestDb(
z,
bundle,
`mutation createOneWebHook {createOneWebHook(data:{${handleQueryParams(
data,
)}}) {id}}`,
);
return result.data.createOneWebHook;
};
const performUnsubscribe = async (z: ZObject, bundle: Bundle) => {
const data = { id: bundle.subscribeData?.id };
const result = await requestDb(
z,
bundle,
`mutation deleteOneWebHook {deleteOneWebHook(where:{${handleQueryParams(
data,
)}}) {id}}`,
);
return result.data.deleteOneWebHook;
};
const perform = (z: ZObject, bundle: Bundle) => {
return [bundle.cleanedRequest];
};
const performList = async (z: ZObject, bundle: Bundle) => {
const results = await requestDb(
z,
bundle,
`query FindManyCompany {findManyCompany {
id
name
domainName
createdAt
address
employees
linkedinUrl
xUrl
annualRecurringRevenue
idealCustomerProfile
}}`,
);
return results.data.findManyCompany;
};
export default {
key: 'company',
noun: 'Company',
display: {
label: 'New Company',
description: 'Triggers when a new company is created.',
},
operation: {
inputFields: [],
type: 'web-hook',
performSubscribe,
performUnsubscribe,
perform,
performList,
sample: {
id: 'f75f6b2e-9442-4c72-aa95-47d8e5ec8cb3',
createdAt: '2023-10-19 07:37:25.306',
workspaceId: 'c8b070fc-c969-4ca5-837a-e7c3735734d2',
},
outputFields: [
{ key: 'id', label: 'ID' },
{ key: 'createdAt', label: 'Created At' },
{ key: 'workspaceId', label: 'Workspace ID' },
],
},
};