Skip to content

Commit 3e75a6a

Browse files
author
maharshi
committed
User Profile Update and Create API for Update Profile
1 parent 60e21ac commit 3e75a6a

File tree

14 files changed

+556
-126
lines changed

14 files changed

+556
-126
lines changed

.idea/workspace.xml

Lines changed: 13 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/Http/Controllers/APIController.php

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
namespace App\Http\Controllers;
44
use Illuminate\Http\Request;
55
use App\User;
6+
use Illuminate\Support\Facades\Hash;
7+
use Illuminate\Support\Facades\Validator;
8+
use Illuminate\Validation\Rule;
69
use JWTAuth;
710
use JWTAuthException;
811

@@ -33,4 +36,46 @@ public function profile()
3336
return response()->json($response, 201);
3437
}
3538

39+
public function updateProfile(Request $request)
40+
{
41+
try{
42+
$user = JWTAuth::parseToken()->authenticate();
43+
$validator = Validator::make($request->all(), [
44+
'name' => ['required', 'string', 'min:6','max:20'],
45+
'email' => ['required', 'email', Rule::unique('users')->ignore($user->id)],
46+
]);
47+
48+
if(!empty($request->password)){
49+
$validator = Validator::make($request->all(), [
50+
'password' => ['sometimes','required', 'string', 'min:6'],
51+
'password_confirmation' => ['sometimes','required','string', 'min:6','different:password'],
52+
]);
53+
}
54+
55+
if ($validator->fails()) {
56+
return response()->json([
57+
'success' => false,
58+
'message' => $validator->errors()->first()
59+
]);
60+
}
61+
62+
$user->name = $request->name;
63+
$user->email = $request->email;
64+
65+
if(!empty($request->password_confirmation)){
66+
if (!(Hash::check($request->password, $user->password))) {
67+
return response()->json(['success' => false,'message' => 'Please enter valid previous password']);
68+
}
69+
$user->password = Hash::make($request->password_confirmation);
70+
}
71+
$user->save();
72+
73+
$response = ['success'=> true,'message' => 'Profile updated !!','data'=> $user];
74+
}catch (\Exception $e){
75+
$response = ['success'=> false,'message' => '','data'=> $e->getMessage()];
76+
}
77+
return response()->json($response, 201);
78+
}
79+
80+
3681
}

app/User.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class User extends Authenticatable implements JWTSubject
1818
* @var array
1919
*/
2020
protected $fillable = [
21-
'name', 'email', 'password',
21+
'name', 'email', 'password','avatar'
2222
];
2323

2424
/**
@@ -58,4 +58,14 @@ public function getJWTCustomClaims()
5858
{
5959
return [];
6060
}
61+
62+
public function getAvatarAttribute($value)
63+
{
64+
if(empty($value)){
65+
return asset('images/avatar.png');
66+
}else{
67+
return asset('storage/avatar/'.$value);
68+
}
69+
}
70+
6171
}

public/images/auth.jpg

100644100755
File mode changed.

public/images/avatar-s-1.png

100644100755
File mode changed.

public/images/avatar.png

99.6 KB
Loading

public/images/logo.svg

100644100755
File mode changed.

0 commit comments

Comments
 (0)