mirror of
https://github.com/ershisan99/coolify.git
synced 2025-12-24 12:33:17 +00:00
76 lines
2.0 KiB
TypeScript
76 lines
2.0 KiB
TypeScript
import { updateServiceLabels } from '$lib/api/applications/configuration';
|
|
import { execShellAsync } from '$lib/api/common';
|
|
import { docker } from '$lib/api/docker';
|
|
import ApplicationLog from '$models/ApplicationLog';
|
|
import Configuration from '$models/Configuration';
|
|
import Deployment from '$models/Deployment';
|
|
import type { Request } from '@sveltejs/kit';
|
|
|
|
export async function post(request: Request) {
|
|
const { name, organization, branch, isPreviewDeploymentEnabled }: any = request.body || {};
|
|
if (name && organization && branch) {
|
|
const configuration = await Configuration.findOneAndUpdate(
|
|
{
|
|
'repository.name': name,
|
|
'repository.organization': organization,
|
|
'repository.branch': branch
|
|
},
|
|
{
|
|
$set: {
|
|
'general.isPreviewDeploymentEnabled': isPreviewDeploymentEnabled,
|
|
'general.pullRequest': 0
|
|
}
|
|
},
|
|
{ new: true }
|
|
).select('-_id -__v -createdAt -updatedAt');
|
|
if (!isPreviewDeploymentEnabled) {
|
|
const found = await Configuration.find({
|
|
'repository.name': name,
|
|
'repository.organization': organization,
|
|
'repository.branch': branch,
|
|
'general.pullRequest': { $ne: 0 }
|
|
});
|
|
for (const prDeployment of found) {
|
|
await Configuration.findOneAndRemove({
|
|
'repository.name': name,
|
|
'repository.organization': organization,
|
|
'repository.branch': branch,
|
|
'publish.domain': prDeployment.publish.domain
|
|
});
|
|
const deploys = await Deployment.find({
|
|
organization,
|
|
branch,
|
|
name,
|
|
domain: prDeployment.publish.domain
|
|
});
|
|
for (const deploy of deploys) {
|
|
await ApplicationLog.deleteMany({ deployId: deploy.deployId });
|
|
await Deployment.deleteMany({ deployId: deploy.deployId });
|
|
}
|
|
await execShellAsync(`docker stack rm ${prDeployment.build.container.name}`);
|
|
}
|
|
return {
|
|
status: 200,
|
|
body: {
|
|
organization,
|
|
name,
|
|
branch
|
|
}
|
|
};
|
|
}
|
|
updateServiceLabels(configuration);
|
|
return {
|
|
status: 200,
|
|
body: {
|
|
success: true
|
|
}
|
|
};
|
|
}
|
|
return {
|
|
status: 500,
|
|
body: {
|
|
error: 'Cannot save.'
|
|
}
|
|
};
|
|
}
|