Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • add_route_assignments
  • ask-user-to-delete-exercises-on-duplicates
  • bedran_exercise-list
  • jw_sonar
  • jw_sonar_backup
  • main
  • update-dependencies
  • v6.0.0
  • 2.0.0
  • 2.1.0
  • 2.2.0
  • 3.0.0
  • 3.0.1
  • 3.1.0
  • 3.1.1
  • 3.1.2
  • 3.1.3
  • 3.2.0
  • 3.3.0
  • 3.4.0
  • 3.4.1
  • 3.4.2
  • 3.5.0
  • 3.5.1
  • 3.5.2
  • 3.5.3
  • 4.0.0
  • 4.1.0
  • 5.0.0
  • 5.0.1
  • 6.0.0-dev
  • v1.0.1
32 results

Target

Select target project
  • Dojo_Project_Nguyen/backend/dojobackendapi
  • dojo_project/projects/backend/dojobackendapi
2 results
Select Git revision
  • add_route_assignments
  • ask-user-to-delete-exercises-on-duplicates
  • bedran_exercise-list
  • jw_sonar
  • jw_sonar_backup
  • main
  • update-dependencies
  • v6.0.0
  • 2.0.0
  • 2.1.0
  • 2.2.0
  • 3.0.0
  • 3.0.1
  • 3.1.0
  • 3.1.1
  • 3.1.2
  • 3.1.3
  • 3.2.0
  • 3.3.0
  • 3.4.0
  • 3.4.1
  • 3.4.2
  • 3.5.0
  • 3.5.1
  • 3.5.2
  • 3.5.3
  • 4.0.0
  • 4.1.0
  • 5.0.0
  • 5.0.1
  • 6.0.0-dev
  • v1.0.1
32 results
Show changes
Commits on Source (3)
import User from '../models/User';
import db from '../helpers/DatabaseHelper';
class UserManager {
private static _instance: UserManager;
private constructor() { }
public static get instance(): UserManager {
if ( !UserManager._instance ) {
UserManager._instance = new UserManager();
}
return UserManager._instance;
}
createObjectFromRawSql(raw: any): User {
return User.createFromSql(raw);
}
async getByMail(mail: string): Promise<User | undefined> {
const raw = await db<User>(User.tableName).where('userMail', mail).first();
return raw ? this.createObjectFromRawSql(raw) : undefined;
}
async getById(id: number): Promise<User | undefined> {
const raw = await db<User>(User.tableName).where('userID', id).first();
return raw ? this.createObjectFromRawSql(raw) : undefined;
}
async getByIds(ids: Array<number>): Promise<Array<User>> {
return Promise.all(ids.map(userId => this.getById(userId)));
}
}
export default UserManager.instance;
......@@ -7,6 +7,8 @@ import db from '../helpers/DatabaseHelper';
class User extends Model {
static tableName: string = 'Users';
userID: number = null;
userFirstName: string = '';
userLastName: string = '';
......
import { Express } from 'express-serve-static-core';
import RoutesManager from '../express/RoutesManager';
import BaseRoutes from './BaseRoutes';
import SessionRoutes from './SessionRoutes';
class AdminRoutesManager implements RoutesManager {
......@@ -18,6 +19,7 @@ class AdminRoutesManager implements RoutesManager {
registerOnBackend(backend: Express) {
BaseRoutes.registerOnBackend(backend);
SessionRoutes.registerOnBackend(backend);
}
}
......
import { Express } from 'express-serve-static-core';
import express from 'express';
import * as ExpressValidator from 'express-validator';
import { StatusCodes } from 'http-status-codes';
import * as bcrypt from 'bcryptjs';
import RoutesManager from '../express/RoutesManager';
import ParamsValidatorMiddleware from '../middlewares/ParamsValidatorMiddleware';
import ApiRequest from '../models/ApiRequest';
import UserManager from '../managers/UserManager';
import User from '../models/User';
class SessionRoutes implements RoutesManager {
private static _instance: SessionRoutes;
private constructor() { }
public static get instance(): SessionRoutes {
if ( !SessionRoutes._instance ) {
SessionRoutes._instance = new SessionRoutes();
}
return SessionRoutes._instance;
}
private readonly loginValidator: ExpressValidator.Schema = {
mail : {
trim : true,
notEmpty: true
},
password: {
trim : true,
notEmpty: true
}
};
registerOnBackend(backend: Express) {
backend.post('/login', ParamsValidatorMiddleware.validate(this.loginValidator), this.login);
}
private async login(req: ApiRequest, res: express.Response) {
const params: { mail: string, password: string } = req.body;
const user: User | undefined = await UserManager.getByMail(params.mail);
if ( user ) {
if ( bcrypt.compareSync(params.password, user.userPassword) ) {
req.session.profile = user;
req.session.sendResponse(res, StatusCodes.OK);
return;
}
}
req.session.sendResponse(res, StatusCodes.NOT_FOUND);
}
}
export default SessionRoutes.instance;