style(backend): Format
This commit is contained in:
parent
c37d4d8e04
commit
ddee299b4a
25 changed files with 265 additions and 150 deletions
|
@ -22,7 +22,6 @@ const logger: Logger = getLogger();
|
|||
const app: Express = express();
|
||||
const port: string | number = getNumericEnvVar(EnvVars.Port);
|
||||
|
||||
|
||||
app.use(express.json());
|
||||
app.use(responseTime(responseTimeLogger));
|
||||
|
||||
|
|
|
@ -7,6 +7,6 @@ export const DWENGO_API_BASE: string = 'https://dwengo.org/backend/api';
|
|||
// Logging
|
||||
|
||||
export const LOG_LEVEL: string =
|
||||
'development' === process.env.NODE_ENV ? 'debug' : 'info';
|
||||
'development' === process.env.NODE_ENV ? 'debug' : 'info';
|
||||
export const LOKI_HOST: string =
|
||||
process.env.LOKI_HOST || 'http://localhost:3102';
|
||||
process.env.LOKI_HOST || 'http://localhost:3102';
|
||||
|
|
|
@ -57,7 +57,10 @@ export async function getLearningPaths(
|
|||
);
|
||||
res.json(learningPaths.data);
|
||||
} catch (error) {
|
||||
getLogger().error('❌ Unexpected error fetching learning paths:', error);
|
||||
getLogger().error(
|
||||
'❌ Unexpected error fetching learning paths:',
|
||||
error
|
||||
);
|
||||
res.status(500).json({ error: 'Internal server error' });
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,12 @@ import { Language } from '../content/language.js';
|
|||
|
||||
@Entity()
|
||||
export class Assignment {
|
||||
@ManyToOne({ entity: () => {return Class}, primary: true })
|
||||
@ManyToOne({
|
||||
entity: () => {
|
||||
return Class;
|
||||
},
|
||||
primary: true,
|
||||
})
|
||||
within!: Class;
|
||||
|
||||
@PrimaryKey({ type: 'number' })
|
||||
|
@ -27,9 +32,18 @@ export class Assignment {
|
|||
@Property({ type: 'string' })
|
||||
learningPathHruid!: string;
|
||||
|
||||
@Enum({ items: () => {return Language} })
|
||||
@Enum({
|
||||
items: () => {
|
||||
return Language;
|
||||
},
|
||||
})
|
||||
learningPathLanguage!: Language;
|
||||
|
||||
@OneToMany({ entity: () => {return Group}, mappedBy: 'assignment' })
|
||||
@OneToMany({
|
||||
entity: () => {
|
||||
return Group;
|
||||
},
|
||||
mappedBy: 'assignment',
|
||||
})
|
||||
groups!: Group[];
|
||||
}
|
||||
|
|
|
@ -4,12 +4,21 @@ import { Student } from '../users/student.entity.js';
|
|||
|
||||
@Entity()
|
||||
export class Group {
|
||||
@ManyToOne({ entity: () => {return Assignment}, primary: true })
|
||||
@ManyToOne({
|
||||
entity: () => {
|
||||
return Assignment;
|
||||
},
|
||||
primary: true,
|
||||
})
|
||||
assignment!: Assignment;
|
||||
|
||||
@PrimaryKey({ type: 'integer' })
|
||||
groupNumber!: number;
|
||||
|
||||
@ManyToMany({ entity: () => {return Student} })
|
||||
@ManyToMany({
|
||||
entity: () => {
|
||||
return Student;
|
||||
},
|
||||
})
|
||||
members!: Student[];
|
||||
}
|
||||
|
|
|
@ -8,7 +8,12 @@ export class Submission {
|
|||
@PrimaryKey({ type: 'string' })
|
||||
learningObjectHruid!: string;
|
||||
|
||||
@Enum({ items: () => {return Language}, primary: true })
|
||||
@Enum({
|
||||
items: () => {
|
||||
return Language;
|
||||
},
|
||||
primary: true,
|
||||
})
|
||||
learningObjectLanguage!: Language;
|
||||
|
||||
@PrimaryKey({ type: 'string' })
|
||||
|
@ -17,13 +22,22 @@ export class Submission {
|
|||
@PrimaryKey({ type: 'integer' })
|
||||
submissionNumber!: number;
|
||||
|
||||
@ManyToOne({ entity: () => {return Student} })
|
||||
@ManyToOne({
|
||||
entity: () => {
|
||||
return Student;
|
||||
},
|
||||
})
|
||||
submitter!: Student;
|
||||
|
||||
@Property({ type: 'datetime' })
|
||||
submissionTime!: Date;
|
||||
|
||||
@ManyToOne({ entity: () => {return Group}, nullable: true })
|
||||
@ManyToOne({
|
||||
entity: () => {
|
||||
return Group;
|
||||
},
|
||||
nullable: true,
|
||||
})
|
||||
onBehalfOf?: Group;
|
||||
|
||||
@Property({ type: 'json' })
|
||||
|
|
|
@ -4,13 +4,25 @@ import { Class } from './class.entity.js';
|
|||
|
||||
@Entity()
|
||||
export class ClassJoinRequest {
|
||||
@ManyToOne({ entity: () => {return Student}, primary: true })
|
||||
@ManyToOne({
|
||||
entity: () => {
|
||||
return Student;
|
||||
},
|
||||
primary: true,
|
||||
})
|
||||
requester!: Student;
|
||||
|
||||
@ManyToOne({ entity: () => {return Class}, primary: true })
|
||||
@ManyToOne({
|
||||
entity: () => {
|
||||
return Class;
|
||||
},
|
||||
primary: true,
|
||||
})
|
||||
class!: Class;
|
||||
|
||||
@Enum(() => {return ClassJoinRequestStatus})
|
||||
@Enum(() => {
|
||||
return ClassJoinRequestStatus;
|
||||
})
|
||||
status!: ClassJoinRequestStatus;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,9 +17,13 @@ export class Class {
|
|||
@Property({ type: 'string' })
|
||||
displayName!: string;
|
||||
|
||||
@ManyToMany(() => {return Teacher})
|
||||
@ManyToMany(() => {
|
||||
return Teacher;
|
||||
})
|
||||
teachers!: Collection<Teacher>;
|
||||
|
||||
@ManyToMany(() => {return Student})
|
||||
@ManyToMany(() => {
|
||||
return Student;
|
||||
})
|
||||
students!: Collection<Student>;
|
||||
}
|
||||
|
|
|
@ -7,12 +7,27 @@ import { Class } from './class.entity.js';
|
|||
*/
|
||||
@Entity()
|
||||
export class TeacherInvitation {
|
||||
@ManyToOne({ entity: () => {return Teacher}, primary: true })
|
||||
@ManyToOne({
|
||||
entity: () => {
|
||||
return Teacher;
|
||||
},
|
||||
primary: true,
|
||||
})
|
||||
sender!: Teacher;
|
||||
|
||||
@ManyToOne({ entity: () => {return Teacher}, primary: true })
|
||||
@ManyToOne({
|
||||
entity: () => {
|
||||
return Teacher;
|
||||
},
|
||||
primary: true,
|
||||
})
|
||||
receiver!: Teacher;
|
||||
|
||||
@ManyToOne({ entity: () => {return Class}, primary: true })
|
||||
@ManyToOne({
|
||||
entity: () => {
|
||||
return Class;
|
||||
},
|
||||
primary: true,
|
||||
})
|
||||
class!: Class;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,12 @@ import { LearningObject } from './learning-object.entity.js';
|
|||
|
||||
@Entity()
|
||||
export class Attachment {
|
||||
@ManyToOne({ entity: () => {return LearningObject}, primary: true })
|
||||
@ManyToOne({
|
||||
entity: () => {
|
||||
return LearningObject;
|
||||
},
|
||||
primary: true,
|
||||
})
|
||||
learningObject!: LearningObject;
|
||||
|
||||
@PrimaryKey({ type: 'integer' })
|
||||
|
|
|
@ -17,13 +17,22 @@ export class LearningObject {
|
|||
@PrimaryKey({ type: 'string' })
|
||||
hruid!: string;
|
||||
|
||||
@Enum({ items: () => {return Language}, primary: true })
|
||||
@Enum({
|
||||
items: () => {
|
||||
return Language;
|
||||
},
|
||||
primary: true,
|
||||
})
|
||||
language!: Language;
|
||||
|
||||
@PrimaryKey({ type: 'string' })
|
||||
version: string = '1';
|
||||
|
||||
@ManyToMany({ entity: () => {return Teacher} })
|
||||
@ManyToMany({
|
||||
entity: () => {
|
||||
return Teacher;
|
||||
},
|
||||
})
|
||||
admins!: Teacher[];
|
||||
|
||||
@Property({ type: 'string' })
|
||||
|
@ -47,7 +56,12 @@ export class LearningObject {
|
|||
@Property({ type: 'array' })
|
||||
skosConcepts!: string[];
|
||||
|
||||
@Embedded({ entity: () => {return EducationalGoal}, array: true })
|
||||
@Embedded({
|
||||
entity: () => {
|
||||
return EducationalGoal;
|
||||
},
|
||||
array: true,
|
||||
})
|
||||
educationalGoals: EducationalGoal[] = [];
|
||||
|
||||
@Property({ type: 'string' })
|
||||
|
@ -62,7 +76,11 @@ export class LearningObject {
|
|||
@Property({ type: 'integer' })
|
||||
estimatedTime!: number;
|
||||
|
||||
@Embedded({ entity: () => {return ReturnValue} })
|
||||
@Embedded({
|
||||
entity: () => {
|
||||
return ReturnValue;
|
||||
},
|
||||
})
|
||||
returnValue!: ReturnValue;
|
||||
|
||||
@Property({ type: 'bool' })
|
||||
|
@ -71,7 +89,12 @@ export class LearningObject {
|
|||
@Property({ type: 'string', nullable: true })
|
||||
contentLocation?: string;
|
||||
|
||||
@OneToMany({ entity: () => {return Attachment}, mappedBy: 'learningObject' })
|
||||
@OneToMany({
|
||||
entity: () => {
|
||||
return Attachment;
|
||||
},
|
||||
mappedBy: 'learningObject',
|
||||
})
|
||||
attachments: Attachment[] = [];
|
||||
|
||||
@Property({ type: 'blob' })
|
||||
|
|
|
@ -16,10 +16,19 @@ export class LearningPath {
|
|||
@PrimaryKey({ type: 'string' })
|
||||
hruid!: string;
|
||||
|
||||
@Enum({ items: () => {return Language}, primary: true })
|
||||
@Enum({
|
||||
items: () => {
|
||||
return Language;
|
||||
},
|
||||
primary: true,
|
||||
})
|
||||
language!: Language;
|
||||
|
||||
@ManyToMany({ entity: () => {return Teacher} })
|
||||
@ManyToMany({
|
||||
entity: () => {
|
||||
return Teacher;
|
||||
},
|
||||
})
|
||||
admins!: Teacher[];
|
||||
|
||||
@Property({ type: 'string' })
|
||||
|
@ -31,7 +40,12 @@ export class LearningPath {
|
|||
@Property({ type: 'blob' })
|
||||
image!: string;
|
||||
|
||||
@Embedded({ entity: () => {return LearningPathNode}, array: true })
|
||||
@Embedded({
|
||||
entity: () => {
|
||||
return LearningPathNode;
|
||||
},
|
||||
array: true,
|
||||
})
|
||||
nodes: LearningPathNode[] = [];
|
||||
}
|
||||
|
||||
|
@ -40,7 +54,11 @@ export class LearningPathNode {
|
|||
@Property({ type: 'string' })
|
||||
learningObjectHruid!: string;
|
||||
|
||||
@Enum({ items: () => {return Language} })
|
||||
@Enum({
|
||||
items: () => {
|
||||
return Language;
|
||||
},
|
||||
})
|
||||
language!: Language;
|
||||
|
||||
@Property({ type: 'string' })
|
||||
|
@ -52,7 +70,12 @@ export class LearningPathNode {
|
|||
@Property({ type: 'bool' })
|
||||
startNode!: boolean;
|
||||
|
||||
@Embedded({ entity: () => {return LearningPathTransition}, array: true })
|
||||
@Embedded({
|
||||
entity: () => {
|
||||
return LearningPathTransition;
|
||||
},
|
||||
array: true,
|
||||
})
|
||||
transitions!: LearningPathTransition[];
|
||||
}
|
||||
|
||||
|
@ -61,6 +84,10 @@ export class LearningPathTransition {
|
|||
@Property({ type: 'string' })
|
||||
condition!: string;
|
||||
|
||||
@OneToOne({ entity: () => {return LearningPathNode} })
|
||||
@OneToOne({
|
||||
entity: () => {
|
||||
return LearningPathNode;
|
||||
},
|
||||
})
|
||||
next!: LearningPathNode;
|
||||
}
|
||||
|
|
|
@ -4,10 +4,20 @@ import { Teacher } from '../users/teacher.entity';
|
|||
|
||||
@Entity()
|
||||
export class Answer {
|
||||
@ManyToOne({ entity: () => {return Teacher}, primary: true })
|
||||
@ManyToOne({
|
||||
entity: () => {
|
||||
return Teacher;
|
||||
},
|
||||
primary: true,
|
||||
})
|
||||
author!: Teacher;
|
||||
|
||||
@ManyToOne({ entity: () => {return Question}, primary: true })
|
||||
@ManyToOne({
|
||||
entity: () => {
|
||||
return Question;
|
||||
},
|
||||
primary: true,
|
||||
})
|
||||
toQuestion!: Question;
|
||||
|
||||
@PrimaryKey({ type: 'integer' })
|
||||
|
|
|
@ -7,7 +7,12 @@ export class Question {
|
|||
@PrimaryKey({ type: 'string' })
|
||||
learningObjectHruid!: string;
|
||||
|
||||
@Enum({ items: () => {return Language}, primary: true })
|
||||
@Enum({
|
||||
items: () => {
|
||||
return Language;
|
||||
},
|
||||
primary: true,
|
||||
})
|
||||
learningObjectLanguage!: Language;
|
||||
|
||||
@PrimaryKey({ type: 'string' })
|
||||
|
@ -16,7 +21,11 @@ export class Question {
|
|||
@PrimaryKey({ type: 'integer' })
|
||||
sequenceNumber!: number;
|
||||
|
||||
@ManyToOne({ entity: () => {return Student} })
|
||||
@ManyToOne({
|
||||
entity: () => {
|
||||
return Student;
|
||||
},
|
||||
})
|
||||
author!: Student;
|
||||
|
||||
@Property({ type: 'datetime' })
|
||||
|
|
|
@ -4,12 +4,20 @@ import { Class } from '../classes/class.entity.js';
|
|||
import { Group } from '../assignments/group.entity.js';
|
||||
import { StudentRepository } from '../../data/users/student-repository.js';
|
||||
|
||||
@Entity({ repository: () => {return StudentRepository} })
|
||||
@Entity({
|
||||
repository: () => {
|
||||
return StudentRepository;
|
||||
},
|
||||
})
|
||||
export class Student extends User {
|
||||
@ManyToMany(() => {return Class})
|
||||
@ManyToMany(() => {
|
||||
return Class;
|
||||
})
|
||||
classes!: Collection<Class>;
|
||||
|
||||
@ManyToMany(() => {return Group})
|
||||
@ManyToMany(() => {
|
||||
return Group;
|
||||
})
|
||||
groups!: Collection<Group>;
|
||||
|
||||
constructor(
|
||||
|
|
|
@ -4,6 +4,8 @@ import { Class } from '../classes/class.entity.js';
|
|||
|
||||
@Entity()
|
||||
export class Teacher extends User {
|
||||
@ManyToMany(() => {return Class})
|
||||
@ManyToMany(() => {
|
||||
return Class;
|
||||
})
|
||||
classes!: Collection<Class>;
|
||||
}
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
import express from 'express'
|
||||
import express from 'express';
|
||||
const router = express.Router();
|
||||
|
||||
// Root endpoint used to search objects
|
||||
router.get('/', (req, res) => {
|
||||
res.json({
|
||||
assignments: [
|
||||
'0',
|
||||
'1',
|
||||
]
|
||||
assignments: ['0', '1'],
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -17,7 +14,7 @@ router.get('/:id', (req, res) => {
|
|||
id: req.params.id,
|
||||
title: 'Dit is een test assignment',
|
||||
description: 'Een korte beschrijving',
|
||||
groups: [ '0' ],
|
||||
groups: ['0'],
|
||||
learningPath: '0',
|
||||
class: '0',
|
||||
links: {
|
||||
|
@ -25,30 +22,24 @@ router.get('/:id', (req, res) => {
|
|||
submissions: `${req.baseUrl}/${req.params.id}`,
|
||||
},
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
router.get('/:id/submissions', (req, res) => {
|
||||
res.json({
|
||||
submissions: [
|
||||
'0'
|
||||
],
|
||||
submissions: ['0'],
|
||||
});
|
||||
});
|
||||
|
||||
router.get('/:id/groups', (req, res) => {
|
||||
res.json({
|
||||
groups: [
|
||||
'0'
|
||||
],
|
||||
groups: ['0'],
|
||||
});
|
||||
});
|
||||
|
||||
router.get('/:id/questions', (req, res) => {
|
||||
res.json({
|
||||
questions: [
|
||||
'0'
|
||||
],
|
||||
questions: ['0'],
|
||||
});
|
||||
});
|
||||
|
||||
export default router
|
||||
export default router;
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
import express from 'express'
|
||||
import express from 'express';
|
||||
const router = express.Router();
|
||||
|
||||
// Root endpoint used to search objects
|
||||
router.get('/', (req, res) => {
|
||||
res.json({
|
||||
classes: [
|
||||
'0',
|
||||
'1',
|
||||
]
|
||||
classes: ['0', '1'],
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -16,40 +13,34 @@ router.get('/:id', (req, res) => {
|
|||
res.json({
|
||||
id: req.params.id,
|
||||
displayName: 'Klas 4B',
|
||||
teachers: [ '0' ],
|
||||
students: [ '0' ],
|
||||
joinRequests: [ '0' ],
|
||||
teachers: ['0'],
|
||||
students: ['0'],
|
||||
joinRequests: ['0'],
|
||||
links: {
|
||||
self: `${req.baseUrl}/${req.params.id}`,
|
||||
classes: `${req.baseUrl}/${req.params.id}/invitations`,
|
||||
questions: `${req.baseUrl}/${req.params.id}/assignments`,
|
||||
students: `${req.baseUrl}/${req.params.id}/students`,
|
||||
}
|
||||
},
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
router.get('/:id/invitations', (req, res) => {
|
||||
res.json({
|
||||
invitations: [
|
||||
'0'
|
||||
],
|
||||
invitations: ['0'],
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
router.get('/:id/assignments', (req, res) => {
|
||||
res.json({
|
||||
assignments: [
|
||||
'0'
|
||||
],
|
||||
assignments: ['0'],
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
router.get('/:id/students', (req, res) => {
|
||||
res.json({
|
||||
students: [
|
||||
'0'
|
||||
],
|
||||
students: ['0'],
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
export default router
|
||||
export default router;
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
import express from 'express'
|
||||
import express from 'express';
|
||||
const router = express.Router();
|
||||
|
||||
// Root endpoint used to search objects
|
||||
router.get('/', (req, res) => {
|
||||
res.json({
|
||||
groups: [
|
||||
'0',
|
||||
'1',
|
||||
]
|
||||
groups: ['0', '1'],
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -16,19 +13,19 @@ router.get('/:id', (req, res) => {
|
|||
res.json({
|
||||
id: req.params.id,
|
||||
assignment: '0',
|
||||
students: [ '0' ],
|
||||
submissions: [ '0' ],
|
||||
students: ['0'],
|
||||
submissions: ['0'],
|
||||
// Reference to other endpoint
|
||||
// Should be less hardcoded
|
||||
questions: `/group/${req.params.id}/question`,
|
||||
questions: `/group/${req.params.id}/question`,
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
// The list of questions a group has made
|
||||
router.get('/:id/question', (req, res) => {
|
||||
res.json({
|
||||
questions: [ '0' ],
|
||||
questions: ['0'],
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
export default router
|
||||
export default router;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import express from 'express'
|
||||
import express from 'express';
|
||||
const router = express.Router();
|
||||
|
||||
// Returns login paths for IDP
|
||||
|
@ -9,6 +9,6 @@ router.get('/', (req, res) => {
|
|||
leerkracht: '/login-leerkracht',
|
||||
leerling: '/login-leerling',
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
export default router
|
||||
export default router;
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
import express from 'express'
|
||||
import express from 'express';
|
||||
const router = express.Router();
|
||||
|
||||
// Root endpoint used to search objects
|
||||
router.get('/', (req, res) => {
|
||||
res.json({
|
||||
questions: [
|
||||
'0',
|
||||
'1',
|
||||
]
|
||||
questions: ['0', '1'],
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -18,21 +15,20 @@ router.get('/:id', (req, res) => {
|
|||
student: '0',
|
||||
group: '0',
|
||||
time: new Date(2025, 1, 1),
|
||||
content: 'Zijn alle gehele getallen groter dan 2 gelijk aan de som van 2 priemgetallen????',
|
||||
content:
|
||||
'Zijn alle gehele getallen groter dan 2 gelijk aan de som van 2 priemgetallen????',
|
||||
learningObject: '0',
|
||||
links: {
|
||||
self: `${req.baseUrl}/${req.params.id}`,
|
||||
answers: `${req.baseUrl}/${req.params.id}/answers`,
|
||||
}
|
||||
},
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
router.get('/:id/answers', (req, res) => {
|
||||
res.json({
|
||||
answers: [
|
||||
'0'
|
||||
],
|
||||
})
|
||||
})
|
||||
answers: ['0'],
|
||||
});
|
||||
});
|
||||
|
||||
export default router
|
||||
export default router;
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
import express from 'express'
|
||||
import express from 'express';
|
||||
const router = express.Router();
|
||||
|
||||
// Root endpoint used to search objects
|
||||
router.get('/', (req, res) => {
|
||||
res.json({
|
||||
students: [
|
||||
'0',
|
||||
'1',
|
||||
]
|
||||
students: ['0', '1'],
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -30,30 +27,29 @@ router.get('/:id', (req, res) => {
|
|||
// The list of classes a student is in
|
||||
router.get('/:id/classes', (req, res) => {
|
||||
res.json({
|
||||
classes: [ '0' ],
|
||||
classes: ['0'],
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
// The list of submissions a student has made
|
||||
router.get('/:id/submissions', (req, res) => {
|
||||
res.json({
|
||||
submissions: [ '0' ],
|
||||
submissions: ['0'],
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
// The list of assignments a student has
|
||||
router.get('/:id/assignments', (req, res) => {
|
||||
res.json({
|
||||
assignments: [ '0' ],
|
||||
assignments: ['0'],
|
||||
});
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
// The list of groups a student is in
|
||||
router.get('/:id/groups', (req, res) => {
|
||||
res.json({
|
||||
groups: [ '0' ],
|
||||
groups: ['0'],
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
export default router
|
||||
export default router;
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
import express from 'express'
|
||||
import express from 'express';
|
||||
const router = express.Router();
|
||||
|
||||
// Root endpoint used to search objects
|
||||
router.get('/', (req, res) => {
|
||||
res.json({
|
||||
submissions: [
|
||||
'0',
|
||||
'1',
|
||||
]
|
||||
submissions: ['0', '1'],
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -21,6 +18,6 @@ router.get('/:id', (req, res) => {
|
|||
content: 'Wortel 2 is rationeel',
|
||||
learningObject: '0',
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
export default router
|
||||
export default router;
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
import express from 'express'
|
||||
import express from 'express';
|
||||
const router = express.Router();
|
||||
|
||||
// Root endpoint used to search objects
|
||||
router.get('/', (req, res) => {
|
||||
res.json({
|
||||
teachers: [
|
||||
'0',
|
||||
'1',
|
||||
]
|
||||
teachers: ['0', '1'],
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -25,34 +22,27 @@ router.get('/:id', (req, res) => {
|
|||
invitations: `${req.baseUrl}/${req.params.id}/invitations`,
|
||||
},
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
// The questions students asked a teacher
|
||||
router.get('/:id/questions', (req, res) => {
|
||||
res.json({
|
||||
questions: [
|
||||
'0'
|
||||
],
|
||||
questions: ['0'],
|
||||
});
|
||||
});
|
||||
|
||||
// Invitations to other classes a teacher received
|
||||
router.get('/:id/invitations', (req, res) => {
|
||||
res.json({
|
||||
invitations: [
|
||||
'0'
|
||||
],
|
||||
invitations: ['0'],
|
||||
});
|
||||
});
|
||||
|
||||
// A list with ids of classes a teacher is in
|
||||
router.get('/:id/classes', (req, res) => {
|
||||
res.json({
|
||||
classes: [
|
||||
'0'
|
||||
],
|
||||
classes: ['0'],
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
export default router
|
||||
export default router;
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
import { fetchWithLogging } from '../util/apiHelper.js';
|
||||
import { DWENGO_API_BASE } from '../config.js';
|
||||
import { LearningPath, LearningPathResponse } from '../interfaces/learningPath.js';
|
||||
import {
|
||||
LearningPath,
|
||||
LearningPathResponse,
|
||||
} from '../interfaces/learningPath.js';
|
||||
import { getLogger, Logger } from '../logging/initalize.js';
|
||||
|
||||
const logger: Logger = getLogger();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue