\App\Api\Request\DBMultiRequest

An API request to retrieve a list of DB entries

Summary

Methods
Properties
Constants
setHttpRequest()
__construct()
No public properties found
No constants found
_rules()
addWhere()
additionalQuery()
buildQuery()
onResults()
doResolve()
isOrderBased()
urlParameters()
_urlParameters()
paginator()
resourceClass()
shouldResolve()
rules()
jsonParameters()
authorizationError()
$defaultScope
$perPageDefault
$orderBased
$httpRequest
N/A
No private methods found
No private properties found
N/A

Properties

$defaultScope

$defaultScope : string|null

Public scope to be used by default. Null if the scope parameter is required.

Type

string|null

$perPageDefault

$perPageDefault : integer|null

Default value for `per_page` parameter. If `null`, the `per_page` parameter is always required.

Type

integer|null

$orderBased

$orderBased : boolean

Whether a page based or an order based Paginator will be used.

Type

boolean

$httpRequest

$httpRequest : \Illuminate\Http\Request

HTTP request

Type

\Illuminate\Http\Request

Methods

setHttpRequest()

setHttpRequest(\Illuminate\Http\Request  $httpRequest) 

Parameters

\Illuminate\Http\Request $httpRequest

__construct()

__construct(string  $modelClass, string  $resourceClass, boolean  $orderBased = false) 

MultiRequest constructor.

Parameters

string $modelClass
string $resourceClass
boolean $orderBased

_rules()

_rules(\Illuminate\Support\Collection  $parameters, \Illuminate\Validation\Validator  $validator = null) : array

Returns validation rules for the request parameters. Should be used by abstract classes and should always concatenate result with parent implementation

Parameters

\Illuminate\Support\Collection $parameters
\Illuminate\Validation\Validator $validator

Returns

array

addWhere()

addWhere(\Illuminate\Database\Eloquent\Builder  $query, string  $param, string  $operator = null, mixed  $value = null, string  $boolean = 'and') 

Converts API request parameter to its query counterpart. Supports relations using forward slash notation.

Parameters

\Illuminate\Database\Eloquent\Builder $query
string $param

The parameter. Forward slash notation defines relations.

string $operator

See {@see Builder::where}

mixed $value

See {@see Builder::where}

string $boolean

See {@see Builder::where}

additionalQuery()

additionalQuery(\Illuminate\Database\Eloquent\Builder|\Laravel\Scout\Builder  $query, \Illuminate\Support\Collection  $parameters) : \Illuminate\Database\Eloquent\Builder|\Laravel\Scout\Builder

Used to add additional parameters to the query

Parameters

\Illuminate\Database\Eloquent\Builder|\Laravel\Scout\Builder $query
\Illuminate\Support\Collection $parameters

Returns

\Illuminate\Database\Eloquent\Builder|\Laravel\Scout\Builder

buildQuery()

buildQuery(\Illuminate\Support\Collection  $parameters) : \Illuminate\Database\Eloquent\Builder

Builds the query from parameters

Parameters

\Illuminate\Support\Collection $parameters

Throws

\Illuminate\Auth\Access\AuthorizationException

Returns

\Illuminate\Database\Eloquent\Builder

onResults()

onResults(array<mixed,\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Model  $results) 

Called after the query is requested.

Parameters

array<mixed,\Illuminate\Database\Eloquent\Model>|\Illuminate\Database\Eloquent\Model $results

doResolve()

doResolve(  $name, \Illuminate\Support\Collection  $parameters) : \App\Api\Response\Response

This function is called only when all validation passed.

Should return a Response.

Parameters

$name
\Illuminate\Support\Collection $parameters

Throws

\Illuminate\Validation\ValidationException

Returns

\App\Api\Response\Response

isOrderBased()

isOrderBased(\Illuminate\Support\Collection  $parameters) : boolean

Whether AfterPaginator or regular Paginator should be used

Parameters

\Illuminate\Support\Collection $parameters

Returns

boolean

urlParameters()

urlParameters(\Illuminate\Support\Collection  $parameters) : array<mixed,string>

Returns an array of parameters that should be present in the URL get query in next/previous URLs

Parameters

\Illuminate\Support\Collection $parameters

Returns

array<mixed,string>

_urlParameters()

_urlParameters(\Illuminate\Support\Collection  $parameters) : array<mixed,string>

Returns an array of parameters that should be present in the URL get query in next/previous URLs.

Should be used by abstract classes and should always concatenate result with parent implementation.

Parameters

\Illuminate\Support\Collection $parameters

Returns

array<mixed,string>

paginator()

paginator(\Illuminate\Support\Collection  $parameters, integer  $perPage, integer|string|null  $pageOrAfter) : \Illuminate\Contracts\Pagination\Paginator

Returns a Paginator instance to be used

Parameters

\Illuminate\Support\Collection $parameters
integer $perPage
integer|string|null $pageOrAfter

Returns

\Illuminate\Contracts\Pagination\Paginator

resourceClass()

resourceClass(\Illuminate\Support\Collection  $parameters) : string|false

Returns name of a Resource class to be used. If false, no Resource class used

Parameters

\Illuminate\Support\Collection $parameters

Returns

string|false

shouldResolve()

shouldResolve() : true|string

Decides whether the request will be resolved.

If the request should not run, returns the error message. Otherwise returns true.

Returns

true|string

rules()

rules(\Illuminate\Support\Collection  $parameters, \Illuminate\Validation\Validator  $validator = null) : array

Returns validation rules for the request parameters

Parameters

\Illuminate\Support\Collection $parameters
\Illuminate\Validation\Validator $validator

Returns

array

jsonParameters()

jsonParameters() : array<mixed,string>

Returns an array of parameters that are JSON and should be converted to an array

Returns

array<mixed,string>

authorizationError()

authorizationError() 

Throws

\Illuminate\Auth\Access\AuthorizationException