diff --git a/apps/backend/src/api/routes/dos-org-sync.controller.ts b/apps/backend/src/api/routes/dos-org-sync.controller.ts index 7e08d3a294..3b1e4647bb 100644 --- a/apps/backend/src/api/routes/dos-org-sync.controller.ts +++ b/apps/backend/src/api/routes/dos-org-sync.controller.ts @@ -62,7 +62,9 @@ export class DosOrgSyncWebhookController { @Body() payload: DosOrgSyncDto, @Headers('x-dos-signature') signature?: string ) { - const rawBody = typeof req.body === 'string' ? req.body : JSON.stringify(payload); + const rawBody = + (req as any).rawBody || + (typeof req.body === 'string' ? req.body : JSON.stringify(payload)); if (!this.verifySignature(rawBody, signature)) { throw new HttpException('Invalid webhook signature', HttpStatus.UNAUTHORIZED); } diff --git a/libraries/nestjs-libraries/src/dtos/webhooks/dos-org-sync.dto.ts b/libraries/nestjs-libraries/src/dtos/webhooks/dos-org-sync.dto.ts index 399cc6f2c6..77b5dc0428 100644 --- a/libraries/nestjs-libraries/src/dtos/webhooks/dos-org-sync.dto.ts +++ b/libraries/nestjs-libraries/src/dtos/webhooks/dos-org-sync.dto.ts @@ -27,8 +27,8 @@ export enum DosSyncEvent { export class DosOrgSyncDataDto { @IsString() - @IsNotEmpty() - org_id: string; + @IsOptional() + org_id?: string; @IsString() @IsOptional() @@ -52,16 +52,21 @@ export class DosOrgSyncDataDto { } export class DosOrgSyncDto { + @IsString() + @IsOptional() + id?: string; + @IsString() @IsNotEmpty() - event: DosSyncEvent; + event: string; @IsString() @IsOptional() timestamp?: string; @IsObject() + @IsOptional() @ValidateNested() @Type(() => DosOrgSyncDataDto) - data: DosOrgSyncDataDto; + data?: DosOrgSyncDataDto; }