fix: Add server-side validation of comment length

This commit is contained in:
Tom Moor
2023-06-29 22:41:57 -04:00
parent 4bec08ee05
commit 8957e86c12
4 changed files with 54 additions and 2 deletions

View File

@@ -5,12 +5,16 @@ import {
Column,
Table,
Scopes,
Length,
DefaultScope,
} from "sequelize-typescript";
import type { ProsemirrorData } from "@shared/types";
import { CommentValidation } from "@shared/validations";
import Document from "./Document";
import User from "./User";
import ParanoidModel from "./base/ParanoidModel";
import Fix from "./decorators/Fix";
import TextLength from "./validators/TextLength";
@DefaultScope(() => ({
include: [
@@ -35,8 +39,16 @@ import Fix from "./decorators/Fix";
@Table({ tableName: "comments", modelName: "comment" })
@Fix
class Comment extends ParanoidModel {
@TextLength({
max: CommentValidation.maxLength,
msg: `Comment must be less than ${CommentValidation.maxLength} characters`,
})
@Length({
max: CommentValidation.maxLength * 10,
msg: `Comment data is too large`,
})
@Column(DataType.JSONB)
data: Record<string, any>;
data: ProsemirrorData;
// associations