server creation

This commit is contained in:
Fran Jurmanović
2025-09-18 01:34:16 +02:00
parent b7999b02e8
commit b0ee67c2be
21 changed files with 1542 additions and 82 deletions

View File

@@ -0,0 +1,60 @@
'use server';
import { revalidatePath } from 'next/cache';
import { requireAuth } from '@/lib/auth/server';
import { createServer, deleteServer } from '@/lib/api/server/servers';
export type ServerActionResult = {
success: boolean;
message: string;
data?: any;
};
export async function createServerAction(
prevState: ServerActionResult,
formData: FormData
): Promise<ServerActionResult> {
try {
const session = await requireAuth();
const name = formData.get('name') as string;
if (!name?.trim()) {
return {
success: false,
message: 'Server name is required'
};
}
const server = await createServer(session.token!, name.trim());
revalidatePath('/dashboard');
return {
success: true,
message: 'Server creation started',
data: server
};
} catch (error) {
return {
success: false,
message: error instanceof Error ? error.message : 'Failed to create server'
};
}
}
export async function deleteServerAction(serverId: string): Promise<ServerActionResult> {
try {
const session = await requireAuth();
await deleteServer(session.token!, serverId);
revalidatePath('/dashboard');
return {
success: true,
message: 'Server deleted successfully'
};
} catch (error) {
return {
success: false,
message: error instanceof Error ? error.message : 'Failed to delete server'
};
}
}