Skip to content
Snippets Groups Projects
Commit 0c94879d authored by michael.minelli's avatar michael.minelli
Browse files

ParamsCallbackManager => Add userId

parent 98688c68
No related branches found
No related tags found
No related merge requests found
......@@ -5,6 +5,13 @@ import * as Gitlab from '@gitbeaker/rest';
class UserManager {
async getFiltered(filters: Prisma.UserWhereInput | undefined, include: Prisma.UserInclude | undefined = undefined): Promise<Array<User> | undefined> {
return await db.user.findMany({
where : filters,
include: include
}) as unknown as Array<User> ?? undefined;
}
async getByMail(mail: string, include: Prisma.UserInclude | undefined = undefined): Promise<User | undefined> {
return await db.user.findUnique({
where : {
......@@ -14,10 +21,10 @@ class UserManager {
}) as unknown as User ?? undefined;
}
async getById(id: number, include: Prisma.UserInclude | undefined = undefined): Promise<User | undefined> {
async getById(id: string | number, include: Prisma.UserInclude | undefined = undefined): Promise<User | undefined> {
return await db.user.findUnique({
where : {
id: id
id: Number(id)
},
include: include
}) as unknown as User ?? undefined;
......
......@@ -5,6 +5,7 @@ import ExerciseManager from '../managers/ExerciseManager';
import AssignmentManager from '../managers/AssignmentManager';
import TagManager from '../managers/TagManager';
import TagProposalManager from '../managers/TagProposalManager';
import UserManager from '../managers/UserManager';
type GetFunction = (id: string | number, ...args: Array<unknown>) => Promise<unknown>
......@@ -29,6 +30,7 @@ class ParamsCallbackManager {
initBoundParams(req: express.Request) {
if ( !req.boundParams ) {
req.boundParams = {
user : undefined,
assignment : undefined,
exercise : undefined,
tag : undefined,
......@@ -38,13 +40,31 @@ class ParamsCallbackManager {
}
registerOnBackend(backend: Express) {
this.listenParam('userId', backend, (UserManager.getById as GetFunction).bind(UserManager), [ {
assignments: true,
exercises : {
include: {
members : true,
assignment: {
include: {
staff: true
}
}
}
}
} ], 'user');
this.listenParam('assignmentNameOrUrl', backend, (AssignmentManager.get as GetFunction).bind(AssignmentManager), [ {
exercises: true,
staff : true
} ], 'assignment');
this.listenParam('exerciseIdOrUrl', backend, (ExerciseManager.get as GetFunction).bind(ExerciseManager), [ {
assignment: true,
assignment: {
include: {
staff: true
}
},
members : true,
results : true
} ], 'exercise');
......
import Session from '../../controllers/Session.js';
import { Assignment, Exercise, Tag } from '../DatabaseTypes';
import { TagProposal } from '@prisma/client';
import Session from '../../controllers/Session.js';
import { Assignment, Exercise, Tag, User } from '../DatabaseTypes';
import { TagProposal } from '@prisma/client';
// to make the file a module and avoid the TypeScript error
export {};
......@@ -10,7 +10,7 @@ declare global {
export interface Request {
session: Session,
boundParams: {
assignment: Assignment | undefined, exercise: Exercise | undefined, tag: Tag | undefined, tagProposal: TagProposal | undefined
user: User | undefined, assignment: Assignment | undefined, exercise: Exercise | undefined, tag: Tag | undefined, tagProposal: TagProposal | undefined
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment