From 9952ce0f727bfa5cc187156c06a9176fb5269a77 Mon Sep 17 00:00:00 2001 From: Zach McElrath Date: Sun, 19 Nov 2023 20:39:10 -0500 Subject: [PATCH] feat: Make more clickup metadata public --- .../bots/load/clickup_folders_load/bot.ts | 27 ++++++++++++++----- .../bots/load/clickup_folders_load/bot.yaml | 1 + .../bots/load/clickup_tasks_load/bot.yaml | 1 + .../bots/save/clickup_folders_save/bot.yaml | 1 + apps/clickup/bundle/collections/folder.yaml | 1 + apps/clickup/bundle/collections/task.yaml | 1 + .../default_clickup_space_id.yaml | 1 + .../bundle/credentials/clickup_api_key.yaml | 11 ++++++++ .../fields/uesio/clickup/folder/archived.yaml | 1 + .../fields/uesio/clickup/folder/lists.yaml | 1 + .../fields/uesio/clickup/folder/name.yaml | 1 + .../fields/uesio/clickup/folder/space.yaml | 12 +++++++++ .../uesio/clickup/folder/task_count.yaml | 1 + .../fields/uesio/clickup/task/assignees.yaml | 1 + .../fields/uesio/clickup/task/checklists.yaml | 1 + .../uesio/clickup/task/custom_fields.yaml | 1 + .../uesio/clickup/task/date_closed.yaml | 1 + .../fields/uesio/clickup/task/date_done.yaml | 1 + .../fields/uesio/clickup/task/due_date.yaml | 1 + .../fields/uesio/clickup/task/list.yaml | 1 + .../clickup/task/markdown_description.yaml | 1 + .../fields/uesio/clickup/task/name.yaml | 1 + .../fields/uesio/clickup/task/orderindex.yaml | 1 + .../fields/uesio/clickup/task/priority.yaml | 1 + .../fields/uesio/clickup/task/start_date.yaml | 1 + .../fields/uesio/clickup/task/status.yaml | 1 + .../fields/uesio/clickup/task/tags.yaml | 1 + apps/clickup/bundle/integrations/clickup.yaml | 5 ++-- .../bundle/integrationtypes/clickup.yaml | 3 +-- .../bundle/secrets/clickup_api_key.yaml | 4 +++ .../generated/@types/@uesio/index.d.ts | 11 +++++++- 31 files changed, 86 insertions(+), 11 deletions(-) create mode 100644 apps/clickup/bundle/credentials/clickup_api_key.yaml create mode 100644 apps/clickup/bundle/fields/uesio/clickup/folder/space.yaml create mode 100644 apps/clickup/bundle/secrets/clickup_api_key.yaml diff --git a/apps/clickup/bundle/bots/load/clickup_folders_load/bot.ts b/apps/clickup/bundle/bots/load/clickup_folders_load/bot.ts index c22b1ab..2854e3f 100644 --- a/apps/clickup/bundle/bots/load/clickup_folders_load/bot.ts +++ b/apps/clickup/bundle/bots/load/clickup_folders_load/bot.ts @@ -5,12 +5,6 @@ type FoldersResponse = { } export default function clickup_folders_load(bot: LoadBotApi) { - const spaceID = bot.getCredentials().defaultSpaceId - if (!spaceID) { - throw new Error( - "Default Clickup Space ID Config Value must be set. Please check your Site / Workspace settings." - ) - } const { conditions, collectionMetadata } = bot.loadRequest // Build maps for quickly converting to/from Uesio/external field names const uesioFieldsByExternalName = { @@ -60,6 +54,27 @@ export default function clickup_folders_load(bot: LoadBotApi) { {} ) + let spaceID = bot.getCredentials().defaultSpaceId + + // See if there is a Condition that specifies a particular space id + if (conditions && conditions.length) { + const spaceIdCondition = conditions.find( + (condition) => + condition.field === "space.id" && + condition.operator === "EQ" && + !!condition.value + ) + if (spaceIdCondition) { + spaceID = spaceIdCondition.value as string + } + } + + if (!spaceID) { + throw new Error( + "A valid space id is required, but no condition on space.id was provided, nor was a default Clickup Space ID Config Value found." + ) + } + const url = `${bot .getIntegration() .getBaseURL()}/space/${spaceID}/folder?archived=false` diff --git a/apps/clickup/bundle/bots/load/clickup_folders_load/bot.yaml b/apps/clickup/bundle/bots/load/clickup_folders_load/bot.yaml index b1a34cc..b38ad00 100644 --- a/apps/clickup/bundle/bots/load/clickup_folders_load/bot.yaml +++ b/apps/clickup/bundle/bots/load/clickup_folders_load/bot.yaml @@ -1,3 +1,4 @@ name: clickup_folders_load +public: true type: LOAD dialect: TYPESCRIPT diff --git a/apps/clickup/bundle/bots/load/clickup_tasks_load/bot.yaml b/apps/clickup/bundle/bots/load/clickup_tasks_load/bot.yaml index 00855f8..2f6c45d 100644 --- a/apps/clickup/bundle/bots/load/clickup_tasks_load/bot.yaml +++ b/apps/clickup/bundle/bots/load/clickup_tasks_load/bot.yaml @@ -1,3 +1,4 @@ name: clickup_tasks_load +public: true type: LOAD dialect: TYPESCRIPT diff --git a/apps/clickup/bundle/bots/save/clickup_folders_save/bot.yaml b/apps/clickup/bundle/bots/save/clickup_folders_save/bot.yaml index 9bf8d06..26213dc 100644 --- a/apps/clickup/bundle/bots/save/clickup_folders_save/bot.yaml +++ b/apps/clickup/bundle/bots/save/clickup_folders_save/bot.yaml @@ -1,3 +1,4 @@ name: clickup_folders_save +public: true type: SAVE dialect: TYPESCRIPT diff --git a/apps/clickup/bundle/collections/folder.yaml b/apps/clickup/bundle/collections/folder.yaml index d0b5562..f83a8dd 100644 --- a/apps/clickup/bundle/collections/folder.yaml +++ b/apps/clickup/bundle/collections/folder.yaml @@ -1,4 +1,5 @@ name: folder +public: true type: EXTERNAL label: Folder pluralLabel: Folders diff --git a/apps/clickup/bundle/collections/task.yaml b/apps/clickup/bundle/collections/task.yaml index 11398d5..8901340 100644 --- a/apps/clickup/bundle/collections/task.yaml +++ b/apps/clickup/bundle/collections/task.yaml @@ -1,4 +1,5 @@ name: task +public: true type: EXTERNAL label: Task pluralLabel: Tasks diff --git a/apps/clickup/bundle/configvalues/default_clickup_space_id.yaml b/apps/clickup/bundle/configvalues/default_clickup_space_id.yaml index d397906..dd242f4 100644 --- a/apps/clickup/bundle/configvalues/default_clickup_space_id.yaml +++ b/apps/clickup/bundle/configvalues/default_clickup_space_id.yaml @@ -1,3 +1,4 @@ name: default_clickup_space_id +public: true store: platform managedBy: site diff --git a/apps/clickup/bundle/credentials/clickup_api_key.yaml b/apps/clickup/bundle/credentials/clickup_api_key.yaml new file mode 100644 index 0000000..fa26dbd --- /dev/null +++ b/apps/clickup/bundle/credentials/clickup_api_key.yaml @@ -0,0 +1,11 @@ +name: clickup_api_key +type: API_KEY +apiKey: + key: clickup_api_key + location: header + locationName: Authorization + locationValue: ${apikey} +entries: + defaultSpaceId: + type: configvalue + value: default_clickup_space_id diff --git a/apps/clickup/bundle/fields/uesio/clickup/folder/archived.yaml b/apps/clickup/bundle/fields/uesio/clickup/folder/archived.yaml index fc273a1..00246e0 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/folder/archived.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/folder/archived.yaml @@ -1,4 +1,5 @@ name: archived +public: true type: CHECKBOX label: Archived columnname: archived diff --git a/apps/clickup/bundle/fields/uesio/clickup/folder/lists.yaml b/apps/clickup/bundle/fields/uesio/clickup/folder/lists.yaml index 5db6a94..eebb05a 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/folder/lists.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/folder/lists.yaml @@ -1,4 +1,5 @@ name: lists +public: true type: LIST label: Lists subfields: diff --git a/apps/clickup/bundle/fields/uesio/clickup/folder/name.yaml b/apps/clickup/bundle/fields/uesio/clickup/folder/name.yaml index ea2b3e7..5e76b0f 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/folder/name.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/folder/name.yaml @@ -1,4 +1,5 @@ name: name +public: true type: TEXT label: Name columnname: name diff --git a/apps/clickup/bundle/fields/uesio/clickup/folder/space.yaml b/apps/clickup/bundle/fields/uesio/clickup/folder/space.yaml new file mode 100644 index 0000000..35851a5 --- /dev/null +++ b/apps/clickup/bundle/fields/uesio/clickup/folder/space.yaml @@ -0,0 +1,12 @@ +name: space +public: true +type: STRUCT +label: Space +subfields: + - name: id + label: Id + type: TEXT + - name: name + label: Name + type: TEXT +columnname: space diff --git a/apps/clickup/bundle/fields/uesio/clickup/folder/task_count.yaml b/apps/clickup/bundle/fields/uesio/clickup/folder/task_count.yaml index 2291cd3..c79fced 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/folder/task_count.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/folder/task_count.yaml @@ -1,4 +1,5 @@ name: task_count +public: true type: NUMBER label: Task Count columnname: task_count diff --git a/apps/clickup/bundle/fields/uesio/clickup/task/assignees.yaml b/apps/clickup/bundle/fields/uesio/clickup/task/assignees.yaml index 5777dab..9633bce 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/task/assignees.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/task/assignees.yaml @@ -1,4 +1,5 @@ name: assignees +public: true type: LIST label: Assignees subtype: TEXT diff --git a/apps/clickup/bundle/fields/uesio/clickup/task/checklists.yaml b/apps/clickup/bundle/fields/uesio/clickup/task/checklists.yaml index ba8f1d4..fc75625 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/task/checklists.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/task/checklists.yaml @@ -1,4 +1,5 @@ name: checklists +public: true type: LIST label: Checklist subtype: TEXT diff --git a/apps/clickup/bundle/fields/uesio/clickup/task/custom_fields.yaml b/apps/clickup/bundle/fields/uesio/clickup/task/custom_fields.yaml index 331894e..c20d3b9 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/task/custom_fields.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/task/custom_fields.yaml @@ -1,4 +1,5 @@ name: custom_fields +public: true type: STRUCT label: List subfields: diff --git a/apps/clickup/bundle/fields/uesio/clickup/task/date_closed.yaml b/apps/clickup/bundle/fields/uesio/clickup/task/date_closed.yaml index e73d6b8..6798313 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/task/date_closed.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/task/date_closed.yaml @@ -1,4 +1,5 @@ name: date_closed +public: true type: TIMESTAMP label: Date Closed required: true diff --git a/apps/clickup/bundle/fields/uesio/clickup/task/date_done.yaml b/apps/clickup/bundle/fields/uesio/clickup/task/date_done.yaml index a821b8e..0a58669 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/task/date_done.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/task/date_done.yaml @@ -1,4 +1,5 @@ name: date_done +public: true type: TIMESTAMP label: Date Done columnname: date_done diff --git a/apps/clickup/bundle/fields/uesio/clickup/task/due_date.yaml b/apps/clickup/bundle/fields/uesio/clickup/task/due_date.yaml index ef3923e..8872a87 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/task/due_date.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/task/due_date.yaml @@ -1,4 +1,5 @@ name: due_date +public: true type: TIMESTAMP label: Due Date required: true diff --git a/apps/clickup/bundle/fields/uesio/clickup/task/list.yaml b/apps/clickup/bundle/fields/uesio/clickup/task/list.yaml index 886dc2d..3d4b119 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/task/list.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/task/list.yaml @@ -1,4 +1,5 @@ name: list +public: true type: STRUCT label: List subfields: diff --git a/apps/clickup/bundle/fields/uesio/clickup/task/markdown_description.yaml b/apps/clickup/bundle/fields/uesio/clickup/task/markdown_description.yaml index 2008336..98b4e5e 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/task/markdown_description.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/task/markdown_description.yaml @@ -1,4 +1,5 @@ name: markdown_description +public: true type: LONGTEXT label: Markdown Description columnname: markdown_description diff --git a/apps/clickup/bundle/fields/uesio/clickup/task/name.yaml b/apps/clickup/bundle/fields/uesio/clickup/task/name.yaml index 18a1a82..f1dff1d 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/task/name.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/task/name.yaml @@ -1,4 +1,5 @@ name: name +public: true type: TEXT label: Name required: true diff --git a/apps/clickup/bundle/fields/uesio/clickup/task/orderindex.yaml b/apps/clickup/bundle/fields/uesio/clickup/task/orderindex.yaml index 2cd0972..ece1f3b 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/task/orderindex.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/task/orderindex.yaml @@ -1,4 +1,5 @@ name: orderindex +public: true type: NUMBER label: Order Index columnname: orderindex diff --git a/apps/clickup/bundle/fields/uesio/clickup/task/priority.yaml b/apps/clickup/bundle/fields/uesio/clickup/task/priority.yaml index e30dfb2..005f95b 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/task/priority.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/task/priority.yaml @@ -1,4 +1,5 @@ name: priority +public: true type: TEXT label: Priority required: true diff --git a/apps/clickup/bundle/fields/uesio/clickup/task/start_date.yaml b/apps/clickup/bundle/fields/uesio/clickup/task/start_date.yaml index 0da4c5d..b6ea27e 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/task/start_date.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/task/start_date.yaml @@ -1,4 +1,5 @@ name: start_date +public: true type: TIMESTAMP label: Start Date required: true diff --git a/apps/clickup/bundle/fields/uesio/clickup/task/status.yaml b/apps/clickup/bundle/fields/uesio/clickup/task/status.yaml index 76d41b1..cd3c42f 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/task/status.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/task/status.yaml @@ -1,4 +1,5 @@ name: status +public: true type: STRUCT label: Status subfields: diff --git a/apps/clickup/bundle/fields/uesio/clickup/task/tags.yaml b/apps/clickup/bundle/fields/uesio/clickup/task/tags.yaml index f27edc6..1ebb837 100644 --- a/apps/clickup/bundle/fields/uesio/clickup/task/tags.yaml +++ b/apps/clickup/bundle/fields/uesio/clickup/task/tags.yaml @@ -1,4 +1,5 @@ name: tags +public: true type: LIST label: Tags subtype: TEXT diff --git a/apps/clickup/bundle/integrations/clickup.yaml b/apps/clickup/bundle/integrations/clickup.yaml index b3ef5c4..3fb901d 100644 --- a/apps/clickup/bundle/integrations/clickup.yaml +++ b/apps/clickup/bundle/integrations/clickup.yaml @@ -1,5 +1,6 @@ name: clickup +public: true type: clickup -authentication: OAUTH2_AUTHORIZATION_CODE -credentials: clickup_oauth +authentication: API_KEY +credentials: clickup_api_key baseUrl: https://api.clickup.com/api/v2 diff --git a/apps/clickup/bundle/integrationtypes/clickup.yaml b/apps/clickup/bundle/integrationtypes/clickup.yaml index ea26d73..bf957ab 100644 --- a/apps/clickup/bundle/integrationtypes/clickup.yaml +++ b/apps/clickup/bundle/integrationtypes/clickup.yaml @@ -1,3 +1,2 @@ name: clickup -loadBot: clickup_load -saveBot: clickup_save +public: true diff --git a/apps/clickup/bundle/secrets/clickup_api_key.yaml b/apps/clickup/bundle/secrets/clickup_api_key.yaml new file mode 100644 index 0000000..ea08227 --- /dev/null +++ b/apps/clickup/bundle/secrets/clickup_api_key.yaml @@ -0,0 +1,4 @@ +name: clickup_api_key +public: true +store: platform +managedBy: site diff --git a/apps/clickup/generated/@types/@uesio/index.d.ts b/apps/clickup/generated/@types/@uesio/index.d.ts index fe04aae..6d4572d 100644 --- a/apps/clickup/generated/@types/@uesio/index.d.ts +++ b/apps/clickup/generated/@types/@uesio/index.d.ts @@ -18,10 +18,11 @@ type ConditionOperator = | "GTE" | "LTE" | "IN" + | "NOT_IN" | "IS_BLANK" | "IS_NOT_BLANK" type FieldValue = string | number | boolean | object | null -type ConditionType = "SEARCH" | "GROUP" +type ConditionType = "SEARCH" | "GROUP" | "SUBQUERY" interface ConditionRequest { field: string operator: ConditionOperator @@ -126,6 +127,11 @@ type RunIntegrationAction = ( options: unknown ) => unknown +type CallBot = ( + botName: string, + params: Record +) => Record + interface BeforeSaveBotApi { addError: (error: string) => void load: (loadRequest: LoadRequest) => WireRecord[] @@ -144,6 +150,7 @@ interface AsAdminApi { delete: (collectionName: string, records: WireRecord[]) => void save: (collectionName: string, records: WireRecord[]) => void runIntegrationAction: RunIntegrationAction + callBot: CallBot getConfigValue: (configValueKey: string) => string } interface ListenerBotApi { @@ -153,6 +160,7 @@ interface ListenerBotApi { delete: (collectionName: string, records: WireRecord[]) => void save: (collectionName: string, records: WireRecord[]) => void runIntegrationAction: RunIntegrationAction + callBot: CallBot getConfigValue: (configValueKey: string) => string asAdmin: AsAdminApi getSession: () => SessionApi @@ -586,6 +594,7 @@ type ConditionOperators = | "GTE" | "LTE" | "IN" + | "NOT_IN" | "IS_BLANK" | "IS_NOT_BLANK" type WireCondition =