diff --git a/frontend/src/pages/github.tsx b/frontend/src/pages/github.tsx
deleted file mode 100644
index 37c35b194..000000000
--- a/frontend/src/pages/github.tsx
+++ /dev/null
@@ -1,41 +0,0 @@
-import { useEffect } from 'react';
-import { useRouter } from 'next/router';
-import queryString from 'query-string';
-
-import AuthorizeIntegration from './api/integrations/authorizeIntegration';
-
-export default function Github() {
- const router = useRouter();
- const parsedUrl = queryString.parse(router.asPath.split('?')[1]);
- const {code} = parsedUrl;
- const {state} = parsedUrl;
-
- /**
- * Here we forward to the default workspace if a user opens this url
- */
- // eslint-disable-next-line react-hooks/exhaustive-deps
- useEffect(() => {
- (async () => {
- try {
- if (state === localStorage.getItem('latestCSRFToken')) {
- localStorage.removeItem('latestCSRFToken');
- await AuthorizeIntegration({
- workspaceId: localStorage.getItem('projectData.id') as string,
- code: code as string,
- integration: 'github',
- });
- router.push(
- `/integrations/${localStorage.getItem('projectData.id')}`
- );
- }
- } catch (error) {
- console.error('Github integration error: ', error);
- }
- })();
- // eslint-disable-next-line react-hooks/exhaustive-deps
- }, []);
-
- return
;
-}
-
-Github.requireAuth = true;
diff --git a/frontend/src/pages/heroku.tsx b/frontend/src/pages/heroku.tsx
deleted file mode 100644
index 66facdc06..000000000
--- a/frontend/src/pages/heroku.tsx
+++ /dev/null
@@ -1,159 +0,0 @@
-import { useEffect, useState } from 'react';
-import { useRouter } from 'next/router';
-import queryString from 'query-string';
-
-import { getTranslatedServerSideProps } from '@app/components/utilities/withTranslateProps';
-
-import {
- Button,
- Card,
- CardTitle,
- FormControl,
- Select,
- SelectItem
-} from '../components/v2';
-import AuthorizeIntegration from './api/integrations/authorizeIntegration';
-import getIntegrationApps from './api/integrations/GetIntegrationApps';
-import getAWorkspace from './api/workspace/getAWorkspace';
-
-interface Integration {
- _id: string;
- isActive: boolean;
- app: string | null;
- appId: string | null;
- createdAt: string;
- updatedAt: string;
- environment: string;
- integration: string;
- targetEnvironment: string;
- workspace: string;
- integrationAuth: string;
-}
-
-interface IntegrationApp {
- name: string;
- appId?: string;
- owner?: string;
-}
-
-export default function Heroku() {
- const router = useRouter();
- const parsedUrl = queryString.parse(router.asPath.split('?')[1]);
- const { code } = parsedUrl;
- const { state } = parsedUrl;
-
- const [integration, setIntegration] = useState(null);
- const [environments, setEnvironments] = useState<
- {
- name: string;
- slug: string;
- }[]
- >([]);
- const [environment, setEnvironment] = useState('');
- const [app, setApp] = useState('');
- const [apps, setApps] = useState([]);
-
- useEffect(() => {
- (async () => {
- try {
- if (state === localStorage.getItem('latestCSRFToken')) {
- localStorage.removeItem('latestCSRFToken');
- const integrationDetails = await AuthorizeIntegration({
- workspaceId: localStorage.getItem('projectData.id') as string,
- code: code as string,
- integration: 'heroku',
- });
-
- setIntegration(integrationDetails.integration);
-
- const workspaceId = localStorage.getItem('projectData.id');
- if (!workspaceId) return;
-
- const workspace = await getAWorkspace(workspaceId);
- setEnvironment(workspace.environments[0].slug);
- setEnvironments(workspace.environments);
-
- const tempApps: [IntegrationApp] = await getIntegrationApps({
- integrationAuthId: integrationDetails.integration.integrationAuth
- });
-
- console.log('tempApps: ', tempApps);
- setApp(tempApps[0].name);
- setApps(tempApps);
-
- // router.push(
- // `/integrations/${ localStorage.getItem('projectData.id')}`
- // );
- }
- } catch (error) {
- console.error('Heroku integration error: ', error);
- }
- })();
- }, []);
-
- const handleButtonClick = async () => {
- try {
- console.log('handleButtonClick');
- console.log('project environment: ', environment);
- console.log('app', app);
- } catch (err) {
- console.error(err);
- }
- }
-
- console.log('integration: ', integration);
- console.log('environments: ', environments);
- console.log('apps: ', apps);
-
- return (integration && environments.length > 0 && apps.length > 0) ? (
-
-
- Heroku Integration
-
-
-
-
-
-
-
-
-
- ) : Hello
-}
-
-Heroku.requireAuth = true;
-
-export const getServerSideProps = getTranslatedServerSideProps(['integrations']);
\ No newline at end of file
diff --git a/frontend/src/pages/integrations/[id].tsx b/frontend/src/pages/integrations/[id].tsx
index ac2669de8..e6bc784f6 100644
--- a/frontend/src/pages/integrations/[id].tsx
+++ b/frontend/src/pages/integrations/[id].tsx
@@ -49,6 +49,7 @@ interface Integration {
}
interface IntegrationOption {
+ tenantId?: string;
clientId: string;
clientSlug?: string; // vercel-integration specific
docsLink: string;
diff --git a/frontend/src/pages/integrations/flyio/create.tsx b/frontend/src/pages/integrations/flyio/create.tsx
index 7f9d079ae..2e185d9fe 100644
--- a/frontend/src/pages/integrations/flyio/create.tsx
+++ b/frontend/src/pages/integrations/flyio/create.tsx
@@ -11,7 +11,7 @@ import {
Select,
SelectItem
} from '../../../components/v2';
-import { useGetIntegrationAuthById } from '../../../hooks/api/integrationAuth';
+import { useGetIntegrationAuthApps,useGetIntegrationAuthById } from '../../../hooks/api/integrationAuth';
import { useGetWorkspaceById } from '../../../hooks/api/workspace';
import createIntegration from "../../api/integrations/createIntegration";
diff --git a/frontend/src/pages/integrations/github/create.tsx b/frontend/src/pages/integrations/github/create.tsx
index 324ef5715..3b39fa2d1 100644
--- a/frontend/src/pages/integrations/github/create.tsx
+++ b/frontend/src/pages/integrations/github/create.tsx
@@ -11,7 +11,7 @@ import {
Select,
SelectItem
} from '../../../components/v2';
-import { useGetIntegrationAuthById } from '../../../hooks/api/integrationAuth';
+import { useGetIntegrationAuthApps,useGetIntegrationAuthById } from '../../../hooks/api/integrationAuth';
import { useGetWorkspaceById } from '../../../hooks/api/workspace';
import createIntegration from "../../api/integrations/createIntegration";
diff --git a/frontend/src/pages/integrations/heroku/create.tsx b/frontend/src/pages/integrations/heroku/create.tsx
index 6d3c805d5..46e379462 100644
--- a/frontend/src/pages/integrations/heroku/create.tsx
+++ b/frontend/src/pages/integrations/heroku/create.tsx
@@ -11,7 +11,7 @@ import {
Select,
SelectItem
} from '../../../components/v2';
-import { useGetIntegrationAuthById } from '../../../hooks/api/integrationAuth';
+import { useGetIntegrationAuthApps,useGetIntegrationAuthById } from '../../../hooks/api/integrationAuth';
import { useGetWorkspaceById } from '../../../hooks/api/workspace';
import createIntegration from "../../api/integrations/createIntegration";
diff --git a/frontend/src/pages/integrations/heroku/oauth2/callback.tsx b/frontend/src/pages/integrations/heroku/oauth2/callback.tsx
index c5846170b..321255c9f 100644
--- a/frontend/src/pages/integrations/heroku/oauth2/callback.tsx
+++ b/frontend/src/pages/integrations/heroku/oauth2/callback.tsx
@@ -14,17 +14,14 @@ export default function HerokuOAuth2CallbackPage() {
(async () => {
try {
// validate state
- console.log('A');
if (state !== localStorage.getItem('latestCSRFToken')) return;
localStorage.removeItem('latestCSRFToken');
- console.log('B');
const integrationAuth = await AuthorizeIntegration({
workspaceId: localStorage.getItem('projectData.id') as string,
code: code as string,
integration: 'heroku'
});
- console.log('C');
router.push(
`/integrations/heroku/create?integrationAuthId=${integrationAuth._id}`
);
@@ -32,7 +29,6 @@ export default function HerokuOAuth2CallbackPage() {
} catch (err) {
console.error(err);
}
- console.log('D');
})();
}, []);
diff --git a/frontend/src/pages/integrations/netlify/create.tsx b/frontend/src/pages/integrations/netlify/create.tsx
index 6ec6469ab..a8b6bcd05 100644
--- a/frontend/src/pages/integrations/netlify/create.tsx
+++ b/frontend/src/pages/integrations/netlify/create.tsx
@@ -11,7 +11,7 @@ import {
Select,
SelectItem
} from '../../../components/v2';
-import { useGetIntegrationAuthById } from '../../../hooks/api/integrationAuth';
+import { useGetIntegrationAuthApps,useGetIntegrationAuthById } from '../../../hooks/api/integrationAuth';
import { useGetWorkspaceById } from '../../../hooks/api/workspace';
import createIntegration from "../../api/integrations/createIntegration";
diff --git a/frontend/src/pages/integrations/render/create.tsx b/frontend/src/pages/integrations/render/create.tsx
index 2f02408d9..3429def89 100644
--- a/frontend/src/pages/integrations/render/create.tsx
+++ b/frontend/src/pages/integrations/render/create.tsx
@@ -11,7 +11,7 @@ import {
Select,
SelectItem
} from '../../../components/v2';
-import { useGetIntegrationAuthById } from '../../../hooks/api/integrationAuth';
+import { useGetIntegrationAuthApps,useGetIntegrationAuthById } from '../../../hooks/api/integrationAuth';
import { useGetWorkspaceById } from '../../../hooks/api/workspace';
import createIntegration from "../../api/integrations/createIntegration";
diff --git a/frontend/src/pages/integrations/vercel/create.tsx b/frontend/src/pages/integrations/vercel/create.tsx
index 5a3249378..5e0e8ad7e 100644
--- a/frontend/src/pages/integrations/vercel/create.tsx
+++ b/frontend/src/pages/integrations/vercel/create.tsx
@@ -11,7 +11,7 @@ import {
Select,
SelectItem
} from '../../../components/v2';
-import { useGetIntegrationAuthById } from '../../../hooks/api/integrationAuth';
+import { useGetIntegrationAuthApps,useGetIntegrationAuthById } from '../../../hooks/api/integrationAuth';
import { useGetWorkspaceById } from '../../../hooks/api/workspace';
import createIntegration from "../../api/integrations/createIntegration";
diff --git a/frontend/src/pages/netlify.tsx b/frontend/src/pages/netlify.tsx
deleted file mode 100644
index 532d6044a..000000000
--- a/frontend/src/pages/netlify.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import { useEffect } from 'react';
-import { useRouter } from 'next/router';
-import queryString from 'query-string';
-
-import AuthorizeIntegration from './api/integrations/authorizeIntegration';
-
-export default function Netlify() {
- const router = useRouter();
- const parsedUrl = queryString.parse(router.asPath.split('?')[1]);
- const {code} = parsedUrl;
- const {state} = parsedUrl;
- // modify comment here
-
- /**
- * Here we forward to the default workspace if a user opens this url
- */
- // eslint-disable-next-line react-hooks/exhaustive-deps
- useEffect(() => {
- (async () => {
- try {
- if (!code) throw new Error('Code not found');
-
- if (state === localStorage.getItem('latestCSRFToken')) {
- localStorage.removeItem('latestCSRFToken');
-
- await AuthorizeIntegration({
- workspaceId: localStorage.getItem('projectData.id') as string,
- code: code as string,
- integration: 'netlify',
- });
-
- router.push(
- `/integrations/${ localStorage.getItem('projectData.id')}`
- );
- }
- } catch (err) {
- console.error('Netlify integration error: ', err);
- }
- })();
- // eslint-disable-next-line react-hooks/exhaustive-deps
- }, []);
-
- return ;
-}
-
-Netlify.requireAuth = true;
diff --git a/frontend/src/pages/vercel.tsx b/frontend/src/pages/vercel.tsx
deleted file mode 100644
index 8e8245736..000000000
--- a/frontend/src/pages/vercel.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import { useEffect } from 'react';
-import { useRouter } from 'next/router';
-import queryString from 'query-string';
-
-import AuthorizeIntegration from './api/integrations/authorizeIntegration';
-
-export default function Vercel() {
- const router = useRouter();
- const parsedUrl = queryString.parse(router.asPath.split('?')[1]);
- const {code} = parsedUrl;
- const {state} = parsedUrl;
-
- /**
- * Here we forward to the default workspace if a user opens this url
- */
- // eslint-disable-next-line react-hooks/exhaustive-deps
- useEffect(() => {
- (async () => {
- try {
- // type check
- if (!code) throw new Error('Code not found');
-
- if (state === localStorage.getItem('latestCSRFToken')) {
- localStorage.removeItem('latestCSRFToken');
-
- await AuthorizeIntegration({
- workspaceId: localStorage.getItem('projectData.id') as string,
- code: code as string,
- integration: 'vercel',
- });
-
- router.push(
- `/integrations/${ localStorage.getItem('projectData.id')}`
- );
- }
- } catch (err) {
- console.error('Vercel integration error: ', err);
- }
- })();
- // eslint-disable-next-line react-hooks/exhaustive-deps
- }, []);
-
- return ;
-}
-
-Vercel.requireAuth = true;