Files
acc-server-manager-web/src/lib/actions/servers.ts
Fran Jurmanović fe4d299eae code cleanup
2025-09-18 22:04:34 +02:00

63 lines
1.7 KiB
TypeScript

'use server';
import { revalidatePath, revalidateTag } from 'next/cache';
import { requireAuth } from '@/lib/auth/server';
import { startService, stopService, restartService } from '@/lib/api/server/servers';
export async function startServerAction(serverId: string) {
try {
const session = await requireAuth();
await startService(session.token!, serverId);
revalidatePath('/dashboard');
revalidatePath(`/dashboard/server/${serverId}`);
revalidateTag('/server');
} catch (error) {
return {
success: false,
message: error instanceof Error ? error.message : 'Failed to start server'
};
}
}
export async function startServerEventAction(serverId: string) {
await startServerAction(serverId);
}
export async function stopServerAction(serverId: string) {
try {
const session = await requireAuth();
await stopService(session.token!, serverId);
revalidatePath('/dashboard');
revalidatePath(`/dashboard/server/${serverId}`);
revalidateTag('/server');
} catch (error) {
return {
success: false,
message: error instanceof Error ? error.message : 'Failed to stop server'
};
}
}
export async function stopServerEventAction(serverId: string) {
await stopServerAction(serverId);
}
export async function restartServerAction(serverId: string) {
try {
const session = await requireAuth();
await restartService(session.token!, serverId);
revalidatePath('/dashboard');
revalidatePath(`/dashboard/server/${serverId}`);
revalidateTag('/server');
} catch (error) {
return {
success: false,
message: error instanceof Error ? error.message : 'Failed to restart server'
};
}
}
export async function restartServerEventAction(serverId: string) {
await restartServerAction(serverId);
}