<?php namespace App\Http\Controllers\API; use App\Http\Controllers\Controller; use App\User; use Illuminate\Http\Request; class UserController extends Controller { public function allUsers() { return response()->json(['users' => User::all()], 200); } public function getProfile() { return response()->json(['user' => Auth::user()], 201); } public function getUser($id) { try { $user = User::findOrFail($id); return response()->json(['user' => $user], 200); } catch (\Exception $e) { return response()->json(['message' => 'user not found!'], 404); } } public function updateProfile(Request $request) { $this->validate($request, [ 'name' => 'required|string', 'email' => 'required|email|', 'password' => 'confirmed', ]); try { $user = Auth::user(); if( $user->name != $request->name) { $user->name = $request->name; } if( $user->email != $request->email){ $this->validate($request, [ 'email' => 'unique:users']); $user->email = $request->email; } if( isset($request->password)) { $plainPassword = $request->input('password'); $user->password = app('hash')->make($plainPassword); } $user->save(); return response()->json(['user' => $user], 200); } catch (\Exception $e) { return response()->json(['message' => 'user not found!'], 404); } } public function updateUser(Request $request, $id) { $this->validate($request, [ 'name' => 'required|string', 'role' => 'required|string', 'email' => 'required|email|', 'password' => 'confirmed', ]); try { $user = User::findOrFail($id); if( $user->name != $request->name) { $user->name = $request->name; } if( $user->email != $request->email){ $this->validate($request, [ 'email' => 'unique:users']); $user->email = $request->email; } if( isset($request->password)) { $plainPassword = $request->input('password'); $user->password = app('hash')->make($plainPassword); } $user->save(); return response()->json(['user' => $user], 200); } catch (\Exception $e) { return response()->json(['message' => 'user not found!'], 404); } } public function deleteUser($id) { try { $user = User::findOrFail($id); $user->delete(); return response()->json(['message' => 'user successfully deleted'], 404); } catch (\Exception $e) { return response()->json(['message' => 'user not found!'], 404); } } }