| 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\CreditItem;
use Auth;
use Illuminate\Validation\ValidationException;
use Queriplex;
class CreditItemService
{
public function __construct()
{
}
public function creditItemList(Array $request)
{
$creditItems = CreditItem::query();
// // filter
$creditItems = Queriplex::make($creditItems)
->withFilters($request, [
'id' => 'id',
'activity' => function($query, $value){
$query->whereActivity($value);
},
])->apply();
// search
if(isset($request['search'])){
$allowed_search = [
'full_name', // default
'id',
];
$search_by = $request['searchBy'] ?? $allowed_search[0];
if(in_array($search_by,$allowed_search)){
$creditItems->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':
$creditItems->orderBy('id', $order_mode);
break;
}
}
if(isset($request['pagination']) && $request['pagination'] == true){
$result = $creditItems->paginate($request['itemsPerPage'] ?? null);
}else{
$result = $creditItems->get();
}
return $result;
}
public function creditItemInfo(Array $request)
{
$creditItem = CreditItem::where('id',$request['id'])
->firstOr( function(){
throw ValidationException::withMessages(
[ "id" => "The selected id is invalid." ]
);
});
$creditItem->getCreditAmount();
return $creditItem;
}
public function creditItemCreate(Array $request)
{
$creditItem = new CreditItem();
$creditItem->title = $request['title'];
$creditItem->subtitle = $request['subtitle'];
$creditItem->value = $request['value'];
$creditItem->save();
return $creditItem;
}
public function creditItemUpdate(Array $request)
{
$creditItem = CreditItem::where('id',$request['id'])
->withTrashed()
->firstOr( function(){
throw ValidationException::withMessages(
[ "id" => "The selected id is invalid." ]
);
});
$creditItem->title = $request['title'] ?? $creditItem->title;
$creditItem->subtitle = $request['subtitle'] ?? $creditItem->subtitle;
$creditItem->value = $request['value'] ?? $creditItem->value;
$creditItem->save();
return $creditItem;
}
public function creditItemDelete(Array $request)
{
$creditItem = CreditItem::where('id',$request['id'])
->withTrashed()
->firstOr( function(){
throw ValidationException::withMessages(
[ "id" => "The selected id is invalid." ]
);
});
$creditItem->restoreOrDelete();
return $creditItem;
}
}