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

ParamsCallbackManager => Add userId

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