File tree Expand file tree Collapse file tree 2 files changed +48
-0
lines changed Expand file tree Collapse file tree 2 files changed +48
-0
lines changed Original file line number Diff line number Diff line change 1+ import { NextFunction , Request , Response } from "express" ;
2+ import { logger } from "../logger" ;
3+ import { AppDataSource } from "../data-source" ;
4+ import { User } from "../models/user" ;
5+
6+
7+ export async function login (
8+ request : Request , response : Response , next :NextFunction ) {
9+
10+ try {
11+
12+ logger . debug ( `Called login()` ) ;
13+
14+ const { email, password} = request . body ;
15+
16+ if ( ! email ) {
17+ throw `Could not extract the email from the request, aborting.` ;
18+ }
19+
20+ if ( ! password ) {
21+ throw `Could not extract the plain text password from the request, aborting.` ;
22+ }
23+
24+ const user = await AppDataSource
25+ . getRepository ( User )
26+ . createQueryBuilder ( "users" )
27+ . where ( "email = :email" , { email} )
28+ . getOne ( ) ;
29+
30+ if ( ! user ) {
31+ const message = `Login denied.` ;
32+ logger . info ( `${ message } - ${ email } ` ) ;
33+ response . status ( 403 ) . json ( { message} ) ;
34+ return ;
35+ }
36+
37+
38+
39+ }
40+ catch ( error ) {
41+ logger . error ( `Error calling login()` ) ;
42+ return next ( error ) ;
43+ }
44+
45+ }
Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ import {updateCourse} from "./routes/update-course";
2121import { createCourse } from "./routes/create-course" ;
2222import { deleteCourseAndLessons } from "./routes/delete-course" ;
2323import { createUser } from "./routes/create-user" ;
24+ import { login } from "./routes/login" ;
2425
2526const cors = require ( "cors" ) ;
2627
@@ -51,6 +52,8 @@ function setupExpress() {
5152
5253 app . route ( "/api/users" ) . post ( createUser ) ;
5354
55+ app . route ( "/api/login" ) . post ( login ) ;
56+
5457 app . use ( defaultErrorHandler ) ;
5558
5659}
You can’t perform that action at this time.
0 commit comments