From 8e719155010b4ead218fba9bb7436ff3f37c4a5d Mon Sep 17 00:00:00 2001 From: pradeepkumar Date: Mon, 2 Feb 2026 10:01:00 +0530 Subject: [PATCH] feat: Allow users to cancel pending requests and unlink accepted connections. --- src/connection-requests/connection-requests.controller.ts | 6 +++--- src/connection-requests/connection-requests.service.ts | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/connection-requests/connection-requests.controller.ts b/src/connection-requests/connection-requests.controller.ts index f51a2cf..9ab1db5 100644 --- a/src/connection-requests/connection-requests.controller.ts +++ b/src/connection-requests/connection-requests.controller.ts @@ -175,9 +175,9 @@ export class ConnectionRequestsController { @Delete(':id') @Roles(UserRole.USER) - @ApiOperation({ summary: 'Cancel a pending connection request' }) - @ApiResponse({ status: 200, description: 'Connection request cancelled successfully' }) - @ApiResponse({ status: 400, description: 'Only pending requests can be cancelled' }) + @ApiOperation({ summary: 'Cancel a pending request or unlink an accepted connection' }) + @ApiResponse({ status: 200, description: 'Connection removed successfully' }) + @ApiResponse({ status: 400, description: 'Only pending or accepted connections can be removed' }) @ApiResponse({ status: 403, description: 'Not authorized to cancel this request' }) @ApiResponse({ status: 404, description: 'Connection request not found' }) async cancelRequest( diff --git a/src/connection-requests/connection-requests.service.ts b/src/connection-requests/connection-requests.service.ts index a506d60..d4f310c 100644 --- a/src/connection-requests/connection-requests.service.ts +++ b/src/connection-requests/connection-requests.service.ts @@ -251,7 +251,7 @@ export class ConnectionRequestsService { } /** - * Cancel a pending connection request (user only) + * Cancel a pending connection request or unlink an accepted connection (user only) */ async cancelRequest(requestId: string, userId: string) { const request = await this.prisma.connectionRequest.findUnique({ @@ -266,8 +266,9 @@ export class ConnectionRequestsService { throw new ForbiddenException('You are not authorized to cancel this request'); } - if (request.status !== ConnectionStatus.PENDING) { - throw new BadRequestException('Only pending requests can be cancelled'); + // Allow cancelling PENDING requests or unlinking ACCEPTED connections + if (request.status !== ConnectionStatus.PENDING && request.status !== ConnectionStatus.ACCEPTED) { + throw new BadRequestException('Only pending or accepted connections can be removed'); } return this.prisma.connectionRequest.delete({