feat: consolidate entities create

This was done to give better typings to the function signatures of entities `create` methods.
It also ensures that each field that should be set to `null` is set to `null` and doesn't leave that up to the typeorm handlers.

See: #1641
Signed-off-by: Philip Molares <philip.molares@udo.edu>
This commit is contained in:
Philip Molares 2021-09-25 11:50:28 +02:00 committed by David Mehren
parent bd902e50d1
commit d0b8e4cd36
No known key found for this signature in database
GPG key ID: 185982BA4C42B7C3
14 changed files with 89 additions and 40 deletions

View file

@ -59,6 +59,7 @@ export class Revision {
*/
@ManyToOne((_) => Note, (note) => note.revisions, { onDelete: 'CASCADE' })
note: Note;
/**
* All edit objects which are used in the revision.
*/
@ -69,11 +70,17 @@ export class Revision {
// eslint-disable-next-line @typescript-eslint/no-empty-function
private constructor() {}
static create(content: string, patch: string): Revision {
static create(
content: string,
patch: string,
note: Note,
): Omit<Revision, 'id' | 'createdAt'> {
const newRevision = new Revision();
newRevision.patch = patch;
newRevision.content = content;
newRevision.length = content.length;
newRevision.note = note;
newRevision.edits = [];
return newRevision;
}
}