111 lines
2.5 KiB
PHP
Executable File
111 lines
2.5 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Libraries;
|
|
|
|
use \Carbon\Carbon;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ParameterHelper
|
|
{
|
|
|
|
/**
|
|
* Validate if there's a start and limit parameter for pagination
|
|
* @param array $request
|
|
* @return array
|
|
*/
|
|
public static function validatePagination($request = [])
|
|
{
|
|
$parameter = [];
|
|
foreach ($request as $key => $value) {
|
|
if ($key == 'page_size') {
|
|
$parameter['page_size'] = $value;
|
|
}
|
|
if ($key == 'page') {
|
|
$parameter['page'] = $value;
|
|
}
|
|
}
|
|
return $parameter;
|
|
}
|
|
|
|
/**
|
|
* Validate and prepare sorting order of model based on query string parameter
|
|
* @param Request $request
|
|
* @return array
|
|
*/
|
|
public static function prepareSortingParameter(Request $request)
|
|
{
|
|
$response = [];
|
|
|
|
if ($request->has('_sort_by') && $request->has('_sort_order')) {
|
|
if ($request->get('_sort_by') != '') {
|
|
$response['field'] = $request->get('_sort_by');
|
|
}
|
|
if ($request->get('_sort_order') != '') {
|
|
$response['sort_order'] = $request->get('_sort_order');
|
|
}
|
|
}
|
|
|
|
return $response;
|
|
}
|
|
|
|
/**
|
|
* Prepare simple search parameters that will be used for eloquent
|
|
* @param array $fields
|
|
* @param string $value
|
|
* @return array
|
|
*/
|
|
public static function prepareSimpleSearchParameter($fields = [], $value = '')
|
|
{
|
|
$response = [];
|
|
foreach ($fields as $field) {
|
|
$response[] = [$field, 'LIKE', '%'.$value.'%'];
|
|
}
|
|
return $response;
|
|
}
|
|
|
|
/**
|
|
* Prepare parameter for multiple storing of resource with timestamp
|
|
* @param array $request
|
|
* @return array
|
|
*/
|
|
public static function prepareMultipleResource($request = [])
|
|
{
|
|
$parameters = [];
|
|
foreach ($request as $param) {
|
|
foreach ($param as $key => $value) {
|
|
$resource[$key] = $value;
|
|
}
|
|
$resource['created_at'] = Carbon::now();
|
|
$resource['updated_at'] = Carbon::now();
|
|
$parameters[] = $resource;
|
|
}
|
|
return $parameters;
|
|
}
|
|
|
|
/**
|
|
* Validate and prepare grouping of model based on query string parameter
|
|
* @param Request $request
|
|
* @return array
|
|
*/
|
|
public static function prepareGroupingParameter(Request $request)
|
|
{
|
|
$response = [];
|
|
if ($request->has('group_by')) {
|
|
if ($request->get('group_by') != '') {
|
|
$response['group_by'] = $request->get('group_by');
|
|
}
|
|
}
|
|
return $response;
|
|
}
|
|
|
|
public static function validateStartEndDate($params)
|
|
{
|
|
if($params['date_start'] != null && $params['date_end'] != null)
|
|
{
|
|
if(strtotime($params['date_start']) > strtotime($params['date_end']))
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
} |