diff --git a/packages/app-store/apps.metadata.generated.ts b/packages/app-store/apps.metadata.generated.ts index e25c9ef1de..8e10507fdd 100644 --- a/packages/app-store/apps.metadata.generated.ts +++ b/packages/app-store/apps.metadata.generated.ts @@ -10,6 +10,7 @@ import campfire_config_json from "./campfire/config.json"; import closecom_config_json from "./closecom/config.json"; import cron_config_json from "./cron/config.json"; import { metadata as dailyvideo__metadata_ts } from "./dailyvideo/_metadata"; +import discord_config_json from "./discord/config.json"; import { metadata as exchange2013calendar__metadata_ts } from "./exchange2013calendar/_metadata"; import { metadata as exchange2016calendar__metadata_ts } from "./exchange2016calendar/_metadata"; import exchangecalendar_config_json from "./exchangecalendar/config.json"; @@ -70,6 +71,7 @@ export const appStoreMetadata = { closecom: closecom_config_json, cron: cron_config_json, dailyvideo: dailyvideo__metadata_ts, + discord: discord_config_json, exchange2013calendar: exchange2013calendar__metadata_ts, exchange2016calendar: exchange2016calendar__metadata_ts, exchangecalendar: exchangecalendar_config_json, diff --git a/packages/app-store/apps.server.generated.ts b/packages/app-store/apps.server.generated.ts index 36621e1227..1f46fbd5af 100644 --- a/packages/app-store/apps.server.generated.ts +++ b/packages/app-store/apps.server.generated.ts @@ -10,6 +10,7 @@ export const apiHandlers = { campfire: import("./campfire/api"), closecom: import("./closecom/api"), cron: import("./cron/api"), + discord: import("./discord/api"), exchange2013calendar: import("./exchange2013calendar/api"), exchange2016calendar: import("./exchange2016calendar/api"), exchangecalendar: import("./exchangecalendar/api"), diff --git a/packages/app-store/discord/DESCRIPTION.md b/packages/app-store/discord/DESCRIPTION.md new file mode 100644 index 0000000000..519aee9c29 --- /dev/null +++ b/packages/app-store/discord/DESCRIPTION.md @@ -0,0 +1,9 @@ +--- +items: + - 1.jpg + - 2.jpg + - 3.jpg + - 4.jpg +--- + +{DESCRIPTION} diff --git a/packages/app-store/discord/api/add.ts b/packages/app-store/discord/api/add.ts new file mode 100644 index 0000000000..9a4afb9b2c --- /dev/null +++ b/packages/app-store/discord/api/add.ts @@ -0,0 +1,16 @@ +import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; +import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; + +import appConfig from "../config.json"; + +const handler: AppDeclarativeHandler = { + appType: appConfig.type, + variant: appConfig.variant, + slug: appConfig.slug, + supportsMultipleInstalls: false, + handlerType: "add", + createCredential: ({ appType, user, slug }) => + createDefaultInstallation({ appType, userId: user.id, slug, key: {} }), +}; + +export default handler; diff --git a/packages/app-store/discord/api/index.ts b/packages/app-store/discord/api/index.ts new file mode 100644 index 0000000000..4c0d2ead01 --- /dev/null +++ b/packages/app-store/discord/api/index.ts @@ -0,0 +1 @@ +export { default as add } from "./add"; diff --git a/packages/app-store/discord/config.json b/packages/app-store/discord/config.json new file mode 100644 index 0000000000..0e3931a684 --- /dev/null +++ b/packages/app-store/discord/config.json @@ -0,0 +1,26 @@ +{ + "/*": "Don't modify slug - If required, do it using cli edit command", + "name": "Discord", + "slug": "discord", + "type": "discord_video", + "imageSrc": "/api/app-store/discord/icon.svg", + "logo": "/api/app-store/discord/icon.svg", + "url": "https://discord.com/", + "variant": "conferencing", + "categories": ["video"], + "publisher": "Cal.com, Inc.", + "email": "support@cal.com", + "appData": { + "location": { + "type": "integrations:{SLUG}_video", + "label": "{TITLE}", + "linkType": "static", + "organizerInputPlaceholder": "https://discord.gg/420gg69", + "urlRegExp": "^http(s)?:\\/\\/(www\\.)?discord.gg\\/[a-zA-Z0-9]*" + } + }, + "description": "Copy your server invite link and start scheduling calls in Discord! Discord is a VoIP and instant messaging social platform. Users have the ability to communicate with voice calls, video calls, text messaging, media and files in private chats or as part of communities.", + "isTemplate": false, + "__createdUsingCli": true, + "__template": "event-type-location-video-static" +} diff --git a/packages/app-store/discord/index.ts b/packages/app-store/discord/index.ts new file mode 100644 index 0000000000..d7f3602204 --- /dev/null +++ b/packages/app-store/discord/index.ts @@ -0,0 +1 @@ +export * as api from "./api"; diff --git a/packages/app-store/discord/package.json b/packages/app-store/discord/package.json new file mode 100644 index 0000000000..8eb4386217 --- /dev/null +++ b/packages/app-store/discord/package.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json.schemastore.org/package.json", + "private": true, + "name": "@calcom/discord", + "version": "0.0.0", + "main": "./index.ts", + "dependencies": { + "@calcom/lib": "*" + }, + "devDependencies": { + "@calcom/types": "*" + }, + "description": "Discord is a VoIP and instant messaging social platform. Users have the ability to communicate with voice calls, video calls, text messaging, media and files in private chats or as part of communities" +} diff --git a/packages/app-store/discord/static/1.jpg b/packages/app-store/discord/static/1.jpg new file mode 100644 index 0000000000..a9b65158d2 Binary files /dev/null and b/packages/app-store/discord/static/1.jpg differ diff --git a/packages/app-store/discord/static/2.jpg b/packages/app-store/discord/static/2.jpg new file mode 100644 index 0000000000..9ae4c8859a Binary files /dev/null and b/packages/app-store/discord/static/2.jpg differ diff --git a/packages/app-store/discord/static/3.jpg b/packages/app-store/discord/static/3.jpg new file mode 100644 index 0000000000..604857d234 Binary files /dev/null and b/packages/app-store/discord/static/3.jpg differ diff --git a/packages/app-store/discord/static/4.jpg b/packages/app-store/discord/static/4.jpg new file mode 100644 index 0000000000..b38920c7f3 Binary files /dev/null and b/packages/app-store/discord/static/4.jpg differ diff --git a/packages/app-store/discord/static/icon.svg b/packages/app-store/discord/static/icon.svg new file mode 100644 index 0000000000..c03e8e1270 --- /dev/null +++ b/packages/app-store/discord/static/icon.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/prisma/seed-app-store.config.json b/packages/prisma/seed-app-store.config.json index d3373948ee..7f071d3d8b 100644 --- a/packages/prisma/seed-app-store.config.json +++ b/packages/prisma/seed-app-store.config.json @@ -2,300 +2,235 @@ { "/*": "This file is auto-generated and updated by `yarn app-store create/edit`. Don't edit it manually", "dirName": "routing-forms", - "categories": [ - "other" - ], + "categories": ["other"], "slug": "routing-forms", "type": "routing-forms_other" }, { "dirName": "whereby", - "categories": [ - "video" - ], + "categories": ["video"], "slug": "whereby", "type": "whereby_video" }, { "dirName": "around", - "categories": [ - "video" - ], + "categories": ["video"], "slug": "around", "type": "around_video" }, { "dirName": "riverside", - "categories": [ - "video" - ], + "categories": ["video"], "slug": "riverside", "type": "riverside_video" }, { "dirName": "typeform", - "categories": [ - "other" - ], + "categories": ["other"], "slug": "typeform", "type": "typeform_other" }, { "dirName": "ping", - "categories": [ - "video" - ], + "categories": ["video"], "slug": "ping", "type": "ping_video" }, { "dirName": "campfire", - "categories": [ - "video" - ], + "categories": ["video"], "slug": "campfire", "type": "campfire_video" }, { "dirName": "rainbow", - "categories": [ - "web3" - ], + "categories": ["web3"], "slug": "rainbow", "type": "rainbow_web3" }, { "dirName": "raycast", - "categories": [ - "other" - ], + "categories": ["other"], "slug": "raycast", "type": "raycast_other" }, { "dirName": "n8n", - "categories": [ - "automation" - ], + "categories": ["automation"], "slug": "n8n", "type": "n8n_automation" }, { "dirName": "exchangecalendar", - "categories": [ - "calendar" - ], + "categories": ["calendar"], "slug": "exchange", "type": "exchange_calendar" }, { "dirName": "qr_code", - "categories": [ - "other" - ], + "categories": ["other"], "slug": "qr_code", "type": "qr_code_other" }, { "dirName": "weather_in_your_calendar", - "categories": [ - "other" - ], + "categories": ["other"], "slug": "weather_in_your_calendar", "type": "weather_in_your_calendar_other" }, { "dirName": "fathom", - "categories": [ - "analytics" - ], + "categories": ["analytics"], "slug": "fathom", "type": "fathom_analytics" }, { "dirName": "plausible", - "categories": [ - "analytics" - ], + "categories": ["analytics"], "slug": "plausible", "type": "plausible_analytics" }, { "dirName": "wordpress", - "categories": [ - "other" - ], + "categories": ["other"], "slug": "wordpress", "type": "wordpress_other" }, { "dirName": "ga4", - "categories": [ - "analytics" - ], + "categories": ["analytics"], "slug": "ga4", "type": "ga4_analytics" }, { "dirName": "pipedream", - "categories": [ - "automation" - ], + "categories": ["automation"], "slug": "pipedream", "type": "pipedream_automation" }, { "dirName": "sirius_video", - "categories": [ - "video" - ], + "categories": ["video"], "slug": "sirius_video", "type": "sirius_video_video" }, { "dirName": "sendgrid", - "categories": [ - "other" - ], + "categories": ["other"], "slug": "sendgrid", "type": "sendgrid_other_calendar" }, { "dirName": "closecom", - "categories": [ - "other" - ], + "categories": ["other"], "slug": "closecom", "type": "closecom_other_calendar" }, { "dirName": "whatsapp", - "categories": [ - "video" - ], + "categories": ["video"], "slug": "whatsapp", "type": "whatsapp_video" }, { "dirName": "telegram", - "categories": [ - "video" - ], + "categories": ["video"], "slug": "telegram", "type": "telegram_video" }, { "dirName": "signal", - "categories": [ - "video" - ], + "categories": ["video"], "slug": "signal", "type": "signal_video" }, { "dirName": "vimcal", - "categories": [ - "calendar" - ], + "categories": ["calendar"], "slug": "vimcal", "type": "vimcal_other" }, { "dirName": "amie", - "categories": [ - "calendar" - ], + "categories": ["calendar"], "slug": "amie", "type": "amie_other" }, { "dirName": "booking-pages-tag", - "categories": [ - "analytics" - ], + "categories": ["analytics"], "slug": "booking-pages-tag", "type": "booking-pages-tag_other", "isTemplate": true }, { "dirName": "event-type-app-card", - "categories": [ - "other" - ], + "categories": ["other"], "slug": "event-type-app-card", "type": "event-type-app-card_other", "isTemplate": true }, { "dirName": "event-type-location-video-static", - "categories": [ - "video" - ], + "categories": ["video"], "slug": "event-type-location-video-static", "type": "event-type-location-video-static_other", "isTemplate": true }, { "dirName": "general-app-settings", - "categories": [ - "other" - ], + "categories": ["other"], "slug": "general-app-settings", "type": "general-app-settings_other", "isTemplate": true }, { "dirName": "link-as-an-app", - "categories": [ - "other" - ], + "categories": ["other"], "slug": "link-as-an-app", "type": "link-as-an-app_other", "isTemplate": true }, { "dirName": "basic", - "categories": [ - "other" - ], + "categories": ["other"], "slug": "basic", "type": "basic_other", "isTemplate": true }, { "dirName": "facetime", - "categories": [ - "video" - ], + "categories": ["video"], "slug": "facetime", "type": "facetime_video", "isTemplate": false }, { "dirName": "zohocrm", - "categories": [ - "other" - ], + "categories": ["other"], "slug": "zohocrm", "type": "zohocrm_other_calendar", "isTemplate": false }, { "dirName": "cron", - "categories": [ - "calendar" - ], + "categories": ["calendar"], "slug": "cron", "type": "cron_other", "isTemplate": false }, { "dirName": "google-tag-manager", - "categories": [ - "analytics" - ], + "categories": ["analytics"], "slug": "google-tag-manager", "type": "google-tag-manager_analytics", "isTemplate": false + }, + { + "dirName": "discord", + "categories": ["video"], + "slug": "discord", + "type": "discord_video", + "isTemplate": false } -] \ No newline at end of file +]