| Server IP : 34.87.99.72 / Your IP : 216.73.217.31 Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 User : bitnami ( 1000) PHP Version : 7.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /opt/bitnami/apache/htdocs/app/app/Http/Services/ |
Upload File : |
<?php
namespace App\Http\Services;
use App\Models\PartnerPackage;
use App\Models\PartnerPackageDetail;
use App\Http\Services\PartnerPackageDetailService;
use Auth;
use Illuminate\Validation\ValidationException;
use Queriplex;
class PartnerPackageService
{
public function __construct(
PartnerPackageDetailService $partnerPackageDetail
)
{
$this->partnerPackageDetail = $partnerPackageDetail;
}
public function partnerPackageList(Array $request)
{
$partnerPackages = PartnerPackage::query();
// // filter
$partnerPackages = Queriplex::make($partnerPackages)
->withFilters($request, [
'id' => 'id',
'activity' => function($query, $value){
$query->whereActivity($value);
},
])->apply();
// search
if(isset($request['search'])){
$allowed_search = [
'id',
'name',
];
$search_by = $request['searchBy'] ?? $allowed_search[0];
if(in_array($search_by,$allowed_search)){
$partnerPackages->search($search_by,$request['search']);
}
}
// sort
if( isset($request['sortBy']) ){
$order_mode = (!isset($request['sortDesc']) || $request['sortDesc'] == true) ? 'DESC' : 'ASC';
switch ($request['sortBy']) {
case 'id':
$partnerPackages->orderBy('id', $order_mode);
break;
}
}
$result = $partnerPackages->paginate($request['itemsPerPage'] ?? null);
return $result;
}
public function partnerPackageInfo(Array $request)
{
$partnerPackage = PartnerPackage::where('id',$request['id'])
->firstOr( function(){
throw ValidationException::withMessages(
[ "id" => "The selected id is invalid." ]
);
});
return $partnerPackage;
}
public function partnerPackageCreate(Array $request)
{
$partnerPackage = new PartnerPackage();
$partnerPackage->name = $request['name'];
$partnerPackage->profit_percentage = $request['profit_percentage'];
$partnerPackage->save();
return $partnerPackage;
}
public function partnerPackageUpdate(Array $request)
{
$partnerPackage = PartnerPackage::where('id',$request['id'])
->withTrashed()
->firstOr( function(){
throw ValidationException::withMessages(
[ "id" => "The selected id is invalid." ]
);
});
if($partnerPackage->name != $request['name'] || $partnerPackage->profit_percentage != $request['profit_percentage'])
{
$this->partnerPackageDetail->partnerPackageDetailCreate($partnerPackage);
$partnerPackage->name = $request['name'];
$partnerPackage->profit_percentage = $request['profit_percentage'];
$partnerPackage->save();
}
return $partnerPackage;
}
public function partnerPackageDelete(Array $request)
{
$partnerPackage = PartnerPackage::where('id',$request['id'])
->withTrashed()
->firstOr( function(){
throw ValidationException::withMessages(
[ "id" => "The selected id is invalid." ]
);
});
$partnerPackage->restoreOrDelete();
return $partnerPackage;
}
}