ticket bug
This commit is contained in:
@@ -14,7 +14,7 @@ export class CreateTicketDto {
|
|||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsNotEmpty({ message: TicketMessageEnum.ATTACHMENT_REQUIRED })
|
@IsNotEmpty({ message: TicketMessageEnum.ATTACHMENT_REQUIRED })
|
||||||
@IsUrl({ protocols: ["http", "https"], require_protocol: true }, { each: true, message: TicketMessageEnum.ATTACHMENT_SHOULD_BE_URL })
|
@IsUrl({ protocols: ["http", "https"], require_protocol: true }, { each: true, message: TicketMessageEnum.ATTACHMENT_SHOULD_BE_URL })
|
||||||
@ApiProperty({ description: "attachment url", example: ["https://example.com/test.png"] })
|
@ApiProperty({ description: "attachment url", example: [{ type: '', url: '' }] })
|
||||||
attachments?: AttachmentType[];
|
attachments?: AttachmentType[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,66 +1,77 @@
|
|||||||
import { Body, Controller, Delete, Get, Param, Patch, Post, Query } from "@nestjs/common";
|
import { Body, Controller, Delete, Get, Param, Patch, Post, Query, UseGuards } from "@nestjs/common";
|
||||||
import { ApiOperation, ApiTags } from "@nestjs/swagger";
|
import { ApiBearerAuth, ApiOperation, ApiTags } from "@nestjs/swagger";
|
||||||
import { CreateTicketDto } from "../DTO/create-ticket.dto";
|
import { CreateTicketDto } from "../DTO/create-ticket.dto";
|
||||||
import { FindTicketQueryDto } from "../DTO/search-ticket-query.dto";
|
import { FindTicketQueryDto } from "../DTO/search-ticket-query.dto";
|
||||||
import { TicketService } from "../providers/tickets.service";
|
import { TicketService } from "../providers/tickets.service";
|
||||||
import { UserId } from "src/common/decorators";
|
import { UserId } from "src/common/decorators";
|
||||||
import { AdminId } from "src/common/decorators/admin-id.decorator";
|
import { AdminId } from "src/common/decorators/admin-id.decorator";
|
||||||
import { UpdateTicketDto } from "../DTO/update-ticket.dto";
|
import { UpdateTicketDto } from "../DTO/update-ticket.dto";
|
||||||
|
import { AdminAuthGuard } from "src/modules/auth/guards/adminAuth.guard";
|
||||||
|
import { AuthGuard } from "src/modules/auth/guards/auth.guard";
|
||||||
|
|
||||||
@Controller()
|
@Controller()
|
||||||
@ApiTags("Tickets")
|
@ApiTags("Tickets")
|
||||||
|
@ApiBearerAuth()
|
||||||
|
|
||||||
export class TicketController {
|
export class TicketController {
|
||||||
constructor(private readonly ticketsService: TicketService) { }
|
constructor(private readonly ticketsService: TicketService) { }
|
||||||
|
|
||||||
@Post('public/ticket/order/:orderId')
|
@Post('public/ticket/order/:orderId')
|
||||||
|
@UseGuards(AuthGuard)
|
||||||
@ApiOperation({ summary: "create ticket ==> user route" })
|
@ApiOperation({ summary: "create ticket ==> user route" })
|
||||||
createTicket(@Param('orderId') orderId: string, @Body() createDto: CreateTicketDto, @UserId() userId: string) {
|
createTicket(@Param('orderId') orderId: string, @Body() createDto: CreateTicketDto, @UserId() userId: string) {
|
||||||
return this.ticketsService.createTicket(orderId, createDto, userId);
|
return this.ticketsService.createTicket(orderId, createDto, userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation({ summary: "Get all order tickets ==> user route" })
|
|
||||||
@Get('public/ticket/order/:orderId')
|
@Get('public/ticket/order/:orderId')
|
||||||
|
@UseGuards(AuthGuard)
|
||||||
|
@ApiOperation({ summary: "Get all order tickets ==> user route" })
|
||||||
getTickets(@Query() queryDto: FindTicketQueryDto, @Param('orderId') orderId: string, @UserId() userId: string) {
|
getTickets(@Query() queryDto: FindTicketQueryDto, @Param('orderId') orderId: string, @UserId() userId: string) {
|
||||||
return this.ticketsService.getTickets(orderId, queryDto, userId);
|
return this.ticketsService.getTickets(orderId, queryDto, userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation({ summary: "Delete Ticket ==> admin route" })
|
|
||||||
@Delete('public/ticket/:ticketId')
|
@Delete('public/ticket/:ticketId')
|
||||||
|
@ApiOperation({ summary: "Delete Ticket ==> admin route" })
|
||||||
|
@UseGuards(AuthGuard)
|
||||||
deleteTicket(@Param('ticketId') ticketId: string, @UserId() userId: string) {
|
deleteTicket(@Param('ticketId') ticketId: string, @UserId() userId: string) {
|
||||||
return this.ticketsService.deleteTicket(ticketId, userId);
|
return this.ticketsService.deleteTicket(ticketId, userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation({ summary: "Delete Ticket ==> admin route" })
|
|
||||||
@Patch('public/ticket/:ticketId')
|
@Patch('public/ticket/:ticketId')
|
||||||
|
@UseGuards(AuthGuard)
|
||||||
|
@ApiOperation({ summary: "Delete Ticket ==> admin route" })
|
||||||
updateTicket(@Param('ticketId') ticketId: string, @UserId() userId: string, @Body() body: UpdateTicketDto) {
|
updateTicket(@Param('ticketId') ticketId: string, @UserId() userId: string, @Body() body: UpdateTicketDto) {
|
||||||
return this.ticketsService.updateTicket(ticketId, body, userId,);
|
return this.ticketsService.updateTicket(ticketId, body, userId,);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*=========================== Admin ============================== */
|
/*=========================== Admin ============================== */
|
||||||
|
|
||||||
@ApiOperation({ summary: "Delete Ticket ==> admin route" })
|
|
||||||
@Delete('admin/ticket/:ticketId')
|
@Delete('admin/ticket/:ticketId')
|
||||||
|
@UseGuards(AdminAuthGuard)
|
||||||
|
@ApiOperation({ summary: "Delete Ticket ==> admin route" })
|
||||||
deleteTicketAsAdmin(@Param('ticketId') ticketId: string) {
|
deleteTicketAsAdmin(@Param('ticketId') ticketId: string) {
|
||||||
return this.ticketsService.deleteTicket(ticketId);
|
return this.ticketsService.deleteTicket(ticketId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Post('admin/ticket/order/:orderId')
|
@Post('admin/ticket/order/:orderId')
|
||||||
|
@UseGuards(AdminAuthGuard)
|
||||||
@ApiOperation({ summary: "create ticket ==> admin route" })
|
@ApiOperation({ summary: "create ticket ==> admin route" })
|
||||||
createTicketAsAdmin(@Param('orderId') orderId: string, @Body() createDto: CreateTicketDto, @AdminId() adminId: string) {
|
createTicketAsAdmin(@Param('orderId') orderId: string, @Body() createDto: CreateTicketDto, @AdminId() adminId: string) {
|
||||||
return this.ticketsService.createTicket(orderId, createDto, undefined, adminId);
|
return this.ticketsService.createTicket(orderId, createDto, undefined, adminId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation({ summary: "Get all order tickets ==> admin route" })
|
|
||||||
@Get('admin/ticket/order/:orderId')
|
@Get('admin/ticket/order/:orderId')
|
||||||
|
@UseGuards(AdminAuthGuard)
|
||||||
|
@ApiOperation({ summary: "Get all order tickets ==> admin route" })
|
||||||
getTicketsAsAdmin(@Query() queryDto: FindTicketQueryDto, @Param('orderId') orderId: string) {
|
getTicketsAsAdmin(@Query() queryDto: FindTicketQueryDto, @Param('orderId') orderId: string) {
|
||||||
return this.ticketsService.getTickets(orderId, queryDto);
|
return this.ticketsService.getTickets(orderId, queryDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation({ summary: "Delete Ticket ==> admin route" })
|
|
||||||
@Patch('admin/ticket/:ticketId')
|
@Patch('admin/ticket/:ticketId')
|
||||||
|
@UseGuards(AdminAuthGuard)
|
||||||
|
@ApiOperation({ summary: "Delete Ticket ==> admin route" })
|
||||||
updateTicketAsAdmin(@Param('ticketId') ticketId: string, @Body() body: UpdateTicketDto) {
|
updateTicketAsAdmin(@Param('ticketId') ticketId: string, @Body() body: UpdateTicketDto) {
|
||||||
return this.ticketsService.updateTicket(ticketId, body);
|
return this.ticketsService.updateTicket(ticketId, body);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { MikroOrmModule } from "@mikro-orm/nestjs";
|
|||||||
import { OrderModule } from "../order/order.module";
|
import { OrderModule } from "../order/order.module";
|
||||||
import { AdminModule } from "../admin/admin.module";
|
import { AdminModule } from "../admin/admin.module";
|
||||||
import { UserModule } from "../user/user.module";
|
import { UserModule } from "../user/user.module";
|
||||||
|
import { JwtModule } from "@nestjs/jwt";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -15,7 +16,8 @@ import { UserModule } from "../user/user.module";
|
|||||||
forwardRef(() => OrderModule),
|
forwardRef(() => OrderModule),
|
||||||
MikroOrmModule.forFeature([Ticket]),
|
MikroOrmModule.forFeature([Ticket]),
|
||||||
AdminModule,
|
AdminModule,
|
||||||
UserModule
|
UserModule,
|
||||||
|
JwtModule.register({})
|
||||||
],
|
],
|
||||||
providers: [TicketService, TicketRepository],
|
providers: [TicketService, TicketRepository],
|
||||||
controllers: [TicketController],
|
controllers: [TicketController],
|
||||||
|
|||||||
Reference in New Issue
Block a user