This commit is contained in:
mahyargdz
2025-09-14 15:15:03 +03:30
commit be82059172
534 changed files with 51310 additions and 0 deletions
@@ -0,0 +1,50 @@
import { inject } from "inversify";
import { controller, httpPost, requestBody } from "inversify-express-utils";
import { HttpStatus } from "../../../common";
import { BaseController } from "../../../common/base/controller";
import { ApiAuth, ApiModel, ApiOperation, ApiResponse, ApiTags } from "../../../common/decorator/swggerDocs";
import { Guard } from "../../../core/middlewares/guard.middleware";
import { ValidationMiddleware } from "../../../core/middlewares/validator.middleware";
import { IOCTYPES } from "../../../IOC/ioc.types";
import { CreateSiteSettingDTO, UpdateSiteSettingDTO } from "../../site-setting/DTO/siteSetting.dto";
import { SiteSettingService } from "../../site-setting/siteSetting.service";
import { PermissionEnum } from "../models/Abstraction/IPermission";
@ApiTags("Admin Site Setting")
@controller("/admin/site-setting")
export class AdminSiteSettingController extends BaseController {
@inject(IOCTYPES.SiteSettingService) private siteSettingService: SiteSettingService;
@ApiOperation("create a setting for site")
@ApiResponse("successful", HttpStatus.Created)
@ApiModel(CreateSiteSettingDTO)
@ApiAuth()
@httpPost(
"",
Guard.authAdmin(),
Guard.checkAdminPermissions([PermissionEnum.ADMIN]),
ValidationMiddleware.validateInput(CreateSiteSettingDTO),
)
public async createSiteSetting(@requestBody() createDto: CreateSiteSettingDTO) {
const data = await this.siteSettingService.createSiteSetting(createDto);
return this.response(data, HttpStatus.Created);
}
//==>
@ApiOperation("update a setting for site")
@ApiResponse("successful", HttpStatus.Created)
@ApiModel(UpdateSiteSettingDTO)
@ApiAuth()
@httpPost(
"/update",
Guard.authAdmin(),
Guard.checkAdminPermissions([PermissionEnum.ADMIN]),
ValidationMiddleware.validateInput(UpdateSiteSettingDTO),
)
public async updateSiteSetting(@requestBody() updateDto: UpdateSiteSettingDTO) {
const data = await this.siteSettingService.updateSiteSetting(updateDto);
return this.response(data, HttpStatus.Created);
}
}