@arsendoman/book-publisher-store
Version:
A Nest.js package for book publishing and storing
95 lines (90 loc) • 3.18 kB
text/typescript
import {
Body,
Controller,
Get,
Param,
Post,
Request,
SerializeOptions,
UseGuards,
} from '@nestjs/common';
import { Roles } from '../../database/mongo/schemas';
import { AllowedRoles } from 'src/application/decorators/roles.decorator';
import { PermissionGuard } from 'src/application/guards/auth.guard';
import { JwtAuthGuard } from '../../application/guards/jwt.auth.guard';
import { ApiBearerAuth, ApiHeader, ApiParam, ApiQuery } from '@nestjs/swagger';
import { RequestInterface } from '../../application/auth/types/request.auth';
import { PaginationParams } from '../../application/decorators/pagination.decorator';
import { IPagination } from '../../core/interfaces/pagination.interface';
import { SortingParams } from '../../application/decorators/sort.decorator';
import { PaginatedResponseDto } from '../../application/dtos/response/paginatedResponse.dto';
import { CommentComplianceCreateDto } from '../../application/dtos/request/comment/commentCompliance.create.dto';
import { CommentComplianceService } from '../../application/services/books/comments/comment-compliance.service';
import { CommentComplianceResponseDto } from '../../application/dtos/response/book/comments/commentCompliance.response.dto';
import { CommentComplianceActionDto } from '../../application/dtos/request/comment/compliance.action.dto';
export class CommentComplianceController {
constructor(
private readonly commentComplianceService: CommentComplianceService,
) {}
createCommentComplianceRequest(
commentComplianceCreateDto: CommentComplianceCreateDto,
req: RequestInterface,
): Promise<CommentComplianceResponseDto> {
return this.commentComplianceService.createCommentComplianceRequest(
req.user.id,
commentComplianceCreateDto,
);
}
fetchCommentsList(
pagination: IPagination,
sorting,
): Promise<PaginatedResponseDto<CommentComplianceResponseDto>> {
return this.commentComplianceService.fetchCommentComplianceList(
pagination,
sorting,
);
}
performCommentAction(
complianceId: string,
action: CommentComplianceActionDto,
) {
this.commentComplianceService.performComplianceAction(complianceId, action);
}
}