add list all flight class and transportation class
This commit is contained in:
@@ -397,6 +397,38 @@ export class FlightController extends Controller {
|
||||
} satisfies SingleResponse<FlightClassResponse>);
|
||||
}
|
||||
|
||||
async listAllClasses(req: Request, res: Response) {
|
||||
const parseQueryResult = paginationQuerySchema.safeParse(req.query);
|
||||
if (!parseQueryResult.success) {
|
||||
return this.handleZodError(parseQueryResult.error, res, "query");
|
||||
}
|
||||
const query = parseQueryResult.data;
|
||||
|
||||
const count = await orm.em.count(FlightClass);
|
||||
|
||||
const classes = await orm.em.find(
|
||||
FlightClass,
|
||||
{},
|
||||
{
|
||||
limit: query.per_page,
|
||||
offset: (query.page - 1) * query.per_page,
|
||||
orderBy: { createdAt: "DESC" },
|
||||
populate: ["*"],
|
||||
},
|
||||
);
|
||||
|
||||
return res.status(200).json({
|
||||
data: classes.map(this.mapper.mapClassEntityToResponse.bind(this.mapper)),
|
||||
errors: null,
|
||||
meta: {
|
||||
page: query.page,
|
||||
per_page: query.per_page,
|
||||
total_pages: Math.ceil(count / query.per_page),
|
||||
total_items: count,
|
||||
},
|
||||
} satisfies ListResponse<FlightClassResponse>);
|
||||
}
|
||||
|
||||
async listClasses(req: Request, res: Response) {
|
||||
const parseQueryResult = paginationQuerySchema.safeParse(req.query);
|
||||
if (!parseQueryResult.success) {
|
||||
@@ -654,6 +686,11 @@ export class FlightController extends Controller {
|
||||
isAdminMiddleware(this.jwtService, [AdminPermission.createFlightClass]),
|
||||
this.createClass.bind(this),
|
||||
);
|
||||
router.get(
|
||||
"/classes",
|
||||
createOrmContextMiddleware,
|
||||
this.listAllClasses.bind(this),
|
||||
);
|
||||
router.get(
|
||||
"/:id/classes",
|
||||
createOrmContextMiddleware,
|
||||
|
||||
@@ -268,6 +268,38 @@ export class TransportationController extends Controller {
|
||||
} satisfies SingleResponse<TransportationClassResponse>);
|
||||
}
|
||||
|
||||
async listAllClasses(req: Request, res: Response) {
|
||||
const parseQueryResult = paginationQuerySchema.safeParse(req.query);
|
||||
if (!parseQueryResult.success) {
|
||||
return this.handleZodError(parseQueryResult.error, res, "query");
|
||||
}
|
||||
const query = parseQueryResult.data;
|
||||
|
||||
const count = await orm.em.count(TransportationClass);
|
||||
|
||||
const classes = await orm.em.find(
|
||||
TransportationClass,
|
||||
{},
|
||||
{
|
||||
limit: query.per_page,
|
||||
offset: (query.page - 1) * query.per_page,
|
||||
orderBy: { createdAt: "DESC" },
|
||||
populate: ["*"],
|
||||
},
|
||||
);
|
||||
|
||||
return res.status(200).json({
|
||||
data: classes.map(this.mapper.mapClassEntityToResponse.bind(this.mapper)),
|
||||
errors: null,
|
||||
meta: {
|
||||
page: query.page,
|
||||
per_page: query.per_page,
|
||||
total_pages: Math.ceil(count / query.per_page),
|
||||
total_items: count,
|
||||
},
|
||||
} satisfies ListResponse<TransportationClassResponse>);
|
||||
}
|
||||
|
||||
async listClasses(req: Request, res: Response) {
|
||||
const parseQueryResult = paginationQuerySchema.safeParse(req.query);
|
||||
if (!parseQueryResult.success) {
|
||||
@@ -564,6 +596,11 @@ export class TransportationController extends Controller {
|
||||
]),
|
||||
this.createClass.bind(this),
|
||||
);
|
||||
router.get(
|
||||
"/classes",
|
||||
createOrmContextMiddleware,
|
||||
this.listAllClasses.bind(this),
|
||||
);
|
||||
router.get(
|
||||
"/:id/classes",
|
||||
createOrmContextMiddleware,
|
||||
|
||||
Reference in New Issue
Block a user