up permisssions
This commit is contained in:
@@ -55,7 +55,7 @@ export class OrderController {
|
||||
// Permission handled inside service
|
||||
@Get('admin/orders')
|
||||
@UseGuards(AdminAuthGuard)
|
||||
@Permissions(PermissionEnum.VIEW_ORDERS)
|
||||
// @Permissions(PermissionEnum.VIEW_ORDERS)
|
||||
@ApiOperation({ summary: 'Get all orders with pagination and filters' })
|
||||
findAllAsAdmin(@Query() dto: FindOrdersDto, @AdminId() adminId: string) {
|
||||
return this.orderService.findOrdersAsAdmin(adminId, dto);
|
||||
@@ -106,7 +106,7 @@ export class OrderController {
|
||||
|
||||
@Post('admin/orders/:orderId/print')
|
||||
@UseGuards(AdminAuthGuard)
|
||||
@Permissions(PermissionEnum.CREATE_PRINT)
|
||||
@Permissions(PermissionEnum.CREATE_PRINT_FORM)
|
||||
@ApiOperation({ summary: 'Create order print' })
|
||||
@ApiOkResponse({ description: 'Order print created or updated' })
|
||||
createPrint(@Param('orderId') orderId: string, @Body() body: CreateOrderPrintDto) {
|
||||
@@ -115,7 +115,7 @@ export class OrderController {
|
||||
|
||||
@Get('admin/orders/:orderId/print')
|
||||
@UseGuards(AdminAuthGuard)
|
||||
@Permissions(PermissionEnum.VIEW_PRINT)
|
||||
@Permissions(PermissionEnum.VIEW_PRINT_FORM)
|
||||
@ApiOperation({ summary: 'Get order print' })
|
||||
@ApiOkResponse({ description: 'Order print details' })
|
||||
getPrint(@Param('orderId') orderId: string) {
|
||||
|
||||
@@ -130,18 +130,17 @@ export class OrderService {
|
||||
}
|
||||
|
||||
async findOrdersAsAdmin(adminId: string, dto: FindOrdersDto): Promise<PaginatedResult<Order>> {
|
||||
const permissions = await this.adminService.hasPermissions(adminId,
|
||||
const permissions = await this.adminService.ownedPermissions(adminId,
|
||||
[PermissionEnum.VIEW_ORDERS, PermissionEnum.VIEW_ASSIGNED_ORDERS])
|
||||
|
||||
|
||||
if (permissions.includes(PermissionEnum.VIEW_ORDERS)) {
|
||||
|
||||
return this.orderRepository.findAllPaginated(dto)
|
||||
|
||||
} else if (permissions.includes(PermissionEnum.VIEW_ASSIGNED_ORDERS)) {
|
||||
|
||||
return this.orderRepository.findAllPaginated({
|
||||
return this.orderRepository.findAllPaginated({
|
||||
...dto,
|
||||
designerId: adminId,
|
||||
...dto
|
||||
})
|
||||
|
||||
} else {
|
||||
@@ -208,7 +207,7 @@ export class OrderService {
|
||||
|
||||
|
||||
async updateStatus(orderId: string, adminId: string, dto: UpdateStatusDto): Promise<Order> {
|
||||
const permissions = await this.adminService.hasPermissions(adminId,
|
||||
const permissions = await this.adminService.ownedPermissions(adminId,
|
||||
[PermissionEnum.VIEW_ORDERS, PermissionEnum.VIEW_ASSIGNED_ORDERS])
|
||||
|
||||
if (permissions.includes(PermissionEnum.VIEW_ORDERS)) {
|
||||
|
||||
@@ -6,11 +6,6 @@ import { PaginatedResult } from 'src/common/interfaces/pagination.interface';
|
||||
import { OrderStatusEnum } from '../interface/order.interface';
|
||||
import { FindOrdersDto } from '../dto/find-orders.dto';
|
||||
|
||||
|
||||
// class FindOrdersOpts extends FindOrdersDto {
|
||||
// adminId?: string;
|
||||
// };
|
||||
|
||||
@Injectable()
|
||||
export class OrderRepository extends EntityRepository<Order> {
|
||||
constructor(readonly em: EntityManager) {
|
||||
@@ -76,7 +71,6 @@ export class OrderRepository extends EntityRepository<Order> {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Search by order number or user information
|
||||
if (search) {
|
||||
const searchPattern = `%${search}%`;
|
||||
@@ -103,31 +97,7 @@ export class OrderRepository extends EntityRepository<Order> {
|
||||
populate: ['user', 'product', 'designer'],
|
||||
});
|
||||
|
||||
// Collect all (orderId, productId) pairs for efficient review lookup
|
||||
// const orderproductPairs: Array<{ orderId: string; productId: bigint }> = [];
|
||||
// for (const order of data) {
|
||||
// for (const item of order.items.getItems()) {
|
||||
// if (item.product?.id) {
|
||||
// orderproductPairs.push({ orderId: order.id, productId: item.product.id });
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// Map reviewIds to products
|
||||
// for (const order of data) {
|
||||
// for (const item of order.items.getItems()) {
|
||||
// if (item.product) {
|
||||
// const key = `${order.id}-${item.product.id}`;
|
||||
// // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
// const product = item.product as any;
|
||||
// // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
const totalPages = Math.ceil(total / limit);
|
||||
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user