feat: Allow users to cancel pending requests and unlink accepted connections.
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user