diff --git a/src/modules/barname/barname.controller.ts b/src/modules/barname/barname.controller.ts index 2b8a29d..02c5922 100644 --- a/src/modules/barname/barname.controller.ts +++ b/src/modules/barname/barname.controller.ts @@ -13,6 +13,8 @@ import { ParamDto } from "../../common/DTO/param.dto"; import { BusinessInterceptor } from "../../core/interceptors/business.interceptor"; import { Business } from "../businesses/entities/business.entity"; import { UserDec } from "../../common/decorators/user.decorator"; +import { RoleEnum } from "../users/enums/role.enum"; +import { UpdateBarnameAsWatcherDto } from "./dto/update-barname-watcher.dto"; @Controller("barname") @UseInterceptors(BusinessInterceptor) @@ -42,8 +44,8 @@ export class BarnameController { @ApiOperation({ summary: "Update Barname by watcher" }) @Get(":id/watcher") - update(@Param() dto: ParamDto, @BusinessDec("id") businessId: string) { - return this.billsService.findOne(dto.id, businessId); + update(@Param('id') id: string, @BusinessDec() business: Business, @Body() dto: UpdateBarnameAsWatcherDto, @UserDec("role") role: RoleEnum) { + return this.billsService.updateBarnameAsWatcher(id, dto, business, role); } @ApiOperation({ summary: "Remove a barname" }) diff --git a/src/modules/barname/barname.service.ts b/src/modules/barname/barname.service.ts index 6891f2b..18806be 100644 --- a/src/modules/barname/barname.service.ts +++ b/src/modules/barname/barname.service.ts @@ -1,5 +1,5 @@ import { EntityManager } from "@mikro-orm/postgresql"; -import { BadRequestException, Injectable } from "@nestjs/common"; +import { BadRequestException, ForbiddenException, Injectable } from "@nestjs/common"; import { BillListQueryDto } from "./dto/bill-list-query.dto"; import { CreateBarnameDto } from "./dto/create-barname.dto"; @@ -10,6 +10,7 @@ import { Business } from "../businesses/entities/business.entity"; import { Company } from "../companies/entities/company.entity"; import { BarnameStatus } from "./enums/bill-type.enum"; import { UpdateBarnameAsWatcherDto } from "./dto/update-barname-watcher.dto"; +import { RoleEnum } from "../users/enums/role.enum"; // import { CompaniesService } from "../companies/services/companies.service"; @@ -38,13 +39,15 @@ export class BarnameService { return bill } - async updateBarname(id: string, dto: UpdateBarnameAsWatcherDto, business: Business, userId: string) { + async updateBarnameAsWatcher(id: string, dto: UpdateBarnameAsWatcherDto, business: Business, role: RoleEnum) { + + if(role != RoleEnum.WATCHER){ + throw new ForbiddenException("you are not allowed") + } const { exitedAt, watcherDescription } = dto; const barname = await this.findOne(id, business.id) - console.log(userId) - if (exitedAt) { barname.exitedAt = exitedAt } diff --git a/src/modules/users/enums/role.enum.ts b/src/modules/users/enums/role.enum.ts index dd50a74..f51b408 100644 --- a/src/modules/users/enums/role.enum.ts +++ b/src/modules/users/enums/role.enum.ts @@ -1,4 +1,5 @@ export enum RoleEnum { ADMIN = "ADMIN", USER = "USER", + WATCHER = "WATCHER", }