laravel forge integration

This commit is contained in:
Andrew Atimapre
2023-07-04 19:28:42 +01:00
parent aa60f3a664
commit 6c1ccc17b3
9 changed files with 316 additions and 22 deletions
+44 -2
View File
@@ -9,15 +9,17 @@ import {
INTEGRATION_CHECKLY_API_URL,
INTEGRATION_CIRCLECI,
INTEGRATION_CIRCLECI_API_URL,
INTEGRATION_CLOUDFLARE_PAGES,
INTEGRATION_CLOUDFLARE_PAGES_API_URL,
INTEGRATION_FLYIO,
INTEGRATION_FLYIO_API_URL,
INTEGRATION_GITHUB,
INTEGRATION_GITLAB,
INTEGRATION_CLOUDFLARE_PAGES,
INTEGRATION_CLOUDFLARE_PAGES_API_URL,
INTEGRATION_GITLAB_API_URL,
INTEGRATION_HEROKU,
INTEGRATION_HEROKU_API_URL,
INTEGRATION_LARAVELFORGE,
INTEGRATION_LARAVELFORGE_API_URL,
INTEGRATION_NETLIFY,
INTEGRATION_NETLIFY_API_URL,
INTEGRATION_RAILWAY,
@@ -116,6 +118,12 @@ const getApps = async ({
accessToken,
});
break;
case INTEGRATION_LARAVELFORGE:
apps = await getAppsLaravelForge({
accessToken,
serverId: accessId
});
break;
case INTEGRATION_TRAVISCI:
apps = await getAppsTravisCI({
accessToken,
@@ -398,6 +406,40 @@ const getAppsRailway = async ({ accessToken }: { accessToken: string }) => {
return apps;
};
/**
* Return list of sites for Laravel Forge integration
* @param {Object} obj
* @param {String} obj.accessToken - access token for Laravel Forge API
* @param {String} obj.serverId - server id of Laravel Forge
* @returns {Object[]} apps - names and ids of Laravel Forge sites
* @returns {String} apps.name - name of Laravel Forge sites
* @returns {String} apps.appId - id of Laravel Forge sites
*/
const getAppsLaravelForge = async ({
accessToken,
serverId
}: {
accessToken: string;
serverId?: string;
}) => {
const res = (
await standardRequest.get(`${INTEGRATION_LARAVELFORGE_API_URL}/api/v1/servers/${serverId}/sites`, {
headers: {
Authorization: `Bearer ${accessToken}`,
Accept: "application/json",
"Content-Type": "application/json",
},
})
).data.sites;
const apps = res.map((a: any) => ({
name: a.name,
appId: a.id,
}));
return apps;
};
/**
* Return list of apps for Fly.io integration
* @param {Object} obj