fix: split collaboration request controllers
هذا الالتزام موجود في:
@@ -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);
|
||||
}
|
||||
}
|
||||
المرجع في مشكلة جديدة
حظر مستخدم