File: /var/www/admin.javaapp.co.uk/app/Services/CafeService.php
<?php
namespace App\Services;
use App\Helpers\Aws;
use App\Models\CafeRequest;
use App\Models\CafeTiming;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class CafeService
{
private $model;
public function __construct($model)
{
$this->model = new $model();
}
public function updateProfile($request)
{
DB::beginTransaction();
try {
$update = [];
$userExist = CafeRequest::where('email', $request->email)->first();
if ($userExist) {
DB::rollback();
session()->flash('error_message', __('validation.validation.email.unique'));
return redirect()->back();
}
$update['cafe_name'] = $request->cafe_name;
$update['email'] = $request->email;
$update['phone'] = $request->phone;
$update['cafe_type'] = isset($request->cafe_type) ? $request->cafe_type : 0;
$update['bio'] = $request->bio;
$update['address'] = $request->address;
$update['postcode'] = $request->postcode;
$update['cafe_filter'] = implode(', ', $request->cafe_filter);
$update['website'] = isset($request->website) ? $request->website : '';
$update['latitude'] = isset($request->latitude) ? $request->latitude : 0;
$update['longitude'] = isset($request->longitude) ? $request->longitude : 0;
$update['profile_completed'] = 1;
$update['updated_at'] = Carbon::now()->timestamp;
$cafe = $this->model->where('id', Auth::user()->id)->first();
if (isset($request->picture__input) && is_file($request->picture__input)) {
$update['banner_image'] = Aws::uploadImageS3Bucket('images/cafe', $request->picture__input, Auth::user()->banner_image);
} else {
if ($cafe->banner_image == '') {
DB::rollback();
session()->flash('error_message', __('validation.validation.image.required'));
return redirect()->back();
}
}
$cafe->update($update);
DB::commit();
session()->flash('success_message', __('common.profileUpdatedSuccessfully'));
return redirect()->route('cafe.myProfile');
} catch (\Throwable $th) {
DB::rollback();
session()->flash('error_message', __('common.somethingWentWrong'));
return redirect()->back();
}
}
public function updateCafeHours($request)
{
DB::beginTransaction();
try {
// foreach ($request->cafe as $key => $value) {
// $cafe_time = [
// 'open_time' => $value['open_time'],
// 'close_time' => $value['close_time'],
// 'is_active' => isset($value['is_active']) ? $value['is_active'] : 0,
// 'updated_at' => Carbon::now()->timestamp,
// ];
// CafeTiming::where([['day', '==', $key], ['cafe_id', '==', Auth::user()->id]])->update($cafe_time);
// }
$cafe = $request->cafe;
CafeTiming::chunk(7, function ($cafeTiming) use ($cafe) {
// CafeTiming::chunk(7, function ($cafeTiming) use ($cafe) {
foreach ($cafe as $key => $value) {
$cafe_time = [
'open_time' => $value['open_time'],
'close_time' => $value['close_time'],
'is_active' => isset($value['is_active']) ? $value['is_active'] : 0,
'updated_at' => Carbon::now()->timestamp,
];
CafeTiming::where('cafe_id', Auth::user()->id)->where('day', $key)->update($cafe_time);
// CafeTiming::where([['day', '==', $key], ['cafe_id', '==', Auth::user()->id]])->update($cafe_time);
}
});
DB::commit();
session()->flash('success_message', __('common.setCafeHoursSuccessfully'));
return response()->json([
'status' => 200,
'message' => __('common.setCafeHoursSuccessfully'),
'goto' => route('cafe.editProfile')
]);
// return redirect()->route('cafe.editProfile');
} catch (\Throwable $th) {
DB::rollback();
return response()->json([
'status' => 500,
'message' => __('common.somethingWentWrong'),
]);
// session()->flash('error_message', __('common.somethingWentWrong'));
// return redirect()->back();
}
}
}