From 4278219c03570148e3a57d354408207c3f792b42 Mon Sep 17 00:00:00 2001 From: Ruslan Bakiev Date: Sat, 4 Apr 2026 13:45:39 +0700 Subject: [PATCH] Add single-order query --- src/resolvers.js | 24 ++++++++++++++++++++++++ src/schema.graphql | 1 + 2 files changed, 25 insertions(+) diff --git a/src/resolvers.js b/src/resolvers.js index b86680b..104d73e 100644 --- a/src/resolvers.js +++ b/src/resolvers.js @@ -468,6 +468,30 @@ export const resolvers = { orderBy: { name: 'asc' }, }), + order: async (_, { id }, context) => { + const user = requireUser(context); + const order = await context.prisma.order.findUnique({ + where: { id }, + include: { + items: true, + history: { orderBy: { createdAt: 'desc' } }, + }, + }); + + if (!order) { + return null; + } + + if (isManagerRole(user.role)) { + if (!await canManagerAccessUser(context.prisma, user, order.customerId)) { + return null; + } + return order; + } + + return order.customerId === user.id ? order : null; + }, + myOrders: (_, __, context) => { const user = requireUser(context); return context.prisma.order.findMany({ diff --git a/src/schema.graphql b/src/schema.graphql index 34a1c30..4303961 100644 --- a/src/schema.graphql +++ b/src/schema.graphql @@ -334,6 +334,7 @@ type Query { myNotificationHistory(channel: MessengerType!, limit: Int = 50): [NotificationHistoryItem!]! managerNotificationHistory(userId: ID!, channel: MessengerType!, limit: Int = 50): [NotificationHistoryItem!]! clientProducts: [Product!]! + order(id: ID!): Order myOrders: [Order!]! myCurrentOrders: [Order!]! managerUsers: [ManagerUser!]!