Files
gsf/app/Http/Controllers/API/ProfileController.php

195 lines
8.6 KiB
PHP
Raw Normal View History

2024-08-09 17:11:41 +05:30
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Validator;
use App\Models\UserDetail;
use App\Models\CompanyMaster;
use App\Models\User;
use Illuminate\Support\Facades\File;
use Auth;
class ProfileController extends Controller {
public function profileUpdate(Request $request) {
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$user = auth()->user();
// print_r($user);exit;
// check validation
$validator = Validator::make($request->all(), [
'full_name'=>'required',
'bio' => 'required|string|min:6',
'description' => 'required|string|min:6',
'gender' => 'required|in:male,female',
'age' => 'required',
'full_address' => 'required',
'city' => 'required',
'height' => 'required',
// 'weight' => 'required',
// 'profile_picture' => 'required|image|mimes:jpg,png,jpeg,gif',
]);
if ($validator->fails()) {
return response()->json([
'success' => false,
'error' => $validator->errors()], 401);
}
$profile_completed_status = User::select('status')->find($user_id);
if ($profile_completed_status->status == 0) {
$UserDetail = new UserDetail;
$UserDetail->user_id = $user_id;
$UserDetail->user_bio = $request->input('bio');
$UserDetail->description = $request->input('description');
$UserDetail->gender = $request->input('gender');
$UserDetail->age = $request->input('age');
$UserDetail->full_address = $request->input('full_address');
$UserDetail->city = $request->input('city');
$UserDetail->height = $request->input('height');
// $UserDetail->weight = $request->input('weight');
if ($request->hasFile('profile_picture')) {
$file = $request->file('profile_picture');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/profile_images/';
$file->move($path, $file_name);
$UserDetail->profile_picture = url('/public/uploads/profile_images/' . $file_name);
}
$UserDetail->save();
User::where('id', $user_id)->update(array('status' => '1'));
$msg = "Profile Completed Successfully.";
} else {
$user = UserDetail::where('user_id', $user_id)->first();
// $file_name = $user->profile_picture;
$UserDetails = UserDetail::where('user_id', $user_id)->first();
$UserDetails->user_bio = $request->input('bio');
$UserDetails->description = $request->input('description');
$UserDetails->gender = $request->input('gender');
$UserDetails->age = $request->input('age');
$UserDetails->full_address = $request->input('full_address');
$UserDetails->city = $request->input('city');
$UserDetails->height = $request->input('height');
// 'weight' => $request->input('weight'),
if ($request->hasFile('profile_picture')) {
$file = $request->file('profile_picture');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/profile_images/';
$file->move($path, $file_name);
// delete previous file
$previous_image = public_path('/uploads/profile_images/' . $user->profile_picture);
$delete_prv_image = File::delete($previous_image);
$UserDetails->profile_picture = url('/public/uploads/profile_images/' . $file_name);
}
// $UserDetails->profile_picture = url('/public/uploads/profile_images/' . $file_name);
$UserDetails->save();
User::where('id', $user_id)->update(array('full_name' => $request->input('full_name')));
$msg = "Profile Updated Successfully.";
}
$user = User::with('user_detail')->where('id', $user_id)->first()->toArray();
// $user = User::select('id','full_name','contact_number','email_id','status')->where('id',$user->id)->first()->toArray();
return response()->json([
'success' => true,
'status' => true,
'message'=> $msg,
'authorisation' => [
'token' => null,
'user_data' =>$user,
'type' => 'bearer',
]
],200);
// return response()->json([
// 'success' => true,
// 'status' => true,
// 'message' => $msg,
// 'authorisation' => [
// 'token' => null,
// 'user_detail' =>$user,
// 'type' => 'bearer',
// ],
// ]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("Update Complete/Update Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
/**
* Created By : Pradyumn Dwivedi
* Created at : 06 Feb 2023
* Use : To display list of User data
*/
public function index() {
try {
// print_r(User::first()->user);exit;
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$data = User::with('user_detail')->where('id', $user_id)->first();
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'authorisation' => [
'user_data' => $data
]
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
public function viewProfile() {
try {
// print_r(User::first()->user);exit;
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$data = User::with('user_detail')->get();
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $data
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
}