64 lines
1.8 KiB
TypeScript
Raw Normal View History

2022-02-26 15:08:26 +01:00
import { getUserDetails } from '$lib/common';
import { generateRemoteEngine } from '$lib/components/common';
2022-02-10 15:47:44 +01:00
import * as db from '$lib/database';
import { ErrorHandler } from '$lib/database';
2022-02-10 15:47:44 +01:00
import { checkContainer } from '$lib/haproxy';
import type { RequestHandler } from '@sveltejs/kit';
export const get: RequestHandler = async (event) => {
const { teamId, status, body } = await getUserDetails(event);
if (status === 401) return { status, body };
const { id } = event.params;
try {
const destination = await db.getDestination({ id, teamId });
const settings = await db.listSettings();
2022-02-26 15:08:26 +01:00
let payload = {
destination,
settings,
state: false
};
if (destination.remoteEngine) {
const engine = await generateRemoteEngine(destination);
payload.state = await checkContainer(engine, 'coolify-haproxy');
} else {
payload.state =
destination?.engine && (await checkContainer(destination.engine, 'coolify-haproxy'));
}
2022-02-10 15:47:44 +01:00
return {
status: 200,
2022-02-26 15:08:26 +01:00
body: { ...payload }
2022-02-10 15:47:44 +01:00
};
} catch (error) {
return ErrorHandler(error);
2022-02-10 15:47:44 +01:00
}
};
export const post: RequestHandler = async (event) => {
const { teamId, status, body } = await getUserDetails(event);
if (status === 401) return { status, body };
const { id } = event.params;
const { name, engine, network } = await event.request.json();
try {
await db.updateDestination({ id, name, engine, network });
return { status: 200 };
} catch (error) {
return ErrorHandler(error);
2022-02-10 15:47:44 +01:00
}
};
export const del: RequestHandler = async (event) => {
const { teamId, status, body } = await getUserDetails(event);
if (status === 401) return { status, body };
const { id } = event.params;
try {
await db.removeDestination({ id });
return { status: 200 };
} catch (error) {
return ErrorHandler(error);
2022-02-10 15:47:44 +01:00
}
};