mirror of
https://github.com/ershisan99/coolify.git
synced 2026-01-29 12:34:38 +00:00
54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
import { getUserDetails } from '$lib/common';
|
|
import * as db from '$lib/database';
|
|
import { ErrorHandler } from '$lib/database';
|
|
import { dayjs } from '$lib/dayjs';
|
|
import { dockerInstance } from '$lib/docker';
|
|
import type { RequestHandler } from '@sveltejs/kit';
|
|
|
|
export const get: RequestHandler = async (event) => {
|
|
const { status, body } = await getUserDetails(event);
|
|
if (status === 401) return { status, body };
|
|
|
|
const { id } = event.params;
|
|
try {
|
|
const { destinationDockerId, destinationDocker } = await db.prisma.application.findUnique({
|
|
where: { id },
|
|
include: { destinationDocker: true }
|
|
});
|
|
if (destinationDockerId) {
|
|
const docker = dockerInstance({ destinationDocker });
|
|
try {
|
|
const container = await docker.engine.getContainer(id);
|
|
if (container) {
|
|
return {
|
|
body: {
|
|
logs: (await container.logs({ stdout: true, stderr: true, timestamps: true }))
|
|
.toString()
|
|
.split('\n')
|
|
.map((l) => l.slice(8))
|
|
.filter((a) => a)
|
|
}
|
|
};
|
|
}
|
|
} catch (error) {
|
|
const { statusCode } = error;
|
|
if (statusCode === 404) {
|
|
return {
|
|
body: {
|
|
logs: []
|
|
}
|
|
};
|
|
}
|
|
}
|
|
}
|
|
return {
|
|
status: 200,
|
|
body: {
|
|
message: 'No logs found.'
|
|
}
|
|
};
|
|
} catch (error) {
|
|
return ErrorHandler(error);
|
|
}
|
|
};
|