2017 © Pedro PelĂĄez
 

library rro

Rich response object plugin.

image

kodeops/rro

Rich response object plugin.

  • Friday, July 13, 2018
  • by kodeops
  • Repository
  • 1 Watchers
  • 0 Stars
  • 142 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

 _     _  _____  ______  _______  _____   _____  _______
 |____/  |     | |     \ |______ |     | |_____] |______
 |    \_ |_____| |_____/ |______ |_____| |       ______|

rro | rich response object

Setup

Add composer package:, (*1)

$ composer require kodeops/rro:dev-master, (*2)

Copy function helpers to your project within your namespace (recommended, not mandatory):, (*3)

https://raw.githubusercontent.com/kodeops/rro/master/src/helpers.php, (*4)

Add rro-helpers.php to composer.json autoload section:, (*5)

"autoload": {
    ...

   "files": [
       "vendor/kodeops/rro/src/helpers.php"
   ]
}

Usage

Assuming helper functions are loaded in composer.json:, (*6)

$rro = error()
  ->type('error_type')
  ->message('This is a sample rich response object.')
  ->code(404)
  ->data(['foo' => 'bar']);

Checking status:, (*7)

if ($rro->isError()) {
  // Response contains an error payload
}

if ($rro->isSuccess()) {
  // Response contains a success payload
}

Additionaly, isError and isSuccess accepts two parameters for checking type or message content:, (*8)

if ($rro->isError('type', 'error_type')) {
  // Response contains an error type equals to "error_type"
}

if ($rro->isError('message', 'Error message')) {
  // Response contains an error message equals to "error_type"
}

if ($rro->isSuccess('type', 'success_type')) {
  // Response contains a success type equals to "success_type"
}

if ($rro-> isSuccess('message', 'Success message')) {
  // Response contains a message equals to "Success message"
}

Or you can access independent whether it's an error or response:, (*9)

if ($rro->response('is_type', 'error_type')) {
  // returns true if given type matches response type
}

if ($rro->response('is_message', 'Descriptive error message')) {
  // returns true if given message matches response message
}

Accessing response:, (*10)

$type = $rro->response('type');
$message = $rro->response('message');
$foo = $rro->response('data', 'foo');
$code = $rro->response('code');
$add = $rro->response('add', ['bar' => 'foo']);

Methods

Building response


type(string $string)

Set the type for the response., (*11)

message(string $string)

Set the message for the response., (*12)

data(array $data)

Set the data for the response., (*13)

code(int $code)

Set the status code for the response., (*14)

trans(string $translation)

Uses the translation to set the type and the translation itself is placed in the message., (*15)

A valid translation path must be entered, if not it will throw an rroException., (*16)

Check response status


isError()

Wether the response is an error., (*17)

isSuccess()

Wether the response is a success., (*18)

Accessing response details


response('type')

Get the response type., (*19)

response('message')

Get the response message., (*20)

response('data', $dot)

Get the response data array (uses dot syntax to retrieve specific key)., (*21)

Example: response('data', 'user.id'), (*22)

response('code')

Get the response code., (*23)

response('add', array $data)

Add more items to the data array (will be automatically merged to existing data)., (*24)

response('is_type', $type)

Wether the response type equals to the parameter sent., (*25)

response('is_message', $message)

Wether the response message equals to the parameter sent., (*26)

Render response


HTML raw code toHtml()

Will output the message and type in HTML as follows:, (*27)

<h1>{{ $message }}</h1>
<h3><code>{{ $type }}</code></h1>

So this snippet:, (*28)

return success()
    ->type('item_updated')
    ->message('Item successfully updated!')
    ->toHtml();

will produce:, (*29)

<h1>Item successfully updated!</h1>
<h3><code>item_update</code></h3>

If type is not set, h3 tag will not be rendered., (*30)

Render to array toArray()

Render response to a simple array (otherwise responds with an instance of rro class)., (*31)

So this snippet:, (*32)

return success()
  ->type('item_updated')
  ->message('Item successfully updated!')
  ->toArray();

will produce:, (*33)

[
  "response" => [
    "type" => "item_updated",
    "message" => "Item successfully updated!",
  ]
];

For Laravel response toResponse()

Render response in Laravel way., (*34)

The Versions

13/07 2018

1.1.0

1.1.0.0 https://github.com/kodeops/rro

Rich response object plugin.

  Sources   Download

MIT

The Requires

  • php >=5.5

 

plugin laravel utils kodeops