File: /home/imensosw/www/amanda/app/Http/Controllers/AccountSettingController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use Illuminate\Support\Facades\Hash;
use Session;
use DB;
use Auth;
use App\General_detail;
use App\AdminProfileImage;
class AccountSettingController extends Controller
{
public function index()
{
// $user = User::where(array('id'=>Auth::user()->id))->first();
$user = User::leftjoin('general_detail as gd','gd.user_id','users.id')
->where(array('users.id'=>Auth::user()->id))
->select('users.*','gd.location','gd.age','gd.height','gd.weight','gd.hair','gd.eye','gd.phone','gd.message_per_price')
->get();
$AdminProfileImage = AdminProfileImage::where('user_id',Auth::user()->id)->get();
$data = [
'user' =>$user[0],
'adminProfileImage' => $AdminProfileImage,
];
return response()->json($data,200);
}
public function updateProfile(Request $request)
{
$request->validate ([
'name' => 'required|string|max:255',
'email' =>'required|email|max:255|unique:users,email,'.$request->id,
'location' => 'required',
'phone' => 'required',
'height' => 'required|numeric',
'weight' => 'required|numeric',
'age' => 'required|numeric',
]);
$user=User::find($request->id);
$user->name=$request->name;
$user->email=$request->email;
// $user->save();
if($user->save()){
$isExist = General_detail::where(array('user_id'=>$request->id))->exists();
if($isExist){
$general_detail = General_detail::where('user_id', $request->id)
->update([
'location' => $request->location,
'phone' => $request->phone,
'age' => $request->age,
'height' => $request->height,
'weight' => $request->weight,
'eye' => $request->eye,
'hair' => $request->hair,
]);
}
else{
$general_detail = General_detail::create([
'user_id' => $request->id,
'location' => $request->location,
'phone' => $request->phone,
'age' => $request->age,
'height' => $request->height,
'weight' => $request->weight,
'eye' => $request->eye,
'hair' => $request->hair,
]);
}
if ($request->hasfile('images')) {
$checkProfileAboutImage = AdminProfileImage::where('user_id',\Auth::user()->id)->count();
if($checkProfileAboutImage>0){
AdminProfileImage::where('user_id', \Auth::user()->id)->delete();
}
foreach ($request->file('images') as $file) {
$image = $file;
$extension = $image->getClientOriginalExtension();
$imageName = rand(111,999).time().".".$extension;
$image->move(config('constants.imageFolderPath')."/images/",$imageName);
$data = "/api/imagesView/$imageName";
$AdminProfileImage = AdminProfileImage::create([
'user_id' => \Auth::user()->id,
'image' => $imageName,
]);
}
}
}
return response()->json([
'status' => (bool) $user,
'data' => $user,
'message' => $user ? 'Update Profile!' : 'Error Profile Update'
]);
}
public function updateMessagePerPrice(Request $request)
{
$request->validate ([
// 'name' => 'required|string|max:255',
]);
$isExist = General_detail::where(array('user_id'=>$request->id))->exists();
if($isExist){
$general_detail = General_detail::where('user_id', $request->id)
->update([
'message_per_price' => $request->message_per_price,
]);
return response()->json([
'status' => (bool) $general_detail,
'data' => $general_detail,
'message' => $general_detail ? 'Update Message Price!' : 'Error Message Price Update'
]);
}
else{
return response()->json([
'status' => false,
'message' => 'User does not exists'
]);
}
}
public function updatePassword(Request $request)
{
$request->validate ([
// 'current_password'=>'required',
'password' => 'required|same:password|min:6',
'confirm_password' => 'required|same:password|min:6',
]);
/*$current_password = \Auth::user()->password;
if(!Hash::check($request['current_password'],$current_password)){
return response()->json(array('status'=>false,'action'=>'error','errors'=>"The current password does not match"),404);
}
if(Hash::check($request['current_password'],$current_password))
{
$user=User::find(Auth::user()->id);
$user->password = Hash::make($request->password);
$user->save();
}*/
if($request->password){
$user=User::find(Auth::user()->id);
$user->password = Hash::make($request->password);
$user->save();
}
return response()->json([
'status' => (bool) $user,
'data' => $user,
'message' => $user ? 'Password Change!' : 'Error Change Password'
]);
}
public function deleteProfileImage($id)
{
// $status= Product_image::where(array('id'=>$id))->delete();
$profile_image = AdminProfileImage::find($id);
if(!empty($profile_image)){
$image_path = config('constants.imageFolderPath')."/images/".$profile_image->fileName;
if (file_exists($image_path)) {
@unlink($image_path);
}
}
$status = $profile_image->delete();
return response()->json([
'status' => $status,
'message' => $status ? 'Profile Image Deleted!' : 'Error Deleting Profile Image'
]);
}
}