![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/job-board.corals.io/Corals/modules/Reservation/Http/Controllers/ |
<?php namespace Corals\Modules\Reservation\Http\Controllers; use Corals\Foundation\Http\Controllers\BaseController; use Corals\Modules\Reservation\DataTables\ServicesDataTable; use Corals\Modules\Reservation\Http\Requests\ServiceRequest; use Corals\Modules\Reservation\Models\Service; use Corals\Modules\Reservation\Services\ServiceService; use Illuminate\Http\Request; class ServicesController extends BaseController { protected $serviceService; public function __construct(ServiceService $serviceService) { $this->serviceService = $serviceService; $this->resource_url = config('reservation.models.service.resource_url'); $this->title = trans('Reservation::module.service.title'); $this->title_singular = trans('Reservation::module.service.title_singular'); parent::__construct(); } /** * @param ServiceRequest $request * @param ServicesDataTable $dataTable * @return mixed */ public function index(ServiceRequest $request, ServicesDataTable $dataTable) { return $dataTable->render('Reservation::services.index'); } /** * @param ServiceRequest $request * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function create(ServiceRequest $request) { $service = new Service; $serviceSchedules = $this->serviceService->getServiceSchedule($service); $this->setViewSharedData(['title_singular' => trans('Corals::labels.create_title', ['title' => $this->title_singular])]); return view('Reservation::services.create_edit')->with(compact('service', 'serviceSchedules')); } /** * @param ServiceRequest $request * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function store(ServiceRequest $request) { try { $service = $this->serviceService->store($request, Service::class); flash(trans('Corals::messages.success.created', ['item' => $this->title_singular]))->success(); } catch (\Exception $exception) { log_exception($exception, Service::class, 'store'); } return redirectTo($this->resource_url); } /** * @param ServiceRequest $request * @param Service $service * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function show(ServiceRequest $request, Service $service) { $this->setViewSharedData([ 'title_singular' => trans('Corals::labels.show_title', ['title' => $service->getIdentifier('code')]), 'showModel' => $service, ]); $serviceSchedules = $this->serviceService->getServiceSchedule($service); return view('Reservation::services.show')->with(compact('service', 'serviceSchedules')); } /** * @param ServiceRequest $request * @param Service $service * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function edit(ServiceRequest $request, Service $service) { $this->setViewSharedData(['title_singular' => trans('Corals::labels.update_title', ['title' => $service->getIdentifier('code')])]); $serviceSchedules = $this->serviceService->getServiceSchedule($service); return view('Reservation::services.create_edit')->with(compact('service', 'serviceSchedules')); } /** * @param ServiceRequest $request * @param Service $service * @return \Illuminate\Foundation\Application|\Illuminate\Http\JsonResponse|mixed */ public function update(ServiceRequest $request, Service $service) { try { $this->serviceService->update($request, $service); flash(trans('Corals::messages.success.updated', ['item' => $this->title_singular]))->success(); } catch (\Exception $exception) { log_exception($exception, Service::class, 'update'); } return redirectTo($this->resource_url); } /** * @param ServiceRequest $request * @param Service $service * @return \Illuminate\Http\JsonResponse */ public function destroy(ServiceRequest $request, Service $service) { try { $this->serviceService->destroy($request, $service); $message = ['level' => 'success', 'message' => trans('Corals::messages.success.deleted', ['item' => $this->title_singular])]; } catch (\Exception $exception) { log_exception($exception, Service::class, 'destroy'); $message = ['level' => 'error', 'message' => $exception->getMessage()]; } return response()->json($message); } /** * @param Request $request * @return mixed */ public function getLineItems(Request $request) { abort_if(!user()->hasPermissionTo('Reservation::service.create'), 403); $ownerId = $request->get('owner_id'); $ownerType = $request->get('owner_type'); return \ReservationFacade::getLineItems($request->get('main_line_item'), $ownerId, $ownerType); } /** * @param Request $request * @param Service $service * @return array|\Illuminate\Http\JsonResponse */ public function getEvents(Request $request, Service $service) { try { return $this->serviceService->getServiceEvents($service); } catch (\Exception $exception) { log_exception($exception); return response()->json(['level' => 'error', 'message' => $exception->getMessage()]); } } }