Initial commit: SecourIT Gestion

This commit is contained in:
2026-08-23 09:06:18 +00:00
commit cab93c7f7c
85 changed files with 15801 additions and 0 deletions
+63
View File
@@ -0,0 +1,63 @@
import { NextResponse } from 'next/server'
import { prisma } from '@/lib/prisma'
import { getCurrentUser } from '@/lib/auth'
export async function GET() {
try {
const user = await getCurrentUser()
if (!user) return NextResponse.json({ error: 'Non authentifié' }, { status: 401 })
const servers: any[] = await prisma.$queryRawUnsafe(`
SELECT s.*,
(SELECT json_build_object(
'cpuUsage', sm."cpuUsage",
'ramUsage', sm."ramUsage",
'diskUsage', sm."diskUsage",
'uptime', sm.uptime,
'timestamp', sm."timestamp"
) FROM "ServerMetric" sm
WHERE sm."serverId" = s.id
ORDER BY sm."timestamp" DESC LIMIT 1) as latest_metric
FROM "Server" s
WHERE s."userId" = $1
ORDER BY s.name ASC
`, user.id)
const parsed = servers.map((s: any) => ({
...s,
latest_metric: s.latest_metric || null,
}))
return NextResponse.json(parsed)
} catch (error) {
console.error(error)
return NextResponse.json({ error: 'Erreur serveur' }, { status: 500 })
}
}
export async function POST(request: Request) {
try {
const user = await getCurrentUser()
if (!user) return NextResponse.json({ error: 'Non authentifié' }, { status: 401 })
const body = await request.json()
const id = `${Date.now().toString(36)}-${Math.random().toString(36).substr(2, 9)}`
const now = new Date()
const { name, ip, os, cpu, ram, disk, startDate, endDate, monthlyCost, status, notes } = body
await prisma.$executeRawUnsafe(`
INSERT INTO "Server" (id, "userId", name, ip, os, cpu, ram, disk, "startDate", "endDate", "monthlyCost", status, notes, "createdAt", "updatedAt")
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15)
`, id, user.id, name || '', ip || '', os || '', cpu || '', ram || '', disk || '',
startDate ? new Date(startDate) : null, endDate ? new Date(endDate) : null,
monthlyCost ? Number(monthlyCost) : 0, status || 'ACTIVE', notes || '', now, now)
const created: any[] = await prisma.$queryRawUnsafe(`SELECT * FROM "Server" WHERE id = $1`, id)
return NextResponse.json(created[0])
} catch (error) {
console.error(error)
return NextResponse.json({ error: 'Erreur serveur' }, { status: 500 })
}
}