add auth and payment api
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
import { Controller } from "@/common/controller";
|
||||
import { ormMiddleware } from "@/common/middlewares/orm.middleware";
|
||||
import { createOrmContextMiddleware } from "@/common/middlewares/create-orm-context.middleware";
|
||||
import { isAdminMiddleware } from "@/common/middlewares/is-admin.middleware";
|
||||
import { paginationQuerySchema } from "@/common/schemas";
|
||||
import type { AbstractFileStorage } from "@/common/services/file-storage/abstract.file-storage";
|
||||
import type { AbstractJwtService } from "@/common/services/jwt-service/abstract.jwt-service";
|
||||
import type {
|
||||
ErrorResponse,
|
||||
ListResponse,
|
||||
@@ -22,6 +24,7 @@ import {
|
||||
import { PackageItinerary } from "@/database/entities/package-itinerary.entity";
|
||||
import { Package } from "@/database/entities/package.entity";
|
||||
import { TransportationClass } from "@/database/entities/transportation-class.entity";
|
||||
import { AdminPermission } from "@/database/enums/admin-permission.enum";
|
||||
import { PackageItineraryWidgetType } from "@/database/enums/package-itinerary-widget-type.enum";
|
||||
import { orm } from "@/database/orm";
|
||||
import type { PackageMapper } from "@/modules/package/package.mapper";
|
||||
@@ -43,6 +46,7 @@ export class PackageController extends Controller {
|
||||
public constructor(
|
||||
private readonly mapper: PackageMapper,
|
||||
private readonly fileStorage: AbstractFileStorage,
|
||||
private readonly jwtService: AbstractJwtService,
|
||||
) {
|
||||
super();
|
||||
}
|
||||
@@ -61,8 +65,8 @@ export class PackageController extends Controller {
|
||||
const package_ = orm.em.create(Package, {
|
||||
id: ulid(),
|
||||
name: body.name,
|
||||
type: this.mapper.mapPackageType(body.type),
|
||||
class: this.mapper.mapPackageClass(body.class),
|
||||
type: body.type,
|
||||
class: body.class,
|
||||
thumbnail: thumbnailFile.name,
|
||||
useFastTrain: body.use_fast_train,
|
||||
createdAt: new Date(),
|
||||
@@ -177,8 +181,8 @@ export class PackageController extends Controller {
|
||||
);
|
||||
|
||||
package_.name = body.name;
|
||||
package_.type = this.mapper.mapPackageType(body.type);
|
||||
package_.class = this.mapper.mapPackageClass(body.class);
|
||||
package_.type = body.type;
|
||||
package_.class = body.class;
|
||||
package_.useFastTrain = body.use_fast_train;
|
||||
package_.updatedAt = new Date();
|
||||
|
||||
@@ -1330,26 +1334,52 @@ export class PackageController extends Controller {
|
||||
|
||||
public buildRouter(): Router {
|
||||
const router = Router();
|
||||
router.post("/", ormMiddleware, this.create.bind(this));
|
||||
router.get("/", ormMiddleware, this.list.bind(this));
|
||||
router.get("/:id", ormMiddleware, this.view.bind(this));
|
||||
router.put("/:id", ormMiddleware, this.update.bind(this));
|
||||
router.delete("/:id", ormMiddleware, this.delete.bind(this));
|
||||
router.post("/:id/details", ormMiddleware, this.createDetail.bind(this));
|
||||
router.get("/:id/details", ormMiddleware, this.listDetails.bind(this));
|
||||
router.post(
|
||||
"/",
|
||||
createOrmContextMiddleware,
|
||||
isAdminMiddleware(this.jwtService, [AdminPermission.createPackage]),
|
||||
this.create.bind(this),
|
||||
);
|
||||
router.get("/", createOrmContextMiddleware, this.list.bind(this));
|
||||
router.get("/:id", createOrmContextMiddleware, this.view.bind(this));
|
||||
router.put(
|
||||
"/:id",
|
||||
createOrmContextMiddleware,
|
||||
isAdminMiddleware(this.jwtService, [AdminPermission.updatePackage]),
|
||||
this.update.bind(this),
|
||||
);
|
||||
router.delete(
|
||||
"/:id",
|
||||
createOrmContextMiddleware,
|
||||
isAdminMiddleware(this.jwtService, [AdminPermission.deletePackage]),
|
||||
this.delete.bind(this),
|
||||
);
|
||||
router.post(
|
||||
"/:id/details",
|
||||
createOrmContextMiddleware,
|
||||
isAdminMiddleware(this.jwtService, [AdminPermission.createPackageDetail]),
|
||||
this.createDetail.bind(this),
|
||||
);
|
||||
router.get(
|
||||
"/:id/details",
|
||||
createOrmContextMiddleware,
|
||||
this.listDetails.bind(this),
|
||||
);
|
||||
router.get(
|
||||
"/:package_id/details/:id",
|
||||
ormMiddleware,
|
||||
createOrmContextMiddleware,
|
||||
this.viewDetail.bind(this),
|
||||
);
|
||||
router.put(
|
||||
"/:package_id/details/:id",
|
||||
ormMiddleware,
|
||||
createOrmContextMiddleware,
|
||||
isAdminMiddleware(this.jwtService, [AdminPermission.updatePackageDetail]),
|
||||
this.updateDetail.bind(this),
|
||||
);
|
||||
router.delete(
|
||||
"/:package_id/details/:id",
|
||||
ormMiddleware,
|
||||
createOrmContextMiddleware,
|
||||
isAdminMiddleware(this.jwtService, [AdminPermission.deletePackageDetail]),
|
||||
this.deleteDetail.bind(this),
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user