diff --git a/apps/api/src/app/events/usecases/parse-event-request/parse-event-request.command.ts b/apps/api/src/app/events/usecases/parse-event-request/parse-event-request.command.ts index f876a5298e6..c0ac3457080 100644 --- a/apps/api/src/app/events/usecases/parse-event-request/parse-event-request.command.ts +++ b/apps/api/src/app/events/usecases/parse-event-request/parse-event-request.command.ts @@ -1,4 +1,12 @@ -import { IsDefined, IsEnum, IsOptional, IsString, ValidateIf, ValidateNested } from 'class-validator'; +import { + IsDefined, + IsString, + IsOptional, + ValidateNested, + ValidateIf, + IsEnum, + IsNumber, +} from 'class-validator'; import { AddressingTypeEnum, StatelessControls, @@ -7,6 +15,7 @@ import { TriggerRequestCategoryEnum, TriggerTenantContext, } from '@novu/shared'; +import { ApiHideProperty } from '@nestjs/swagger'; import { EnvironmentWithUserCommand } from '../../../shared/commands/project.command'; @@ -39,6 +48,11 @@ export class ParseEventRequestBaseCommand extends EnvironmentWithUserCommand { @IsEnum(TriggerRequestCategoryEnum) requestCategory?: TriggerRequestCategoryEnum; + @ApiHideProperty() + @IsOptional() + @IsNumber() + priority?: number; + @IsString() @IsOptional() bridgeUrl?: string; diff --git a/apps/api/src/app/events/usecases/parse-event-request/parse-event-request.usecase.ts b/apps/api/src/app/events/usecases/parse-event-request/parse-event-request.usecase.ts index 3eb40c96cf1..2121fe13e89 100644 --- a/apps/api/src/app/events/usecases/parse-event-request/parse-event-request.usecase.ts +++ b/apps/api/src/app/events/usecases/parse-event-request/parse-event-request.usecase.ts @@ -217,7 +217,14 @@ export class ParseEventRequest { bridgeWorkflow: discoveredWorkflow ?? undefined, }; - await this.workflowQueueService.add({ name: transactionId, data: jobData, groupId: command.organizationId }); + const options = process.env.IS_DOCKER_HOSTED === 'true' && command.priority ? { priority: command.priority } : {}; + + await this.workflowQueueService.add({ + name: transactionId, + data: jobData, + groupId: command.organizationId, + ...options, + }); return { acknowledged: true,