refactor: apply asyncHandler to all route handlers

This commit is contained in:
Kirill
2026-05-27 21:39:18 +05:00
parent 36e75ab24a
commit 6615d97203
6 changed files with 143 additions and 162 deletions
+26 -32
View File
@@ -1,4 +1,5 @@
import { NOTIFICATION_EVENTS } from '../../../shared/constants/notification-events.js'
import { asyncHandler } from '../lib/async-handler.js'
import { isDeliveryCarrier } from '../lib/delivery-carrier.js'
import { prisma } from '../lib/prisma.js'
@@ -176,8 +177,10 @@ export async function registerUserOrderRoutes(fastify) {
return reply.code(201).send({ orderId: created.id })
})
fastify.get('/api/me/orders', { preHandler: [fastify.authenticate] }, async (request, reply) => {
try {
fastify.get(
'/api/me/orders',
{ preHandler: [fastify.authenticate] },
asyncHandler(async (request, reply) => {
const userId = request.user.sub
const orders = await prisma.order.findMany({
where: { userId },
@@ -195,14 +198,13 @@ export async function registerUserOrderRoutes(fastify) {
itemsCount: o.items.reduce((s, i) => s + i.qty, 0),
})),
}
} catch (err) {
request.log.error(err)
return reply.code(500).send({ error: 'Не удалось загрузить заказы' })
}
})
}),
)
fastify.get('/api/me/orders/:id', { preHandler: [fastify.authenticate] }, async (request, reply) => {
try {
fastify.get(
'/api/me/orders/:id',
{ preHandler: [fastify.authenticate] },
asyncHandler(async (request, reply) => {
const userId = request.user.sub
const { id } = request.params
const order = await prisma.order.findFirst({
@@ -211,11 +213,8 @@ export async function registerUserOrderRoutes(fastify) {
})
if (!order) return reply.code(404).send({ error: 'Заказ не найден' })
return { item: order }
} catch (err) {
request.log.error(err)
return reply.code(500).send({ error: 'Не удалось загрузить заказ' })
}
})
}),
)
fastify.get(
'/api/me/orders/:id/review-eligibility',
@@ -260,25 +259,20 @@ export async function registerUserOrderRoutes(fastify) {
fastify.post(
'/api/me/orders/:id/confirm-received',
{ preHandler: [fastify.authenticate] },
async (request, reply) => {
try {
const userId = request.user.sub
const { id } = request.params
const order = await prisma.order.findFirst({ where: { id, userId } })
if (!order) return reply.code(404).send({ error: 'Заказ не найден' })
asyncHandler(async (request, reply) => {
const userId = request.user.sub
const { id } = request.params
const order = await prisma.order.findFirst({ where: { id, userId } })
if (!order) return reply.code(404).send({ error: 'Заказ не найден' })
const okDelivery = order.deliveryType === 'delivery' && order.status === 'SHIPPED'
const okPickup = order.deliveryType === 'pickup' && order.status === 'READY_FOR_PICKUP'
if (!okDelivery && !okPickup) {
return reply.code(409).send({ error: 'Сейчас нельзя подтвердить получение заказа' })
}
await prisma.order.update({ where: { id }, data: { status: 'DONE' } })
return { ok: true, status: 'DONE' }
} catch (err) {
request.log.error(err)
return reply.code(500).send({ error: 'Не удалось подтвердить получение' })
const okDelivery = order.deliveryType === 'delivery' && order.status === 'SHIPPED'
const okPickup = order.deliveryType === 'pickup' && order.status === 'READY_FOR_PICKUP'
if (!okDelivery && !okPickup) {
return reply.code(409).send({ error: 'Сейчас нельзя подтвердить получение заказа' })
}
},
await prisma.order.update({ where: { id }, data: { status: 'DONE' } })
return { ok: true, status: 'DONE' }
}),
)
}