diff --git a/src/modules/order/controllers/order.controller.ts b/src/modules/order/controllers/order.controller.ts index 7c16362..4ad46ac 100644 --- a/src/modules/order/controllers/order.controller.ts +++ b/src/modules/order/controllers/order.controller.ts @@ -104,4 +104,11 @@ export class OrderController { createPrint(@Param('orderId') orderId: string, @Body() body: CreateOrderPrintDto) { return this.orderService.createPrint(orderId, body); } + + @Get('admin/orders/:orderId/print') + @UseGuards(AdminAuthGuard) + @ApiOperation({ summary: 'Get order print' }) + getPrint(@Param('orderId') orderId: string) { + return this.orderService.getPrint(orderId); + } } diff --git a/src/modules/order/providers/order.service.ts b/src/modules/order/providers/order.service.ts index fb60d38..b3cee87 100644 --- a/src/modules/order/providers/order.service.ts +++ b/src/modules/order/providers/order.service.ts @@ -29,6 +29,7 @@ import { UpdateStatusAsDesignerDto } from '../dto/update-status-as-designer.dto' import { UpdateStatusDto } from '../dto/update-status.dto'; import { CreateOrderPrintDto } from '../dto/create-order-print.dto'; import { OrderPrint } from '../entities/print.entity'; +import { OrderPrintRepository } from '../repositories/order-print.repository'; @Injectable() export class OrderService { @@ -39,6 +40,7 @@ export class OrderService { private readonly orderRepository: OrderRepository, private readonly userService: UserService, private readonly adminService: AdminService, + private readonly orderPrintRepository: OrderPrintRepository, private readonly productService: ProductService, private readonly productRepository: ProductRepository, private readonly ticketRepository: TicketRepository, @@ -252,6 +254,14 @@ export class OrderService { return print; } + async getPrint(orderId:string){ + const orderPrint = await this.orderPrintRepository.findOne({ order: { id: orderId } }); + if (!orderPrint) { + throw new NotFoundException(`Print with ID ${orderId} not found.`); + } + return orderPrint; + } + // -----------Hrlper Methods ----------- async findOrderOrFail(id: string): Promise { const order = await this.em.findOne(Order, { id }, { populate: ['user', 'type', 'product', 'creator', 'print'] }); diff --git a/src/modules/order/repositories/order-print.repository.ts b/src/modules/order/repositories/order-print.repository.ts new file mode 100644 index 0000000..a1a570c --- /dev/null +++ b/src/modules/order/repositories/order-print.repository.ts @@ -0,0 +1,11 @@ +import { Injectable } from '@nestjs/common'; +import { EntityManager, EntityRepository } from '@mikro-orm/postgresql'; +import { OrderPrint } from '../entities/print.entity'; + + +@Injectable() +export class OrderPrintRepository extends EntityRepository { + constructor(readonly em: EntityManager) { + super(em, OrderPrint); + } +}