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>);
|
} 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) {
|
async listClasses(req: Request, res: Response) {
|
||||||
const parseQueryResult = paginationQuerySchema.safeParse(req.query);
|
const parseQueryResult = paginationQuerySchema.safeParse(req.query);
|
||||||
if (!parseQueryResult.success) {
|
if (!parseQueryResult.success) {
|
||||||
@@ -654,6 +686,11 @@ export class FlightController extends Controller {
|
|||||||
isAdminMiddleware(this.jwtService, [AdminPermission.createFlightClass]),
|
isAdminMiddleware(this.jwtService, [AdminPermission.createFlightClass]),
|
||||||
this.createClass.bind(this),
|
this.createClass.bind(this),
|
||||||
);
|
);
|
||||||
|
router.get(
|
||||||
|
"/classes",
|
||||||
|
createOrmContextMiddleware,
|
||||||
|
this.listAllClasses.bind(this),
|
||||||
|
);
|
||||||
router.get(
|
router.get(
|
||||||
"/:id/classes",
|
"/:id/classes",
|
||||||
createOrmContextMiddleware,
|
createOrmContextMiddleware,
|
||||||
|
|||||||
@@ -268,6 +268,38 @@ export class TransportationController extends Controller {
|
|||||||
} satisfies SingleResponse<TransportationClassResponse>);
|
} 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) {
|
async listClasses(req: Request, res: Response) {
|
||||||
const parseQueryResult = paginationQuerySchema.safeParse(req.query);
|
const parseQueryResult = paginationQuerySchema.safeParse(req.query);
|
||||||
if (!parseQueryResult.success) {
|
if (!parseQueryResult.success) {
|
||||||
@@ -564,6 +596,11 @@ export class TransportationController extends Controller {
|
|||||||
]),
|
]),
|
||||||
this.createClass.bind(this),
|
this.createClass.bind(this),
|
||||||
);
|
);
|
||||||
|
router.get(
|
||||||
|
"/classes",
|
||||||
|
createOrmContextMiddleware,
|
||||||
|
this.listAllClasses.bind(this),
|
||||||
|
);
|
||||||
router.get(
|
router.get(
|
||||||
"/:id/classes",
|
"/:id/classes",
|
||||||
createOrmContextMiddleware,
|
createOrmContextMiddleware,
|
||||||
|
|||||||
Reference in New Issue
Block a user