feat(tickets): ajusted the query to return the correct Date format and ajusted the api call string to use query instead of param args
This commit is contained in:
parent
f3753ec53e
commit
37a4da7923
|
|
@ -3,12 +3,12 @@ import { IsInt, IsOptional, IsString } from "class-validator";
|
|||
export class TicketList {
|
||||
@IsInt() id: number;
|
||||
@IsString() status: string;
|
||||
@IsString() @IsOptional() assignedTo: string;
|
||||
@IsString() @IsOptional() assignTo: string;
|
||||
@IsString() deliveryAddress: string;
|
||||
@IsString() subject: string;
|
||||
@IsString() department: string;
|
||||
@IsInt() @IsOptional() parentTicketId: number;
|
||||
@IsString() dueDate: string;;
|
||||
@IsString() dueDate: string;
|
||||
@IsString() updatedAt: string;
|
||||
@IsString() completedAt: string;
|
||||
@IsString() @IsOptional() completedAt: string;
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { Controller, Get, Param, Query } from "@nestjs/common";
|
||||
import { Controller, Get, Param, ParseIntPipe, Query } from "@nestjs/common";
|
||||
import { Access } from "src/common/decorators/module-access.decorators";
|
||||
import { Result } from "src/common/errors/result-error.factory";
|
||||
import { TicketList } from "src/customer-support/tickets/dtos/ticket-list.dto";
|
||||
|
|
@ -9,23 +9,26 @@ export class TicketController {
|
|||
|
||||
constructor(private readonly getService: TicketService) { }
|
||||
|
||||
@Get(':status/:email')
|
||||
@Get(':status')
|
||||
async findTicketByFilters(
|
||||
@Access('email') email: string,
|
||||
@Param('status') status: string,
|
||||
@Param('email') filterEmail?: string,
|
||||
@Query('sortOrder') sortOrder?: string,
|
||||
@Query('sortTypes') sortTypes?: 'DESC' | 'ASC',
|
||||
@Query('offset') offset?: number,
|
||||
@Query('limit') limit?: number,
|
||||
@Query('sortOrder') sortOrder: string,
|
||||
@Query('sortType') sortType: 'DESC' | 'ASC',
|
||||
@Query('email') filterEmail?: string,
|
||||
@Query('offset', ParseIntPipe) offset?: number,
|
||||
@Query('limit', ParseIntPipe) limit?: number,
|
||||
): Promise<Result<TicketList[], string>> {
|
||||
const statusFliters = status.split(',');
|
||||
if (!filterEmail) {
|
||||
filterEmail = email;
|
||||
return await this.getService.getListOfAllTicketByFilters(statusFliters, offset, limit, sortOrder, sortTypes, filterEmail);
|
||||
} else {
|
||||
return await this.getService.getListOfAllTicketByFilters(statusFliters, offset, limit, sortOrder, sortTypes, filterEmail);
|
||||
}
|
||||
}
|
||||
const statusFilters = status.split(',');
|
||||
const queryEmail = filterEmail ?? email;
|
||||
|
||||
return await this.getService.getListOfAllTicketByFilters(
|
||||
statusFilters,
|
||||
offset,
|
||||
limit,
|
||||
sortOrder,
|
||||
sortType,
|
||||
queryEmail,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -11,10 +11,10 @@ export class TicketService {
|
|||
|
||||
getListOfAllTicketByFilters = async (
|
||||
status: string[],
|
||||
offset: number = 1,
|
||||
offset: number = 0,
|
||||
limit: number = 25,
|
||||
sortOrder: string = 'last_update' as const,
|
||||
sortType: 'DESC' | 'ASC' = 'DESC' as const,
|
||||
sortOrder: string = 'last_update',
|
||||
sortType: 'DESC' | 'ASC' = 'DESC',
|
||||
email?: string
|
||||
): Promise<Result<TicketList[], string>> => {
|
||||
|
||||
|
|
@ -37,9 +37,13 @@ export class TicketService {
|
|||
t.subject AS subject,
|
||||
d.name AS department,
|
||||
t.parent AS parentTicketId,
|
||||
t.due_date AS dueDate,
|
||||
t.last_update AS updatedAt,
|
||||
t.date_closed AS completedAt
|
||||
DATE_FORMAT(FROM_UNIXTIME(t.due_date / 1000), '%d/%m/%y') AS dueDate,
|
||||
DATE_FORMAT(FROM_UNIXTIME(t.last_update / 1000), '%d/%m/%y') AS updatedAt,
|
||||
CASE
|
||||
WHEN t.date_closed IS NOT NULL
|
||||
THEN DATE_FORMAT(FROM_UNIXTIME(t.date_closed / 1000), '%d/%m/%y')
|
||||
ELSE NULL
|
||||
END AS completedAt
|
||||
FROM staff s
|
||||
LEFT JOIN ticket t ON t.assign_to = s.id
|
||||
LEFT JOIN account a ON t.account_id = a.id
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
GET http://localhost:3000/tickets/open/gilles@targointernet.com?offset=1&limit=10
|
||||
GET http://localhost:3000/tickets/OPEN?sortOrder=last_update&sortTypes=DESC&offset=0&limit=10&email=gilles@targointernet.com
|
||||
Loading…
Reference in New Issue
Block a user