mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git
synced 2026-08-19 04:24:12 +00:00
46 lines
1.1 KiB
PHP
46 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Classes\General\Eloquent;
|
|
|
|
|
|
use App\Classes\Exceptions\ResourceNotFoundException;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use App\Classes\Exceptions\JobResourceNotFoundException;
|
|
|
|
|
|
abstract class AbstractFetchRecord extends AbstractGetRecord
|
|
{
|
|
|
|
/**
|
|
* @param array|null $filters
|
|
* @return mixed
|
|
*/
|
|
public function execute(array $filters = []){
|
|
|
|
return $this->handler($filters);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @param Builder $query
|
|
* @return Model
|
|
* @throws ResourceNotFoundException
|
|
*/
|
|
public function getResults(Builder $query, array $param = []): Model {
|
|
if(!$query->exists()){
|
|
$table = $query->getModel()->getTable();
|
|
if($table ==='job_results'){
|
|
throw new JobResourceNotFoundException('Unable to find any job based on the criteria provided');
|
|
}
|
|
else{
|
|
throw new ResourceNotFoundException('Unable to find any record based on the criteria provided');
|
|
}
|
|
}
|
|
|
|
return $query->first();
|
|
}
|
|
|
|
}
|