Improve webhook (#3459)
* Add trigger record * Merge triggers * Merge creates * Fix libraries * Fix create merged key * Rename file * Remove list Record Ids * Revert "Rename file" This reverts commit 2e72e05793ced4553eec8d9f890d31beae594c85. * Revert "Revert "Rename file"" This reverts commit e2d93fa02716093df6d4d6029af9cc324c06f06b. * Revert "Remove list Record Ids" This reverts commit 6653fb6ccd4307e3958b70923505034d92cf43bb. * Remove namePlural field * Use name singular for webhooks * Send webhook metadata * Extract resource from zapier webhook * Fix package.json * Fix package.json * Update payload * Fix package.json * Update payload * Update payload * Rename file * Use wildcard in webhook events * Fix nameSingular * Code review returns * Code review returns
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
import { Bundle, ZObject } from 'zapier-platform-core';
|
||||
|
||||
import { ObjectData } from '../../utils/data.types';
|
||||
import handleQueryParams from '../../utils/handleQueryParams';
|
||||
import requestDb, { requestDbViaRestApi } from '../../utils/requestDb';
|
||||
|
||||
@ -16,7 +17,7 @@ export const subscribe = async (
|
||||
) => {
|
||||
const data = {
|
||||
targetUrl: bundle.targetUrl,
|
||||
operation: `${operation}.${bundle.inputData.namePlural}`,
|
||||
operation: `${operation}.${bundle.inputData.nameSingular}`,
|
||||
};
|
||||
const result = await requestDb(
|
||||
z,
|
||||
@ -39,18 +40,52 @@ export const performUnsubscribe = async (z: ZObject, bundle: Bundle) => {
|
||||
};
|
||||
|
||||
export const perform = (z: ZObject, bundle: Bundle) => {
|
||||
return [bundle.cleanedRequest];
|
||||
return [bundle.cleanedRequest.record];
|
||||
};
|
||||
|
||||
const getNamePluralFromNameSingular = async (
|
||||
z: ZObject,
|
||||
bundle: Bundle,
|
||||
nameSingular: string,
|
||||
): Promise<string> => {
|
||||
const result = await requestDb(
|
||||
z,
|
||||
bundle,
|
||||
`query GetObjects {
|
||||
objects(paging: {first: 1000}) {
|
||||
edges {
|
||||
node {
|
||||
nameSingular
|
||||
namePlural
|
||||
}
|
||||
}
|
||||
}
|
||||
}`,
|
||||
'metadata',
|
||||
);
|
||||
for (const object of result.data.objects.edges) {
|
||||
if (object.node.nameSingular === nameSingular) {
|
||||
return object.node.namePlural;
|
||||
}
|
||||
}
|
||||
throw new Error(`Unknown Object Name Singular ${nameSingular}`);
|
||||
};
|
||||
|
||||
export const listSample = async (
|
||||
z: ZObject,
|
||||
bundle: Bundle,
|
||||
onlyIds = false,
|
||||
) => {
|
||||
): Promise<ObjectData[]> => {
|
||||
const nameSingular = bundle.inputData.nameSingular;
|
||||
const namePlural = await getNamePluralFromNameSingular(
|
||||
z,
|
||||
bundle,
|
||||
nameSingular,
|
||||
);
|
||||
const result: { [key: string]: string }[] = await requestDbViaRestApi(
|
||||
z,
|
||||
bundle,
|
||||
bundle.inputData.namePlural,
|
||||
namePlural,
|
||||
);
|
||||
|
||||
if (onlyIds) {
|
||||
|
||||
Reference in New Issue
Block a user