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')
|
@Delete(':id')
|
||||||
@Roles(UserRole.USER)
|
@Roles(UserRole.USER)
|
||||||
@ApiOperation({ summary: 'Cancel a pending connection request' })
|
@ApiOperation({ summary: 'Cancel a pending request or unlink an accepted connection' })
|
||||||
@ApiResponse({ status: 200, description: 'Connection request cancelled successfully' })
|
@ApiResponse({ status: 200, description: 'Connection removed successfully' })
|
||||||
@ApiResponse({ status: 400, description: 'Only pending requests can be cancelled' })
|
@ApiResponse({ status: 400, description: 'Only pending or accepted connections can be removed' })
|
||||||
@ApiResponse({ status: 403, description: 'Not authorized to cancel this request' })
|
@ApiResponse({ status: 403, description: 'Not authorized to cancel this request' })
|
||||||
@ApiResponse({ status: 404, description: 'Connection request not found' })
|
@ApiResponse({ status: 404, description: 'Connection request not found' })
|
||||||
async cancelRequest(
|
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) {
|
async cancelRequest(requestId: string, userId: string) {
|
||||||
const request = await this.prisma.connectionRequest.findUnique({
|
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');
|
throw new ForbiddenException('You are not authorized to cancel this request');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (request.status !== ConnectionStatus.PENDING) {
|
// Allow cancelling PENDING requests or unlinking ACCEPTED connections
|
||||||
throw new BadRequestException('Only pending requests can be cancelled');
|
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({
|
return this.prisma.connectionRequest.delete({
|
||||||
|
|||||||
Reference in New Issue
Block a user