HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
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();
        }
    }
}