Make it easier to specify triggers for Zapier (#19645)

* chore: add triggers

* update samples

---------

Co-authored-by: Stephen (Alex) Wallen <wallenstephen@outlook.com>
This commit is contained in:
William Cheng 2024-09-23 12:03:44 +08:00 committed by GitHub
parent b42027da5d
commit 565af33e24
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 32 additions and 6 deletions

View File

@ -3,7 +3,7 @@
const {{classname}} = require('../{{apiPackage}}/{{classname}}'); const {{classname}} = require('../{{apiPackage}}/{{classname}}');
{{/apis}} {{/apis}}
{{/apiInfo}} {{/apiInfo}}
const { searchMiddleware, hasSearchRequisites, isSearchAction } = require('../utils/utils'); const { triggerMiddleware, isTrigger, searchMiddleware, hasSearchRequisites, isSearchAction } = require('../utils/utils');
const actions = { const actions = {
{{#apiInfo}} {{#apiInfo}}
@ -20,4 +20,5 @@ const actions = {
module.exports = { module.exports = {
searchActions: () => Object.entries(actions).reduce((actions, [key, value]) => isSearchAction(key) && hasSearchRequisites(value) ? {...actions, [key]: searchMiddleware(value)} : actions, {}), searchActions: () => Object.entries(actions).reduce((actions, [key, value]) => isSearchAction(key) && hasSearchRequisites(value) ? {...actions, [key]: searchMiddleware(value)} : actions, {}),
createActions: () => Object.entries(actions).reduce((actions, [key, value]) => !isSearchAction(key) ? {...actions, [key]: value} : actions, {}), createActions: () => Object.entries(actions).reduce((actions, [key, value]) => !isSearchAction(key) ? {...actions, [key]: value} : actions, {}),
} triggers: () => Object.entries(actions).reduce((actions, [key, value]) => isTrigger(key) ? {...actions, [key]: triggerMiddleware(value)} : actions, {}),
}

View File

@ -1,5 +1,5 @@
const authentication = require('./authentication'); const authentication = require('./authentication');
const { searchActions, createActions } = require('./operations/actions'); const { searchActions, createActions, triggers } = require('./operations/actions');
module.exports = { module.exports = {
version: require('./package.json').version, version: require('./package.json').version,
@ -7,4 +7,5 @@ module.exports = {
authentication: authentication, authentication: authentication,
searches: searchActions(), searches: searchActions(),
creates: createActions(), creates: createActions(),
triggers: triggers(),
}; };

View File

@ -30,6 +30,15 @@ const requestOptionsMiddleware = (z, bundle, requestOptions) => {
return requestOptions return requestOptions
} }
const isTrigger = (key) => {
// TODO: custom logic
return false
}
const triggerMiddleware = (action) => {
return action
}
module.exports = { module.exports = {
replacePathParameters: replacePathParameters, replacePathParameters: replacePathParameters,
childMapping: childMapping, childMapping: childMapping,
@ -39,4 +48,6 @@ module.exports = {
isSearchAction: isSearchAction, isSearchAction: isSearchAction,
searchMiddleware: searchMiddleware, searchMiddleware: searchMiddleware,
requestOptionsMiddleware: requestOptionsMiddleware, requestOptionsMiddleware: requestOptionsMiddleware,
isTrigger: isTrigger,
triggerMiddleware: triggerMiddleware,
} }

View File

@ -1,5 +1,5 @@
const authentication = require('./authentication'); const authentication = require('./authentication');
const { searchActions, createActions } = require('./operations/actions'); const { searchActions, createActions, triggers } = require('./operations/actions');
module.exports = { module.exports = {
version: require('./package.json').version, version: require('./package.json').version,
@ -7,4 +7,5 @@ module.exports = {
authentication: authentication, authentication: authentication,
searches: searchActions(), searches: searchActions(),
creates: createActions(), creates: createActions(),
triggers: triggers(),
}; };

View File

@ -1,7 +1,7 @@
const PetApi = require('../apis/PetApi'); const PetApi = require('../apis/PetApi');
const StoreApi = require('../apis/StoreApi'); const StoreApi = require('../apis/StoreApi');
const UserApi = require('../apis/UserApi'); const UserApi = require('../apis/UserApi');
const { searchMiddleware, hasSearchRequisites, isSearchAction } = require('../utils/utils'); const { triggerMiddleware, isTrigger, searchMiddleware, hasSearchRequisites, isSearchAction } = require('../utils/utils');
const actions = { const actions = {
[PetApi.addPet.key]: PetApi.addPet, [PetApi.addPet.key]: PetApi.addPet,
@ -29,4 +29,5 @@ const actions = {
module.exports = { module.exports = {
searchActions: () => Object.entries(actions).reduce((actions, [key, value]) => isSearchAction(key) && hasSearchRequisites(value) ? {...actions, [key]: searchMiddleware(value)} : actions, {}), searchActions: () => Object.entries(actions).reduce((actions, [key, value]) => isSearchAction(key) && hasSearchRequisites(value) ? {...actions, [key]: searchMiddleware(value)} : actions, {}),
createActions: () => Object.entries(actions).reduce((actions, [key, value]) => !isSearchAction(key) ? {...actions, [key]: value} : actions, {}), createActions: () => Object.entries(actions).reduce((actions, [key, value]) => !isSearchAction(key) ? {...actions, [key]: value} : actions, {}),
} triggers: () => Object.entries(actions).reduce((actions, [key, value]) => isTrigger(key) ? {...actions, [key]: triggerMiddleware(value)} : actions, {}),
}

View File

@ -30,6 +30,15 @@ const requestOptionsMiddleware = (z, bundle, requestOptions) => {
return requestOptions return requestOptions
} }
const isTrigger = (key) => {
// TODO: custom logic
return false
}
const triggerMiddleware = (action) => {
return action
}
module.exports = { module.exports = {
replacePathParameters: replacePathParameters, replacePathParameters: replacePathParameters,
childMapping: childMapping, childMapping: childMapping,
@ -39,4 +48,6 @@ module.exports = {
isSearchAction: isSearchAction, isSearchAction: isSearchAction,
searchMiddleware: searchMiddleware, searchMiddleware: searchMiddleware,
requestOptionsMiddleware: requestOptionsMiddleware, requestOptionsMiddleware: requestOptionsMiddleware,
isTrigger: isTrigger,
triggerMiddleware: triggerMiddleware,
} }