clear error deploy prod

This commit is contained in:
root
2026-05-20 16:42:36 -04:00
parent d138949a12
commit 32170acbb3
3 changed files with 19 additions and 14 deletions
+9 -6
View File
@@ -98,8 +98,9 @@ router.post('/:id/photos', requireRole('MANAGER'), upload.array('photos', 10), a
router.delete('/:id/photos/:idx', requireRole('MANAGER'), async (req, res, next) => {
try {
const vehicle = await prisma.vehicle.findFirstOrThrow({ where: { id: req.params.id, companyId: req.companyId } })
const idx = parseInt(req.params.idx)
const { id, idx: idxParam } = z.object({ id: z.string(), idx: z.string() }).parse(req.params)
const vehicle = await prisma.vehicle.findFirstOrThrow({ where: { id, companyId: req.companyId } })
const idx = parseInt(idxParam, 10)
const photos = vehicle.photos.filter((_: string, i: number) => i !== idx)
const updated = await prisma.vehicle.update({ where: { id: vehicle.id }, data: { photos } })
res.json({ data: updated })
@@ -217,6 +218,7 @@ router.get('/:id/calendar', async (req, res, next) => {
router.post('/:id/calendar/blocks', requireRole('MANAGER'), async (req, res, next) => {
try {
const { id } = z.object({ id: z.string() }).parse(req.params)
const body = z.object({
startDate: z.string().datetime({ offset: true }).or(z.string().regex(/^\d{4}-\d{2}-\d{2}$/)),
endDate: z.string().datetime({ offset: true }).or(z.string().regex(/^\d{4}-\d{2}-\d{2}$/)),
@@ -228,11 +230,11 @@ router.post('/:id/calendar/blocks', requireRole('MANAGER'), async (req, res, nex
const end = new Date(body.endDate)
if (end <= start) return res.status(400).json({ error: 'invalid_range', message: 'endDate must be after startDate', statusCode: 400 })
await prisma.vehicle.findFirstOrThrow({ where: { id: req.params.id, companyId: req.companyId } })
await prisma.vehicle.findFirstOrThrow({ where: { id, companyId: req.companyId } })
const block = await prisma.vehicleCalendarBlock.create({
data: {
vehicleId: req.params.id,
vehicleId: id,
startDate: start,
endDate: end,
reason: body.reason,
@@ -262,6 +264,7 @@ router.get('/:id/maintenance', async (req, res, next) => {
router.post('/:id/maintenance', requireRole('MANAGER'), async (req, res, next) => {
try {
const { id } = z.object({ id: z.string() }).parse(req.params)
const body = z.object({
type: z.string().min(1),
description: z.string().optional(),
@@ -273,8 +276,8 @@ router.post('/:id/maintenance', requireRole('MANAGER'), async (req, res, next) =
}).parse(req.body)
// Validate vehicle belongs to company
await prisma.vehicle.findFirstOrThrow({ where: { id: req.params.id, companyId: req.companyId } })
const log = await prisma.maintenanceLog.create({ data: { ...body, vehicleId: req.params.id, performedAt: new Date(body.performedAt), nextDueAt: body.nextDueAt ? new Date(body.nextDueAt) : undefined } })
await prisma.vehicle.findFirstOrThrow({ where: { id, companyId: req.companyId } })
const log = await prisma.maintenanceLog.create({ data: { ...body, vehicleId: id, performedAt: new Date(body.performedAt), nextDueAt: body.nextDueAt ? new Date(body.nextDueAt) : undefined } })
res.status(201).json({ data: log })
} catch (err) { next(err) }
})