fix: split collaboration request controllers

هذا الالتزام موجود في:
boutmoun123
2026-05-31 17:05:58 +03:00
الأصل 49e132909e
التزام 1973b8b904
10 ملفات معدلة مع 402 إضافات و18 حذوفات

عرض الملف

@@ -1,38 +1,29 @@
import { Body, Controller, Get, Param, Patch, Post, Query, UseGuards } from '@nestjs/common';
import { Controller, Get, Param, Patch, Query, UseGuards } from '@nestjs/common';
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
import { CurrentUser } from '../../common/decorators/current-user.decorator';
import { PaginationQueryDto } from '../../common/dto/pagination-query.dto';
import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard';
import { JwtPayload } from '../../common/interfaces/jwt-payload.interface';
import { CollaborationRequestsService } from './collaboration-requests.service';
import { CreateCollaborationRequestDto } from './dto/create-collaboration-request.dto';
@ApiTags('Collaboration Requests')
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Controller('collaboration-requests')
export class CollaborationRequestsController {
constructor(private readonly collaborationRequestsService: CollaborationRequestsService) {}
@Post('posts/:postId/collaboration-requests')
async create(
@CurrentUser() user: JwtPayload,
@Param('postId') postId: string,
@Body() dto: CreateCollaborationRequestDto,
) {
return this.collaborationRequestsService.create(user.sub, postId, dto.targetUserId);
}
@Get('collaboration-requests')
@Get()
async mine(@CurrentUser() user: JwtPayload, @Query() query: PaginationQueryDto) {
return this.collaborationRequestsService.getMine(user.sub, query);
}
@Patch('collaboration-requests/:requestId/approve')
@Patch(':requestId/approve')
async approve(@CurrentUser() user: JwtPayload, @Param('requestId') requestId: string) {
return this.collaborationRequestsService.approve(user.sub, requestId);
}
@Patch('collaboration-requests/:requestId/reject')
@Patch(':requestId/reject')
async reject(@CurrentUser() user: JwtPayload, @Param('requestId') requestId: string) {
return this.collaborationRequestsService.reject(user.sub, requestId);
}

عرض الملف

@@ -6,6 +6,7 @@ import { PostsModule } from '../posts/posts.module';
import { UsersModule } from '../users/users.module';
import { CollaborationRequestsController } from './collaboration-requests.controller';
import { CollaborationRequestsService } from './collaboration-requests.service';
import { PostsCollaborationRequestsController } from './posts-collaboration-requests.controller';
import {
CollaborationRequest,
CollaborationRequestSchema,
@@ -19,7 +20,7 @@ import {
UsersModule,
MongooseModule.forFeature([{ name: CollaborationRequest.name, schema: CollaborationRequestSchema }]),
],
controllers: [CollaborationRequestsController],
controllers: [CollaborationRequestsController, PostsCollaborationRequestsController],
providers: [CollaborationRequestsService],
})
export class CollaborationRequestsModule {}

عرض الملف

@@ -0,0 +1,24 @@
import { Body, Controller, Param, Post, UseGuards } from '@nestjs/common';
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
import { CurrentUser } from '../../common/decorators/current-user.decorator';
import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard';
import { JwtPayload } from '../../common/interfaces/jwt-payload.interface';
import { CollaborationRequestsService } from './collaboration-requests.service';
import { CreateCollaborationRequestDto } from './dto/create-collaboration-request.dto';
@ApiTags('Post Collaboration Requests')
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
@Controller('posts')
export class PostsCollaborationRequestsController {
constructor(private readonly collaborationRequestsService: CollaborationRequestsService) {}
@Post(':postId/collaboration-requests')
async create(
@CurrentUser() user: JwtPayload,
@Param('postId') postId: string,
@Body() dto: CreateCollaborationRequestDto,
) {
return this.collaborationRequestsService.create(user.sub, postId, dto.targetUserId);
}
}