Files
freeu-project/app/Http/Controllers/Frontend/ProfileController.php
Ritikesh yadav c661166e1d first commit
2024-03-28 14:52:40 +05:30

184 lines
7.1 KiB
PHP

<?php
namespace App\Http\Controllers\Frontend;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use App\Models\User;
class ProfileController extends Controller
{
public function index()
{
$user = $this->getUser();
return view('Frontend.Pages.profile.investor-profile', compact('user'));
}
public function edit()
{
$user = $this->getUser();
return view('Frontend.Pages.profile.investor-profile-edit', compact('user'));
}
public function update(Request $request)
{
// dd($request->all());
$validator = Validator::make($request->all(), [
'name' => 'required|regex:/^[a-zA-Z ]+$/u|max:255',
'email' => 'required|unique:users,email,' . $request->id . '',
'contact_number' => 'required|numeric|digits:10|unique:users,contact_number,' . $request->id . '',
'profile_image' => 'image|mimes:jpeg,jpg,png|max:2000',
'address' => 'required'
], [
'required' => 'The :attribute field must be required',
'unique' => 'The :attribute field must be unique',
'numeric' => 'The :attribute field must be in digits',
'digits' => 'The :attribute field must have 10 digits',
// 'profile_image.mimes' => 'The :attribute can only be of type jpeg,jpg,png'
]);
$validationMessage = $this->validationError($validator);
if ($validationMessage) {
return response()->json(['status' => 400, 'message' => $validationMessage]);
}
// dd($request->all());
$user = User::where('id', $request->id)->first();
// dd($user,$user['profile_image'] ,$user->profile_image,$request->profile_image);
// return $user->getRawOriginal('profile_image');
// if ($request->has('profile_image')) {
// if (\File::exists(public_path('/uploads/profile/img/' . $user->getRawOriginal('profile_image') . ''))) {
// \File::delete(public_path('/uploads/profile/img/' . $user->getRawOriginal('profile_image') . ''));
// }
// $profileImageName = time() . '.' . $request->profile_image->extension();
// $request->profile_image->move(public_path('/uploads/profile/img'), $profileImageName);
// $updateCompanyLogo = User::where('id', $request->id)->update([
// 'profile_image' => $profileImageName,
// ]);
// }
// dd($request->profile_image);
// dd($this->imageUpload($request->profile_image,$request->id));
$image = $request->has('profile_image') ? $this->imageUpload($request->profile_image, $request->id) : $user->getRawOriginal('profile_image');
// if($request->has('profile_image'))
// {
// $image = $this->imageUpload($request->profile_image,$request->id);
// }
// else
// {
// $image = $user->profile_image;
// }
// dd($image);
$addUser = User::where('id', $request->id)->update([
'name' => $request->name,
'contact_number' => $request->contact_number,
'address' => $request->address,
'email' => $request->email,
'profile_image' => $image,
]);
if ($addUser) {
return response()->json(['status' => 200, 'message' => 'Details Updated Successfully!']);
}
return response()->json(['status' => 400, 'message' => 'Error Updating Details!']);
}
public function imageUpload($image, $id)
{
$user = User::where('id', $id)->first();
if ($image) {
if (\File::exists(public_path('/uploads/profile/img/' . $user->getRawOriginal('profile_image') . ''))) {
\File::delete(public_path('/uploads/profile/img/' . $user->getRawOriginal('profile_image') . ''));
}
$profileImageName = time() . '.' . $image->extension();
$image->move(public_path('/uploads/profile/img'), $profileImageName);
return $profileImageName;
// $updateCompanyLogo = User::where('id', $request->id)->update([
// 'profile_image' => $profileImageName,
// ]);
}
}
public function updateAPI(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required',
'contact_number' => 'required|min:10|max:10|unique:users,contact_number,' . $request->user()->id . '',
// 'profile_image' => 'required',
'address' => 'required'
], [
'required' => 'The :attribute field must be required',
'unique' => 'The :attribute field must be unique',
'min' => 'The :attribute field must be :min digits',
'max' => 'The :attribute field must be :max digits'
]);
$validationMessage = $this->validationError($validator);
if ($validationMessage) {
return response()->json(['status' => 400, 'message' => $validationMessage], 400);
}
$user = User::find($request->user()->id);
if ($request->has('profile_image')) {
if (\File::exists(public_path('/uploads/profile/img/' . $user->profile_image . ''))) {
\File::delete(public_path('/uploads/profile/img/' . $user->profile_image . ''));
}
$profileImageName = time() . '.' . $request->profile_image->extension();
$request->profile_image->move(public_path('/uploads/profile/img'), $profileImageName);
$updateCompanyLogo = User::where('id', $request->user()->id)->update([
'profile_image' => $profileImageName,
]);
}
$addUser = User::where('id', $request->user()->id)->update([
'name' => $request->name,
'email' => $request->email,
'contact_number' => $request->contact_number,
'address' => $request->address
]);
if ($addUser) {
return response()->json(['status' => 200, 'message' => 'Details Updated Successfully!']);
}
return response()->json(['status' => 400, 'message' => 'Error Updating Details!'], 400);
}
public function getUser()
{
try {
$user = User::find(auth()->guard('users')->user()->id);
$user = collect([
'name' => $user->name,
'email' => $user->email,
'contact_number' => $user->contact_number,
'address' => $user->address,
'profile_image' => $user->profile_image,
]);
return ($user);
// ->response()
// ->setStatusCode(200);
} catch (\Exception $e) {
return response()->json(['message' => $e->getMessage()], 400);
}
}
public function validationError($validator)
{
if ($validator->fails()) {
$errors = $validator->errors();
$messages = '';
foreach ($errors->all() as $message) {
$messages .= $message . '</br>';
}
return $messages;
}
}
}