fix(backend): Formatting + .env.development.example

npm run format uitgevoerd, .env.development.example toegevoegd.
This commit is contained in:
Gerald Schmittinger 2025-02-26 22:03:53 +01:00
parent 4e883a1a18
commit 48c8ce7c57
36 changed files with 499 additions and 331 deletions

View file

@ -1,28 +1,35 @@
import {Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property} from "@mikro-orm/core";
import {Class} from "../classes/class.entity";
import {Group} from "./group.entity"
import {Language} from "../content/language";
import {
Entity,
Enum,
ManyToOne,
OneToMany,
PrimaryKey,
Property,
} from '@mikro-orm/core';
import { Class } from '../classes/class.entity';
import { Group } from './group.entity';
import { Language } from '../content/language';
@Entity()
export class Assignment {
@ManyToOne({entity: () => Class, primary: true})
@ManyToOne({ entity: () => Class, primary: true })
within!: Class;
@PrimaryKey({type: "number"})
@PrimaryKey({ type: 'number' })
id!: number;
@Property({type: "string"})
@Property({ type: 'string' })
title!: string;
@Property({type: "text"})
@Property({ type: 'text' })
description!: string;
@Property({type: "string"})
@Property({ type: 'string' })
learningPathHruid!: string;
@Enum({items: () => Language})
@Enum({ items: () => Language })
learningPathLanguage!: Language;
@OneToMany({entity: () => Group, mappedBy: "assignment"})
@OneToMany({ entity: () => Group, mappedBy: 'assignment' })
groups!: Group[];
}

View file

@ -1,15 +1,15 @@
import {Entity, ManyToMany, ManyToOne, PrimaryKey} from "@mikro-orm/core";
import {Assignment} from "./assignment.entity";
import {Student} from "../users/student.entity";
import { Entity, ManyToMany, ManyToOne, PrimaryKey } from '@mikro-orm/core';
import { Assignment } from './assignment.entity';
import { Student } from '../users/student.entity';
@Entity()
export class Group {
@ManyToOne({entity: () => Assignment, primary: true})
@ManyToOne({ entity: () => Assignment, primary: true })
assignment!: Assignment;
@PrimaryKey({type: "integer"})
@PrimaryKey({ type: 'integer' })
groupNumber!: number;
@ManyToMany({entity: () => Student})
@ManyToMany({ entity: () => Student })
members!: Student[];
}

View file

@ -1,31 +1,31 @@
import {Student} from "../users/student.entity";
import {Group} from "./group.entity";
import {Entity, Enum, ManyToOne, PrimaryKey, Property} from "@mikro-orm/core";
import {Language} from "../content/language";
import { Student } from '../users/student.entity';
import { Group } from './group.entity';
import { Entity, Enum, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core';
import { Language } from '../content/language';
@Entity()
export class Submission {
@PrimaryKey({type: "string"})
@PrimaryKey({ type: 'string' })
learningObjectHruid!: string;
@Enum({items: () => Language, primary: true})
@Enum({ items: () => Language, primary: true })
learningObjectLanguage!: Language;
@PrimaryKey({type: "string"})
learningObjectVersion: string = "1";
@PrimaryKey({ type: 'string' })
learningObjectVersion: string = '1';
@PrimaryKey({type: "integer"})
@PrimaryKey({ type: 'integer' })
submissionNumber!: number;
@ManyToOne({entity: () => Student})
@ManyToOne({ entity: () => Student })
submitter!: Student;
@Property({type: "datetime"})
@Property({ type: 'datetime' })
submissionTime!: Date;
@ManyToOne({entity: () => Group, nullable: true})
@ManyToOne({ entity: () => Group, nullable: true })
onBehalfOf?: Group;
@Property({type: "json"})
@Property({ type: 'json' })
content!: string;
}

View file

@ -1,13 +1,13 @@
import {Entity, Enum, ManyToOne} from "@mikro-orm/core";
import {Student} from "../users/student.entity";
import {Class} from "./class.entity";
import { Entity, Enum, ManyToOne } from '@mikro-orm/core';
import { Student } from '../users/student.entity';
import { Class } from './class.entity';
@Entity()
export class ClassJoinRequest {
@ManyToOne({entity: () => Student, primary: true})
@ManyToOne({ entity: () => Student, primary: true })
requester!: Student;
@ManyToOne({entity: () => Class, primary: true})
@ManyToOne({ entity: () => Class, primary: true })
class!: Class;
@Enum(() => ClassJoinRequestStatus)
@ -15,7 +15,7 @@ export class ClassJoinRequest {
}
export enum ClassJoinRequestStatus {
Open = "open",
Accepted = "accepted",
Declined = "declined"
Open = 'open',
Accepted = 'accepted',
Declined = 'declined',
}

View file

@ -1,14 +1,20 @@
import {Collection, Entity, ManyToMany, PrimaryKey, Property} from "@mikro-orm/core";
import {
Collection,
Entity,
ManyToMany,
PrimaryKey,
Property,
} from '@mikro-orm/core';
import { v4 } from 'uuid';
import {Teacher} from "../users/teacher.entity";
import {Student} from "../users/student.entity";
import { Teacher } from '../users/teacher.entity';
import { Student } from '../users/student.entity';
@Entity()
export class Class {
@PrimaryKey()
classId = v4();
@Property({type: "string"})
@Property({ type: 'string' })
displayName!: string;
@ManyToMany(() => Teacher)

View file

@ -1,18 +1,18 @@
import {Entity, ManyToOne} from "@mikro-orm/core";
import {Teacher} from "../users/teacher.entity";
import {Class} from "./class.entity";
import { Entity, ManyToOne } from '@mikro-orm/core';
import { Teacher } from '../users/teacher.entity';
import { Class } from './class.entity';
/**
* Invitation of a teacher into a class (in order to teach it).
*/
@Entity()
export class TeacherInvitation {
@ManyToOne({entity: () => Teacher, primary: true})
@ManyToOne({ entity: () => Teacher, primary: true })
sender!: Teacher;
@ManyToOne({entity: () => Teacher, primary: true})
@ManyToOne({ entity: () => Teacher, primary: true })
receiver!: Teacher;
@ManyToOne({entity: () => Class, primary: true})
@ManyToOne({ entity: () => Class, primary: true })
class!: Class;
}

View file

@ -1,17 +1,17 @@
import {Entity, ManyToOne, PrimaryKey, Property} from "@mikro-orm/core";
import {LearningObject} from "./learning-object.entity";
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core';
import { LearningObject } from './learning-object.entity';
@Entity()
export class Attachment {
@ManyToOne({entity: () => LearningObject, primary: true})
@ManyToOne({ entity: () => LearningObject, primary: true })
learningObject!: LearningObject;
@PrimaryKey({type: "integer"})
@PrimaryKey({ type: 'integer' })
sequenceNumber!: number;
@Property({type: "string"})
@Property({ type: 'string' })
mimeType!: string;
@Property({type: "blob"})
@Property({ type: 'blob' })
content!: Buffer;
}

View file

@ -1,6 +1,6 @@
export enum Language {
Dutch = "nl",
French = "fr",
English = "en",
Germany = "de"
Dutch = 'nl',
French = 'fr',
English = 'en',
Germany = 'de',
}

View file

@ -1,7 +1,9 @@
import {Language} from "./language";
import { Language } from './language';
export class LearningObjectIdentifier {
constructor(public hruid: string, public language: Language, public version: string) {
}
constructor(
public hruid: string,
public language: Language,
public version: string
) {}
}

View file

@ -1,97 +1,106 @@
import {Embeddable, Embedded, Entity, Enum, ManyToMany, OneToMany, PrimaryKey, Property} from "@mikro-orm/core";
import {Language} from "./language";
import {Attachment} from "./attachment.entity";
import {Teacher} from "../users/teacher.entity";
import {
Embeddable,
Embedded,
Entity,
Enum,
ManyToMany,
OneToMany,
PrimaryKey,
Property,
} from '@mikro-orm/core';
import { Language } from './language';
import { Attachment } from './attachment.entity';
import { Teacher } from '../users/teacher.entity';
@Entity()
export class LearningObject {
@PrimaryKey({type: "string"})
@PrimaryKey({ type: 'string' })
hruid!: string;
@Enum({items: () => Language, primary: true})
@Enum({ items: () => Language, primary: true })
language!: Language;
@PrimaryKey({type: "string"})
version: string = "1";
@PrimaryKey({ type: 'string' })
version: string = '1';
@ManyToMany({entity: () => Teacher})
@ManyToMany({ entity: () => Teacher })
admins!: Teacher[];
@Property({type: "string"})
@Property({ type: 'string' })
title!: string;
@Property({type: "text"})
@Property({ type: 'text' })
description!: string;
@Property({type: "string"})
@Property({ type: 'string' })
contentType!: string;
@Property({type: "array"})
@Property({ type: 'array' })
keywords: string[] = [];
@Property({type: "array", nullable: true})
@Property({ type: 'array', nullable: true })
targetAges?: number[];
@Property({type: "bool"})
@Property({ type: 'bool' })
teacherExclusive: boolean = false;
@Property({type: "array"})
@Property({ type: 'array' })
skosConcepts!: string[];
@Embedded({entity: () => EducationalGoal, array: true})
@Embedded({ entity: () => EducationalGoal, array: true })
educationalGoals: EducationalGoal[] = [];
@Property({type: "string"})
copyright: string = ""
@Property({ type: 'string' })
copyright: string = '';
@Property({type: "string"})
license: string = ""
@Property({ type: 'string' })
license: string = '';
@Property({type: "smallint", nullable: true})
@Property({ type: 'smallint', nullable: true })
difficulty?: number;
@Property({type: "integer"})
@Property({ type: 'integer' })
estimatedTime!: number;
@Embedded({entity: () => ReturnValue})
@Embedded({ entity: () => ReturnValue })
returnValue!: ReturnValue;
@Property({type: "bool"})
@Property({ type: 'bool' })
available: boolean = true;
@Property({type: "string", nullable: true})
@Property({ type: 'string', nullable: true })
contentLocation?: string;
@OneToMany({entity: () => Attachment, mappedBy: "learningObject"})
@OneToMany({ entity: () => Attachment, mappedBy: 'learningObject' })
attachments: Attachment[] = [];
@Property({type: "blob"})
@Property({ type: 'blob' })
content!: Buffer;
}
@Embeddable()
export class EducationalGoal {
@Property({type: "string"})
@Property({ type: 'string' })
source!: string;
@Property({type: "string"})
@Property({ type: 'string' })
id!: string;
}
@Embeddable()
export class ReturnValue {
@Property({type: "string"})
@Property({ type: 'string' })
callbackUrl!: string;
@Property({type: "json"})
@Property({ type: 'json' })
callbackSchema!: string;
}
export enum ContentType {
Markdown = "text/markdown",
Image = "image/image",
Mpeg = "audio/mpeg",
Pdf = "application/pdf",
Extern = "extern",
Blockly = "Blockly"
Markdown = 'text/markdown',
Image = 'image/image',
Mpeg = 'audio/mpeg',
Pdf = 'application/pdf',
Extern = 'extern',
Blockly = 'Blockly',
}

View file

@ -1,57 +1,66 @@
import {Embeddable, Embedded, Entity, Enum, ManyToMany, OneToOne, PrimaryKey, Property} from "@mikro-orm/core";
import {Language} from "./language";
import {Teacher} from "../users/teacher.entity";
import {
Embeddable,
Embedded,
Entity,
Enum,
ManyToMany,
OneToOne,
PrimaryKey,
Property,
} from '@mikro-orm/core';
import { Language } from './language';
import { Teacher } from '../users/teacher.entity';
@Entity()
export class LearningPath {
@PrimaryKey({type: "string"})
@PrimaryKey({ type: 'string' })
hruid!: string;
@Enum({items: () => Language, primary: true})
@Enum({ items: () => Language, primary: true })
language!: Language;
@ManyToMany({entity: () => Teacher})
@ManyToMany({ entity: () => Teacher })
admins!: Teacher[];
@Property({type: "string"})
@Property({ type: 'string' })
title!: string;
@Property({type: "text"})
@Property({ type: 'text' })
description!: string;
@Property({type: "blob"})
@Property({ type: 'blob' })
image!: string;
@Embedded({entity: () => LearningPathNode, array: true})
@Embedded({ entity: () => LearningPathNode, array: true })
nodes: LearningPathNode[] = [];
}
@Embeddable()
export class LearningPathNode {
@Property({type: "string"})
@Property({ type: 'string' })
learningObjectHruid!: string;
@Enum({items: () => Language})
@Enum({ items: () => Language })
language!: Language;
@Property({type: "string"})
@Property({ type: 'string' })
version!: string;
@Property({type: "longtext"})
@Property({ type: 'longtext' })
instruction!: string;
@Property({type: "bool"})
@Property({ type: 'bool' })
startNode!: boolean;
@Embedded({entity: () => LearningPathTransition, array: true})
@Embedded({ entity: () => LearningPathTransition, array: true })
transitions!: LearningPathTransition[];
}
@Embeddable()
export class LearningPathTransition {
@Property({type: "string"})
@Property({ type: 'string' })
condition!: string;
@OneToOne({entity: () => LearningPathNode})
@OneToOne({ entity: () => LearningPathNode })
next!: LearningPathNode;
}

View file

@ -1,22 +1,21 @@
import {Entity, ManyToOne, PrimaryKey, Property} from "@mikro-orm/core";
import {Question} from "./question.entity";
import {Teacher} from "../users/teacher.entity";
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core';
import { Question } from './question.entity';
import { Teacher } from '../users/teacher.entity';
@Entity()
export class Answer {
@ManyToOne({entity: () => Teacher, primary: true})
@ManyToOne({ entity: () => Teacher, primary: true })
author!: Teacher;
@ManyToOne({entity: () => Question, primary: true})
@ManyToOne({ entity: () => Question, primary: true })
toQuestion!: Question;
@PrimaryKey({type: "integer"})
@PrimaryKey({ type: 'integer' })
sequenceNumber!: number;
@Property({type: "datetime"})
@Property({ type: 'datetime' })
timestamp: Date = new Date();
@Property({type: "text"})
@Property({ type: 'text' })
content!: string;
}

View file

@ -1,27 +1,27 @@
import {Entity, Enum, ManyToOne, PrimaryKey, Property} from "@mikro-orm/core";
import {Language} from "../content/language";
import {Student} from "../users/student.entity";
import { Entity, Enum, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core';
import { Language } from '../content/language';
import { Student } from '../users/student.entity';
@Entity()
export class Question {
@PrimaryKey({type: "string"})
@PrimaryKey({ type: 'string' })
learningObjectHruid!: string;
@Enum({items: () => Language, primary: true})
@Enum({ items: () => Language, primary: true })
learningObjectLanguage!: Language;
@PrimaryKey({type: "string"})
learningObjectVersion: string = "1";
@PrimaryKey({ type: 'string' })
learningObjectVersion: string = '1';
@PrimaryKey({type: "integer"})
@PrimaryKey({ type: 'integer' })
sequenceNumber!: number;
@ManyToOne({entity: () => Student})
@ManyToOne({ entity: () => Student })
author!: Student;
@Property({type: "datetime"})
@Property({ type: 'datetime' })
timestamp: Date = new Date();
@Property({type: "text"})
@Property({ type: 'text' })
content!: string;
}

View file

@ -1,10 +1,10 @@
import {User} from "./user.entity";
import {Collection, Entity, ManyToMany} from '@mikro-orm/core';
import {Class} from "../classes/class.entity";
import {Group} from "../assignments/group.entity";
import {StudentRepository} from "../../data/users/student-repository";
import { User } from './user.entity';
import { Collection, Entity, ManyToMany } from '@mikro-orm/core';
import { Class } from '../classes/class.entity';
import { Group } from '../assignments/group.entity';
import { StudentRepository } from '../../data/users/student-repository';
@Entity({repository: () => StudentRepository})
@Entity({ repository: () => StudentRepository })
export class Student extends User {
@ManyToMany(() => Class)
classes!: Collection<Class>;
@ -12,7 +12,11 @@ export class Student extends User {
@ManyToMany(() => Group)
groups!: Collection<Group>;
constructor(public username: string, public firstName: string, public lastName: string) {
constructor(
public username: string,
public firstName: string,
public lastName: string
) {
super();
}
}

View file

@ -1,6 +1,6 @@
import {Collection, Entity, ManyToMany} from '@mikro-orm/core';
import {User} from "./user.entity";
import {Class} from "../classes/class.entity";
import { Collection, Entity, ManyToMany } from '@mikro-orm/core';
import { User } from './user.entity';
import { Class } from '../classes/class.entity';
@Entity()
export class Teacher extends User {

View file

@ -1,8 +1,8 @@
import { Entity, PrimaryKey, Property } from '@mikro-orm/core';
@Entity({abstract: true})
@Entity({ abstract: true })
export abstract class User {
@PrimaryKey({type: "string"})
@PrimaryKey({ type: 'string' })
username!: string;
@Property()