Server IP : 66.29.132.124 / Your IP : 3.137.177.204 Web Server : LiteSpeed System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : wavevlvu ( 1524) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/wavevlvu/book24.ng/modules/Vendor/Controllers/ |
Upload File : |
<?php namespace Modules\Vendor\Controllers; use App\Helpers\ReCaptchaEngine; use App\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Validator; use Illuminate\Support\MessageBag; use Matrix\Exception; use Modules\FrontendController; use Modules\User\Events\NewVendorRegistered; use Modules\User\Events\SendMailUserRegistered; use Modules\Vendor\Models\VendorRequest; use Modules\Booking\Models\Booking; class VendorController extends FrontendController { protected $bookingClass; public function __construct() { $this->bookingClass = Booking::class; parent::__construct(); } public function register(Request $request) { $rules = [ 'first_name' => [ 'required', 'string', 'max:255' ], 'last_name' => [ 'required', 'string', 'max:255' ], 'business_name' => [ 'required', 'string', 'max:255' ], 'email' => [ 'required', 'string', 'email', 'max:255', 'unique:users' ], 'password' => [ 'required', 'string' ], 'term' => ['required'], ]; $messages = [ 'email.required' => __('Email is required field'), 'email.email' => __('Email invalidate'), 'password.required' => __('Password is required field'), 'first_name.required' => __('The first name is required field'), 'last_name.required' => __('The last name is required field'), 'business_name.required' => __('The business name is required field'), 'term.required' => __('The terms and conditions field is required'), ]; if (ReCaptchaEngine::isEnable() and setting_item("user_enable_register_recaptcha")) { $messages['g-recaptcha-response.required'] = __('Please verify the captcha'); $rules['g-recaptcha-response'] = ['required']; } $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return response()->json([ 'error' => true, 'messages' => $validator->errors() ], 200); } else { if (ReCaptchaEngine::isEnable() and setting_item("user_enable_register_recaptcha")) { $codeCapcha = $request->input('g-recaptcha-response'); if (!ReCaptchaEngine::verify($codeCapcha)) { $errors = new MessageBag(['message_error' => __('Please verify the captcha')]); return response()->json([ 'error' => true, 'messages' => $errors ], 200); } } $user = new \App\User(); $user = $user->fill([ 'first_name'=>$request->input('first_name'), 'last_name'=>$request->input('last_name'), 'email'=>$request->input('email'), 'password'=>Hash::make($request->input('password')), 'business_name'=>$request->input('business_name'), 'phone'=>$request->input('phone'), ]); $user->status = 'publish'; $user->save(); if (empty($user)) { return $this->sendError(__("Can not register")); } // check vendor auto approved $vendorAutoApproved = setting_item('vendor_auto_approved'); $dataVendor['role_request'] = setting_item('vendor_role'); if ($vendorAutoApproved) { if ($dataVendor['role_request']) { $user->assignRole($dataVendor['role_request']); } $dataVendor['status'] = 'approved'; $dataVendor['approved_time'] = now(); } else { $dataVendor['status'] = 'pending'; $user->assignRole('customer'); } $vendorRequestData = $user->vendorRequest()->save(new VendorRequest($dataVendor)); Auth::loginUsingId($user->id); try { event(new NewVendorRegistered($user, $vendorRequestData)); } catch (Exception $exception) { Log::warning("NewVendorRegistered: " . $exception->getMessage()); } if ($vendorAutoApproved) { return $this->sendSuccess([ 'redirect' => url(app_get_locale(false, '/')), ]); } else { return $this->sendSuccess([ 'redirect' => url(app_get_locale(false, '/')), ], __("Register success. Please wait for admin approval")); } } } public function bookingReport(Request $request) { $data = [ 'bookings' => $this->bookingClass::getBookingHistory($request->input('status'), false, Auth::id()), 'statues' => config('booking.statuses'), 'breadcrumbs' => [ [ 'name' => __('Booking Report'), 'class' => 'active' ], ], 'page_title' => __("Booking Report"), ]; return view('Vendor::frontend.bookingReport.index', $data); } }