diff --git a/src/adonisjs/app/Controllers/Http/v1/AuthController.js b/src/adonisjs/app/Controllers/Http/v1/AuthController.js index 47e2ba9..3aa8655 100644 --- a/src/adonisjs/app/Controllers/Http/v1/AuthController.js +++ b/src/adonisjs/app/Controllers/Http/v1/AuthController.js @@ -24,7 +24,7 @@ class AuthController { if (await auth.remember(true).attempt(email, password)) { const user = await User.findBy('email', email) - return response.json(user) + return response.json({user: user, response: 'Login successful'}) } } catch (e) { if (e.code === 'E_CANNOT_LOGIN') { @@ -38,6 +38,9 @@ class AuthController { } catch (e) { console.log(e) } + }else if(e.code === 'E_PASSWORD_MISMATCH' || e.code === 'E_USER_NOT_FOUND'){ + + return response.status(200).json({response: 'Email or password incorrect'}) } return response.status(e.status).json({ message: e.message }) } diff --git a/src/adonisjs/app/Controllers/Http/v1/UserController.js b/src/adonisjs/app/Controllers/Http/v1/UserController.js index 31dc448..7d0b4ce 100644 --- a/src/adonisjs/app/Controllers/Http/v1/UserController.js +++ b/src/adonisjs/app/Controllers/Http/v1/UserController.js @@ -107,14 +107,19 @@ class UserController { */ async update ({ params, request, response, auth }) { try { - const newUser = request.all() + const user = await User.find(params.id) - const storeduser = await User.find(params.id) + const updatedUser = { + username : request.input('username') || user.username, + email : request.input('email') || user.email, + login : request.input('login') || user.login, + grade : request.input('grade') || user.grade + } - if (storeduser != null) { - await storeduser.merge(newUser) - await storeduser.save() - return response.json(storeduser) + if (user != null) { + await user.merge(updatedUser) + await user.save() + return response.json(user) } else{ console.log('save user error'); return response.status(500).json('user not found') diff --git a/src/adonisjs/app/Models/Hooks/UserHook.js b/src/adonisjs/app/Models/Hooks/UserHook.js index b6751d0..902d539 100644 --- a/src/adonisjs/app/Models/Hooks/UserHook.js +++ b/src/adonisjs/app/Models/Hooks/UserHook.js @@ -5,5 +5,10 @@ const Hash = use('Hash') const UserHook = exports = module.exports = {} UserHook.hashPassword = async (user) => { - user.password = await Hash.make(user.password) + if (user.dirty.password) { + // console.log('Hashing password') + user.password = await Hash.make(user.password) + } + + } diff --git a/src/adonisjs/app/Models/v1/User.js b/src/adonisjs/app/Models/v1/User.js index 958bae1..8acc36f 100644 --- a/src/adonisjs/app/Models/v1/User.js +++ b/src/adonisjs/app/Models/v1/User.js @@ -84,7 +84,7 @@ class User extends Model { * it to the database. */ this.addHook('beforeCreate', 'UserHook.hashPassword') - this.addHook('beforeUpdate', 'UserHook.hashPassword') + this.addHook('beforeSave', 'UserHook.hashPassword') }