44
55use Illuminate \Http \Request ;
66use Dingo \Api \Routing \Helpers ;
7- use App \Http \Controllers \Controller ;
87use Illuminate \Support \Facades \Auth ;
8+ use App \Http \Controllers \Controller ;
9+ use Illuminate \Contracts \Hashing \Hasher ;
10+ use Dingo \Api \Exception \ResourceException ;
911use App \Transformers \Users \UserTransformer ;
1012
1113/**
@@ -36,7 +38,7 @@ public function update(Request $request)
3638 'name ' => 'required ' ,
3739 'email ' => 'required|email|unique:users,email, ' .$ user ->id ,
3840 ];
39- if ($ request ->method () == "PATCH " ) {
41+ if ($ request ->method () == "PATCH " ) {
4042 $ rules = [
4143 'name ' => 'sometimes|required ' ,
4244 'email ' => 'sometimes|required|email|unique:users,email, ' .$ user ->id ,
@@ -48,4 +50,25 @@ public function update(Request $request)
4850 return $ this ->response ->item ($ user ->fresh (), new UserTransformer ());
4951 }
5052
53+ /**
54+ * @param Request $request
55+ * @return \Dingo\Api\Http\Response
56+ */
57+ public function updatePassword (Request $ request )
58+ {
59+ $ user = Auth::user ();
60+ $ this ->validate ($ request , [
61+ 'current_password ' => 'required ' ,
62+ 'password ' => 'required|min:8|confirmed '
63+ ]);
64+ // verify the old password given is valid
65+ if (!app (Hasher::class)->check ($ request ->get ('current_password ' ), $ user ->password )) {
66+ throw new ResourceException ('Validation Issue ' , [
67+ 'old_password ' => 'The current password is incorrect '
68+ ]);
69+ }
70+ $ user ->password = bcrypt ($ request ->get ('password ' ));
71+ $ user ->save ();
72+ return $ this ->response ->item ($ user ->fresh (), new UserTransformer ());
73+ }
5174}
0 commit comments