mirror of
https://github.com/ershisan99/coolify.git
synced 2026-02-04 12:34:47 +00:00
70 lines
1.8 KiB
TypeScript
70 lines
1.8 KiB
TypeScript
import { asyncExecShell, getEngine, getUserDetails } from '$lib/common';
|
|
import * as db from '$lib/database';
|
|
import { generateDatabaseConfiguration, getVersions, ErrorHandler } from '$lib/database';
|
|
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 database = await db.getDatabase({ id, teamId });
|
|
const { destinationDockerId, destinationDocker } = database;
|
|
|
|
let state = 'not started';
|
|
if (destinationDockerId) {
|
|
const host = getEngine(destinationDocker.engine);
|
|
|
|
try {
|
|
const { stdout } = await asyncExecShell(
|
|
`DOCKER_HOST=${host} docker inspect --format '{{json .State}}' ${id}`
|
|
);
|
|
|
|
if (JSON.parse(stdout).Running) {
|
|
state = 'running';
|
|
}
|
|
} catch (error) {
|
|
//
|
|
}
|
|
}
|
|
const configuration = generateDatabaseConfiguration(database);
|
|
const settings = await db.listSettings();
|
|
return {
|
|
body: {
|
|
privatePort: configuration?.privatePort,
|
|
database,
|
|
state,
|
|
versions: getVersions(database.type),
|
|
settings
|
|
}
|
|
};
|
|
} catch (error) {
|
|
return ErrorHandler(error);
|
|
}
|
|
};
|
|
|
|
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, defaultDatabase, dbUser, dbUserPassword, rootUser, rootUserPassword, version } =
|
|
await event.request.json();
|
|
|
|
try {
|
|
await db.updateDatabase({
|
|
id,
|
|
name,
|
|
defaultDatabase,
|
|
dbUser,
|
|
dbUserPassword,
|
|
rootUser,
|
|
rootUserPassword,
|
|
version
|
|
});
|
|
return { status: 201 };
|
|
} catch (error) {
|
|
return ErrorHandler(error);
|
|
}
|
|
};
|