Fix create trigger called twice (#3243)

* Fix create trigger called twice

* Add Zapier update action

* Add Zapier delete action

* Update description

* Add dropDown for ids
This commit is contained in:
martmull
2024-01-05 11:44:47 +01:00
committed by GitHub
parent 618d9678b5
commit f35b40c428
17 changed files with 358 additions and 41 deletions

View File

@ -0,0 +1,65 @@
import { Bundle, ZObject } from 'zapier-platform-core';
import handleQueryParams from '../../utils/handleQueryParams';
import requestDb, { requestDbViaRestApi } from '../../utils/requestDb';
export enum Operation {
create = 'create',
update = 'update',
delete = 'delete',
}
export const subscribe = async (
z: ZObject,
bundle: Bundle,
operation: Operation,
) => {
const data = {
targetUrl: bundle.targetUrl,
operation: `${operation}.${bundle.inputData.namePlural}`,
};
const result = await requestDb(
z,
bundle,
`mutation createWebhook {createWebhook(data:{${handleQueryParams(
data,
)}}) {id}}`,
);
return result.data.createWebhook;
};
export const performUnsubscribe = async (z: ZObject, bundle: Bundle) => {
const data = { id: bundle.subscribeData?.id };
const result = await requestDb(
z,
bundle,
`mutation deleteWebhook {deleteWebhook(${handleQueryParams(data)}) {id}}`,
);
return result.data.deleteWebhook;
};
export const perform = (z: ZObject, bundle: Bundle) => {
return [bundle.cleanedRequest];
};
export const listSample = async (
z: ZObject,
bundle: Bundle,
onlyIds = false,
) => {
const result: { [key: string]: string }[] = await requestDbViaRestApi(
z,
bundle,
bundle.inputData.namePlural,
);
if (onlyIds) {
return result.map((res) => {
return {
id: res.id,
};
});
}
return result;
};