11import dotenv from 'dotenv' ;
22dotenv . config ( ) ;
33
4- // import { SaveUser, GetUser, UserModel } from '../models/userSchema'; // Temporarily commented out
4+ import User , { IUser } from '../models/user' ;
55import bcrypt from "bcryptjs" ;
66import jwt from "jsonwebtoken" ;
77import { log } from "mercedlogger" ;
@@ -10,43 +10,39 @@ const SECRET_KEY = process.env.SECRET_KEY ? process.env.SECRET_KEY : "SECRET_KEY
1010log . magenta ( "SECRET KEY FOUND : " + SECRET_KEY ) ;
1111
1212const register = async ( req , callback ) => {
13- // try {
14- // const { username, email, password } = req;
15- // const pw = await bcrypt.hash(password, 12);
16- // const user = new UserModel( username, email, pw); // UserModel is from the deleted file
17- // const token = createJWT(user);
18- // log.magenta("REGISTER", 'User Created Successfully' + username);
19- // await SaveUser( user); // SaveUser is from the deleted file
13+ try {
14+ const { username, email, password } = req ;
15+ const pw = await bcrypt . hash ( password , 12 ) ;
16+ const user = new User ( { username, email, password : pw } ) ;
17+ const token = createJWT ( user ) ;
18+ log . magenta ( "REGISTER" , 'User Created Successfully' + username ) ;
19+ await user . save ( ) ;
2020
21- // callback(null, { token });
22- // } catch (error) {
23- // log.red("REGISTER", 'Could not register' + error);
24- // callback({ error: error.message }, null);
25- // }
26- log . warn ( "userService.register is currently disabled due to missing models/userSchema.ts" ) ;
27- callback ( { error : "Registration is temporarily disabled." } , null ) ;
21+ callback ( null , { token } ) ;
22+ } catch ( error ) {
23+ log . red ( "REGISTER" , 'Could not register' + error ) ;
24+ callback ( { error : error . message } , null ) ;
25+ }
2826}
2927
3028const login = async ( req , callback ) => {
31- // try {
32- // const { username, password } = req;
33- // const user = await GetUser(username); // GetUser is from the deleted file
34- // if (await bcrypt.compare(password, user.password)) {
35- // const token = createJWT(user);
36- // callback(null, { token: token, username: user.username });
37- // } else {
38- // callback({ error: "Invalid Credentials" });
39- // }
40- // } catch (error) {
41- // callback({ error: error.message }, null);
42- // }
43- log . warn ( "userService.login is currently disabled due to missing models/userSchema.ts" ) ;
44- callback ( { error : "Login is temporarily disabled." } , null ) ;
29+ try {
30+ const { username, password } = req ;
31+ const user = await User . findOne ( { username : username } ) ;
32+ if ( user && await bcrypt . compare ( password , user . password ) ) {
33+ const token = createJWT ( user ) ;
34+ callback ( null , { token : token , username : user . username } ) ;
35+ } else {
36+ callback ( { error : "Invalid Credentials" } ) ;
37+ }
38+ } catch ( error ) {
39+ callback ( { error : error . message } , null ) ;
40+ }
4541}
4642
47- const createJWT = ( user ) => { // user type here was UserModel, will need adjustment if used
43+ const createJWT = ( user : IUser ) => {
4844 return jwt . sign (
49- { user } , // This 'user' object structure might need to align with actual User model from models/user.ts
45+ { user } ,
5046 SECRET_KEY ,
5147 { expiresIn : "24h" }
5248 ) ;
0 commit comments