diff --git a/apps/api/v2/swagger/documentation.json b/apps/api/v2/swagger/documentation.json index aad0e11ea6..9bc537e801 100644 --- a/apps/api/v2/swagger/documentation.json +++ b/apps/api/v2/swagger/documentation.json @@ -9683,7 +9683,6 @@ "eightxeight-video", "discord-video", "demodesk-video", - "campsite-conferencing", "campfire-video", "around-video" ], @@ -16418,7 +16417,6 @@ "eightxeight-video", "discord-video", "demodesk-video", - "campsite-conferencing", "campfire-video", "around-video" ] diff --git a/docs/api-reference/v2/openapi.json b/docs/api-reference/v2/openapi.json index ef4f882fff..5825cb17e8 100644 --- a/docs/api-reference/v2/openapi.json +++ b/docs/api-reference/v2/openapi.json @@ -8962,7 +8962,6 @@ "eightxeight-video", "discord-video", "demodesk-video", - "campsite-conferencing", "campfire-video", "around-video" ], @@ -14786,7 +14785,6 @@ "eightxeight-video", "discord-video", "demodesk-video", - "campsite-conferencing", "campfire-video", "around-video" ] diff --git a/packages/app-store/apps.keys-schemas.generated.ts b/packages/app-store/apps.keys-schemas.generated.ts index becb7697c0..ecd6547d98 100644 --- a/packages/app-store/apps.keys-schemas.generated.ts +++ b/packages/app-store/apps.keys-schemas.generated.ts @@ -4,7 +4,6 @@ **/ import { appKeysSchema as alby_zod_ts } from "./alby/zod"; import { appKeysSchema as basecamp3_zod_ts } from "./basecamp3/zod"; -import { appKeysSchema as campsite_zod_ts } from "./campsite/zod"; import { appKeysSchema as closecom_zod_ts } from "./closecom/zod"; import { appKeysSchema as dailyvideo_zod_ts } from "./dailyvideo/zod"; import { appKeysSchema as fathom_zod_ts } from "./fathom/zod"; @@ -54,7 +53,6 @@ import { appKeysSchema as zoomvideo_zod_ts } from "./zoomvideo/zod"; export const appKeysSchemas = { alby: alby_zod_ts, basecamp3: basecamp3_zod_ts, - campsite: campsite_zod_ts, closecom: closecom_zod_ts, dailyvideo: dailyvideo_zod_ts, fathom: fathom_zod_ts, diff --git a/packages/app-store/apps.metadata.generated.ts b/packages/app-store/apps.metadata.generated.ts index 63a7c8aa85..83e2d92a2d 100644 --- a/packages/app-store/apps.metadata.generated.ts +++ b/packages/app-store/apps.metadata.generated.ts @@ -13,7 +13,6 @@ import basecamp3_config_json from "./basecamp3/config.json"; import bolna_config_json from "./bolna/config.json"; import { metadata as caldavcalendar__metadata_ts } from "./caldavcalendar/_metadata"; import campfire_config_json from "./campfire/config.json"; -import campsite_config_json from "./campsite/config.json"; import chatbase_config_json from "./chatbase/config.json"; import clic_config_json from "./clic/config.json"; import closecom_config_json from "./closecom/config.json"; @@ -119,7 +118,6 @@ export const appStoreMetadata = { bolna: bolna_config_json, caldavcalendar: caldavcalendar__metadata_ts, campfire: campfire_config_json, - campsite: campsite_config_json, chatbase: chatbase_config_json, clic: clic_config_json, closecom: closecom_config_json, diff --git a/packages/app-store/apps.schemas.generated.ts b/packages/app-store/apps.schemas.generated.ts index 1acffdaeec..3e62914377 100644 --- a/packages/app-store/apps.schemas.generated.ts +++ b/packages/app-store/apps.schemas.generated.ts @@ -4,7 +4,6 @@ **/ import { appDataSchema as alby_zod_ts } from "./alby/zod"; import { appDataSchema as basecamp3_zod_ts } from "./basecamp3/zod"; -import { appDataSchema as campsite_zod_ts } from "./campsite/zod"; import { appDataSchema as closecom_zod_ts } from "./closecom/zod"; import { appDataSchema as dailyvideo_zod_ts } from "./dailyvideo/zod"; import { appDataSchema as fathom_zod_ts } from "./fathom/zod"; @@ -54,7 +53,6 @@ import { appDataSchema as zoomvideo_zod_ts } from "./zoomvideo/zod"; export const appDataSchemas = { alby: alby_zod_ts, basecamp3: basecamp3_zod_ts, - campsite: campsite_zod_ts, closecom: closecom_zod_ts, dailyvideo: dailyvideo_zod_ts, fathom: fathom_zod_ts, diff --git a/packages/app-store/apps.server.generated.ts b/packages/app-store/apps.server.generated.ts index f7f2a7c2e9..a5dd776ebf 100644 --- a/packages/app-store/apps.server.generated.ts +++ b/packages/app-store/apps.server.generated.ts @@ -14,7 +14,6 @@ export const apiHandlers = { bolna: import("./bolna/api"), caldavcalendar: import("./caldavcalendar/api"), campfire: import("./campfire/api"), - campsite: import("./campsite/api"), chatbase: import("./chatbase/api"), clic: import("./clic/api"), closecom: import("./closecom/api"), diff --git a/packages/app-store/bookerApps.metadata.generated.ts b/packages/app-store/bookerApps.metadata.generated.ts index 061c3a216b..34fc10d1f4 100644 --- a/packages/app-store/bookerApps.metadata.generated.ts +++ b/packages/app-store/bookerApps.metadata.generated.ts @@ -4,7 +4,6 @@ **/ import around_config_json from "./around/config.json"; import campfire_config_json from "./campfire/config.json"; -import campsite_config_json from "./campsite/config.json"; import { metadata as dailyvideo__metadata_ts } from "./dailyvideo/_metadata"; import demodesk_config_json from "./demodesk/config.json"; import dialpad_config_json from "./dialpad/config.json"; @@ -51,7 +50,6 @@ import { metadata as zoomvideo__metadata_ts } from "./zoomvideo/_metadata"; export const appStoreMetadata = { around: around_config_json, campfire: campfire_config_json, - campsite: campsite_config_json, dailyvideo: dailyvideo__metadata_ts, demodesk: demodesk_config_json, dialpad: dialpad_config_json, diff --git a/packages/app-store/campsite/DESCRIPTION.md b/packages/app-store/campsite/DESCRIPTION.md deleted file mode 100644 index 61e7037d43..0000000000 --- a/packages/app-store/campsite/DESCRIPTION.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -items: - - 1.png - - 2.png - - 3.png ---- - -{DESCRIPTION} diff --git a/packages/app-store/campsite/api/add.ts b/packages/app-store/campsite/api/add.ts deleted file mode 100644 index 7cab268cc7..0000000000 --- a/packages/app-store/campsite/api/add.ts +++ /dev/null @@ -1,46 +0,0 @@ -import type { NextApiRequest } from "next"; -import { stringify } from "querystring"; -import { z } from "zod"; - -import { WEBAPP_URL } from "@calcom/lib/constants"; -import { defaultHandler } from "@calcom/lib/server/defaultHandler"; -import { defaultResponder } from "@calcom/lib/server/defaultResponder"; - -import getAppKeysFromSlug from "../../_utils/getAppKeysFromSlug"; -import { encodeOAuthState } from "../../_utils/oauth/encodeOAuthState"; - -const campsiteAppKeysSchema = z.object({ - client_id: z.string(), - client_secret: z.string(), -}); - -export const getCampsiteAppKeys = async () => { - const appKeys = await getAppKeysFromSlug("campsite"); - return campsiteAppKeysSchema.parse(appKeys); -}; - -async function handler(req: NextApiRequest) { - // Get user - const user = req?.session?.user; - if (!user) { - return { status: 401, body: { error: "Unauthorized" } }; - } - - const { client_id } = await getCampsiteAppKeys(); - const state = encodeOAuthState(req); - - const params = { - response_type: "code", - client_id, - redirect_uri: `${WEBAPP_URL}/api/integrations/campsite/callback`, - state, - scope: "read_user write_call_room", - }; - const query = stringify(params); - const url = `https://auth.campsite.com/oauth/authorize?${query}`; - return { url }; -} - -export default defaultHandler({ - GET: Promise.resolve({ default: defaultResponder(handler) }), -}); diff --git a/packages/app-store/campsite/api/callback.ts b/packages/app-store/campsite/api/callback.ts deleted file mode 100644 index 78d42d3a96..0000000000 --- a/packages/app-store/campsite/api/callback.ts +++ /dev/null @@ -1,73 +0,0 @@ -import type { NextApiRequest, NextApiResponse } from "next"; - -import { WEBAPP_URL } from "@calcom/lib/constants"; -import { getSafeRedirectUrl } from "@calcom/lib/getSafeRedirectUrl"; -import prisma from "@calcom/prisma"; - -import getAppKeysFromSlug from "../../_utils/getAppKeysFromSlug"; -import getInstalledAppPath from "../../_utils/getInstalledAppPath"; -import createOAuthAppCredential from "../../_utils/oauth/createOAuthAppCredential"; -import { decodeOAuthState } from "../../_utils/oauth/decodeOAuthState"; - -export default async function handler(req: NextApiRequest, res: NextApiResponse) { - const state = decodeOAuthState(req); - const userId = req.session?.user.id; - if (!userId) { - return res.status(404).json({ message: "No user found" }); - } - const { code } = req.query; - const { client_id, client_secret } = await getAppKeysFromSlug("campsite"); - - const result = await fetch(`https://auth.campsite.com/oauth/token`, { - method: "POST", - body: JSON.stringify({ - grant_type: "authorization_code", - code, - client_id, - client_secret, - redirect_uri: `${WEBAPP_URL}/api/integrations/campsite/callback`, - }), - headers: { - "Content-Type": "application/json", - }, - }); - - if (result.status !== 200) { - let errorMessage = "Something is wrong with the Campsite API"; - try { - const responseBody = await result.json(); - errorMessage = responseBody.error; - } catch (e) {} - - res.status(400).json({ message: errorMessage }); - return; - } - - const responseBody = await result.json(); - if (responseBody.error) { - res.status(400).json({ message: responseBody.error }); - return; - } - - /** - * With this we take care of no duplicate Campsite keys for a single user - * when creating a room using deleteMany if there is already a Campsite key - * */ - await prisma.credential.deleteMany({ - where: { - type: "campsite_conferencing", - userId, - appId: "campsite", - }, - }); - - await createOAuthAppCredential( - { appId: "campsite", type: "campsite_conferencing" }, - { access_token: responseBody.access_token }, - req - ); - - res.redirect( - getSafeRedirectUrl(state?.returnTo) ?? getInstalledAppPath({ variant: "conferencing", slug: "campsite" }) - ); -} diff --git a/packages/app-store/campsite/api/index.ts b/packages/app-store/campsite/api/index.ts deleted file mode 100644 index eb12c1b4ed..0000000000 --- a/packages/app-store/campsite/api/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default as add } from "./add"; -export { default as callback } from "./callback"; diff --git a/packages/app-store/campsite/config.json b/packages/app-store/campsite/config.json deleted file mode 100644 index 98534708e8..0000000000 --- a/packages/app-store/campsite/config.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "/*": "Don't modify slug - If required, do it using cli edit command", - "name": "Campsite", - "slug": "campsite", - "type": "campsite_conferencing", - "logo": "icon.png", - "url": "https://campsite.com", - "variant": "conferencing", - "categories": ["conferencing"], - "publisher": "Campsite", - "email": "support@campsite.com", - "appData": { - "location": { - "type": "integrations:{SLUG}_conferencing", - "label": "{TITLE}", - "linkType": "dynamic" - } - }, - "description": "Campsite is an all-in-one communication app that helps async teams move faster. Posts, docs, calls, and chat in one place — finally. Everything is searchable and easy to find.", - "isTemplate": false, - "__createdUsingCli": true, - "__template": "event-type-location-video-static" -} diff --git a/packages/app-store/campsite/index.ts b/packages/app-store/campsite/index.ts deleted file mode 100644 index e2e9d7b029..0000000000 --- a/packages/app-store/campsite/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * as api from "./api"; -export * as lib from "./lib"; diff --git a/packages/app-store/campsite/lib/VideoApiAdapter.ts b/packages/app-store/campsite/lib/VideoApiAdapter.ts deleted file mode 100644 index 58b129a8cb..0000000000 --- a/packages/app-store/campsite/lib/VideoApiAdapter.ts +++ /dev/null @@ -1,47 +0,0 @@ -import type { CalendarEvent, EventBusyDate } from "@calcom/types/Calendar"; -import type { CredentialPayload } from "@calcom/types/Credential"; -import type { PartialReference } from "@calcom/types/EventManager"; -import type { VideoApiAdapter, VideoCallData } from "@calcom/types/VideoApiAdapter"; - -type CampsiteToken = { - access_token: string; -}; -const CampsiteVideoApiAdapter = (credential: CredentialPayload): VideoApiAdapter => { - return { - createMeeting: async (_event: CalendarEvent): Promise => { - const keys = credential.key as CampsiteToken; - const { access_token } = keys; - const response = await fetch("https://api.campsite.com/v1/integrations/cal_dot_com/call_rooms", { - method: "POST", - headers: { - Authorization: `Bearer ${access_token}`, - "Content-Type": "application/json", - }, - }); - const callRoom = await response.json(); - - return { - type: "campsite_conferencing", - id: callRoom.id, - password: "", - url: callRoom.url, - }; - }, - updateMeeting: async (bookingRef: PartialReference, _event: CalendarEvent): Promise => { - return { - type: "campsite_conferencing", - id: bookingRef.externalCalendarId ? bookingRef.externalCalendarId : "", - password: "", - url: bookingRef.meetingUrl ? bookingRef.meetingUrl : "", - }; - }, - deleteMeeting: async (_uid: string): Promise => { - return {}; - }, - getAvailability: async (_dateFrom?: string, _dateTo?: string): Promise => { - return []; - }, - }; -}; - -export default CampsiteVideoApiAdapter; diff --git a/packages/app-store/campsite/lib/index.ts b/packages/app-store/campsite/lib/index.ts deleted file mode 100644 index dc61768d60..0000000000 --- a/packages/app-store/campsite/lib/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as VideoApiAdapter } from "./VideoApiAdapter"; diff --git a/packages/app-store/campsite/package.json b/packages/app-store/campsite/package.json deleted file mode 100644 index afce1273f4..0000000000 --- a/packages/app-store/campsite/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "private": true, - "name": "@calcom/campsite", - "version": "0.0.0", - "main": "./index.ts", - "dependencies": { - "@calcom/lib": "*" - }, - "devDependencies": { - "@calcom/types": "*" - }, - "description": "Campsite is an all-in-one communication app that helps async teams move faster. Posts, docs, calls, and chat in one place — finally. Everything is searchable and easy to find." -} diff --git a/packages/app-store/campsite/static/1.png b/packages/app-store/campsite/static/1.png deleted file mode 100644 index 6c718110fc..0000000000 Binary files a/packages/app-store/campsite/static/1.png and /dev/null differ diff --git a/packages/app-store/campsite/static/2.png b/packages/app-store/campsite/static/2.png deleted file mode 100644 index f0c03397fd..0000000000 Binary files a/packages/app-store/campsite/static/2.png and /dev/null differ diff --git a/packages/app-store/campsite/static/3.png b/packages/app-store/campsite/static/3.png deleted file mode 100644 index 340dad0bbd..0000000000 Binary files a/packages/app-store/campsite/static/3.png and /dev/null differ diff --git a/packages/app-store/campsite/static/icon.png b/packages/app-store/campsite/static/icon.png deleted file mode 100644 index 68330b8ecf..0000000000 Binary files a/packages/app-store/campsite/static/icon.png and /dev/null differ diff --git a/packages/app-store/campsite/zod.ts b/packages/app-store/campsite/zod.ts deleted file mode 100644 index 0a84054ebe..0000000000 --- a/packages/app-store/campsite/zod.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { z } from "zod"; - -export const appDataSchema = z.object({}); - -export const appKeysSchema = z.object({ - client_id: z.string().min(1), - client_secret: z.string().min(1), -}); diff --git a/packages/app-store/index.ts b/packages/app-store/index.ts index f16bafaf2c..e8f5fca522 100644 --- a/packages/app-store/index.ts +++ b/packages/app-store/index.ts @@ -3,7 +3,6 @@ const appStore = { applecalendar: createCachedImport(() => import("./applecalendar")), aroundvideo: createCachedImport(() => import("./around")), caldavcalendar: createCachedImport(() => import("./caldavcalendar")), - campsiteconferencing: createCachedImport(() => import("./campsite")), closecom: createCachedImport(() => import("./closecom")), dailyvideo: createCachedImport(() => import("./dailyvideo")), googlecalendar: createCachedImport(() => import("./googlecalendar")), diff --git a/packages/lib/event-types/transformers/api-to-internal/locations.ts b/packages/lib/event-types/transformers/api-to-internal/locations.ts index c5e19c4494..530aafb5d1 100644 --- a/packages/lib/event-types/transformers/api-to-internal/locations.ts +++ b/packages/lib/event-types/transformers/api-to-internal/locations.ts @@ -40,7 +40,6 @@ export const apiToInternalintegrationsMapping = { "eightxeight-video": "integrations:eightxeight_video", "discord-video": "integrations:discord_video", "demodesk-video": "integrations:demodesk_video", - "campsite-conferencing": "integrations:campsite_conferencing", "campfire-video": "integrations:campfire_video", "around-video": "integrations:around_video", } as const; diff --git a/packages/lib/event-types/transformers/internal-to-api/locations.ts b/packages/lib/event-types/transformers/internal-to-api/locations.ts index 42da1a5021..729749216a 100644 --- a/packages/lib/event-types/transformers/internal-to-api/locations.ts +++ b/packages/lib/event-types/transformers/internal-to-api/locations.ts @@ -42,7 +42,6 @@ const internalToApiIntegrationsMapping: Record