auth checkpoint
auth dependecies not instaled in dev container
This commit is contained in:
1 parent
7378d37b36
commit
42002f8e6f
50 files changed
+3680
-636
No files matched your search
@@ -0,0 +1,145 @@
|
||||
import {
|
||||
IsString,
|
||||
IsOptional,
|
||||
IsUUID,
|
||||
IsBoolean,
|
||||
IsInt,
|
||||
Min,
|
||||
Max,
|
||||
} from 'class-validator';
|
||||
|
||||
interface CommentEntity {
|
||||
id: string;
|
||||
content: string;
|
||||
articleId?: string;
|
||||
liveBlogId?: string;
|
||||
parentId?: string;
|
||||
userId: string;
|
||||
likeCount: number;
|
||||
dislikeCount: number;
|
||||
isVisible: boolean;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
user?: {
|
||||
id: string;
|
||||
username: string;
|
||||
};
|
||||
replies?: CommentEntity[];
|
||||
}
|
||||
|
||||
export class CreateCommentDto {
|
||||
@IsString()
|
||||
@Max(5000)
|
||||
content: string;
|
||||
|
||||
@IsUUID()
|
||||
@IsOptional()
|
||||
articleId?: string;
|
||||
|
||||
@IsUUID()
|
||||
@IsOptional()
|
||||
liveBlogId?: string;
|
||||
|
||||
@IsUUID()
|
||||
@IsOptional()
|
||||
parentId?: string;
|
||||
}
|
||||
|
||||
export class UpdateCommentDto {
|
||||
@IsString()
|
||||
@Max(5000)
|
||||
@IsOptional()
|
||||
content?: string;
|
||||
|
||||
@IsBoolean()
|
||||
@IsOptional()
|
||||
isVisible?: boolean;
|
||||
}
|
||||
|
||||
export class CommentResponseDto {
|
||||
id: string;
|
||||
content: string;
|
||||
articleId?: string;
|
||||
liveBlogId?: string;
|
||||
parentId?: string;
|
||||
userId: string;
|
||||
likeCount: number;
|
||||
dislikeCount: number;
|
||||
isVisible: boolean;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
user: {
|
||||
id: string;
|
||||
username: string;
|
||||
};
|
||||
replies?: CommentResponseDto[];
|
||||
|
||||
constructor(comment: CommentEntity) {
|
||||
this.id = comment.id;
|
||||
this.content = comment.content;
|
||||
this.articleId = comment.articleId;
|
||||
this.liveBlogId = comment.liveBlogId;
|
||||
this.parentId = comment.parentId;
|
||||
this.userId = comment.userId;
|
||||
this.likeCount = comment.likeCount;
|
||||
this.dislikeCount = comment.dislikeCount;
|
||||
this.isVisible = comment.isVisible;
|
||||
this.createdAt = comment.createdAt;
|
||||
this.updatedAt = comment.updatedAt;
|
||||
|
||||
if (comment.user) {
|
||||
this.user = {
|
||||
id: comment.user.id,
|
||||
username: comment.user.username,
|
||||
};
|
||||
}
|
||||
|
||||
if (comment.replies) {
|
||||
this.replies = comment.replies.map(
|
||||
(reply) => new CommentResponseDto(reply),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export class FindCommentsDto {
|
||||
@IsUUID()
|
||||
@IsOptional()
|
||||
articleId?: string;
|
||||
|
||||
@IsUUID()
|
||||
@IsOptional()
|
||||
liveBlogId?: string;
|
||||
|
||||
@IsUUID()
|
||||
@IsOptional()
|
||||
parentId?: string;
|
||||
|
||||
@IsInt()
|
||||
@Min(1)
|
||||
@IsOptional()
|
||||
page?: number = 1;
|
||||
|
||||
@IsInt()
|
||||
@Min(1)
|
||||
@Max(100)
|
||||
@IsOptional()
|
||||
limit?: number = 20;
|
||||
}
|
||||
|
||||
export class CreateReactionDto {
|
||||
@IsString()
|
||||
type: 'like' | 'dislike';
|
||||
|
||||
@IsUUID()
|
||||
@IsOptional()
|
||||
articleId?: string;
|
||||
|
||||
@IsUUID()
|
||||
@IsOptional()
|
||||
liveBlogId?: string;
|
||||
|
||||
@IsUUID()
|
||||
@IsOptional()
|
||||
commentId?: string;
|
||||
}
|
||||
Reference in new issue
Block a user