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({