⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.11
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
muhasebe
/
modules
/
Api
/
Controllers
/
View File Name :
SearchController.php
<?php namespace Modules\Api\Controllers; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Modules\Booking\Models\Service; use Modules\Flight\Controllers\FlightController; class SearchController extends Controller { public function search($type = ''){ $type = $type ? $type : request()->get('type'); if(empty($type)) { return $this->sendError(__("Type is required")); } $class = get_bookable_service_by_id($type); if(empty($class) or !class_exists($class)){ return $this->sendError(__("Type does not exists")); } if(!empty(request()->query('limit'))){ $limit = request()->query('limit'); }else{ $limit = !empty(setting_item($type."_page_limit_item"))? setting_item($type."_page_limit_item") : 9; } $query = new $class(); $rows = $query->search(request()->input())->paginate($limit); $total = $rows->total(); return $this->sendSuccess( [ 'total'=>$total, 'total_pages'=>$rows->lastPage(), 'data'=>$rows->map(function($row){ return $row->dataForApi(); }), ] ); } public function searchServices(){ if(!empty(request()->query('limit'))){ $limit = request()->query('limit'); }else{ $limit = 9; } $query = new Service(); $rows = $query->search(request()->input())->paginate($limit); $total = $rows->total(); return $this->sendSuccess( [ 'total'=>$total, 'total_pages'=>$rows->lastPage(), 'data'=>$rows->map(function($row){ return $row->dataForApi(); }), ] ); } public function getFilters($type = ''){ $type = $type ? $type : request()->get('type'); if(empty($type)) { return $this->sendError(__("Type is required")); } $class = get_bookable_service_by_id($type); if(empty($class) or !class_exists($class)){ return $this->sendError(__("Type does not exists")); } $data = call_user_func([$class,'getFiltersSearch'],request()); return $this->sendSuccess( [ 'data'=>$data ] ); } public function getFormSearch($type = ''){ $type = $type ? $type : request()->get('type'); if(empty($type)) { return $this->sendError(__("Type is required")); } $class = get_bookable_service_by_id($type); if(empty($class) or !class_exists($class)){ return $this->sendError(__("Type does not exists")); } $data = call_user_func([$class,'getFormSearch'],request()); return $this->sendSuccess( [ 'data'=>$data ] ); } public function detail($type = '',$id = '') { if(empty($type)){ return $this->sendError(__("Resource is not available")); } if(empty($id)){ return $this->sendError(__("Resource ID is not available")); } $class = get_bookable_service_by_id($type); if(empty($class) or !class_exists($class)){ return $this->sendError(__("Type does not exists")); } $row = $class::find($id); if(empty($row)) { return $this->sendError(__("Resource not found")); } if($type=='flight'){ return app()->make(FlightController::class)->getData(\request(),$id); } return $this->sendSuccess([ 'data'=>$row->dataForApi(true) ]); } public function checkAvailability(Request $request , $type = '',$id = ''){ if(empty($type)){ return $this->sendError(__("Resource is not available")); } if(empty($id)){ return $this->sendError(__("Resource ID is not available")); } $class = get_bookable_service_by_id($type); if(empty($class) or !class_exists($class)){ return $this->sendError(__("Type does not exists")); } $classAvailability = $class::getClassAvailability(); $classAvailability = app()->make($classAvailability); $request->merge(['id' => $id]); if($type == "hotel"){ $request->merge(['hotel_id' => $id]); return $classAvailability->checkAvailability($request); } return $classAvailability->loadDates($request); } public function checkBoatAvailability(Request $request ,$id = ''){ if(empty($id)){ return $this->sendError(__("Boat ID is not available")); } $class = get_bookable_service_by_id('boat'); $classAvailability = $class::getClassAvailability(); $classAvailability = app()->make($classAvailability); $request->merge(['id' => $id]); return $classAvailability->availabilityBooking($request); } }