DataRequest
Class \Lib\DataRequest
Introduction
This class will allow you to extract GET or POST data that has been sent through the web service call.
Methods
getInstance
<?php public function \Lib\DataRequest::getInstance()
Description
Instanciate DataRequest class.
getRequest
<?php public static function \Lib\DataRequest::getRequest(bool $merged = false)
Description
Returns all content sent with POST or GET.
Parameters
merged
: If is set to true, all content will be merged into one single array.
Return
An array representing the request's data.
get
<?php public function \Lib\DataRequest::get($property = '')
Description
Returns content sent with specified property.
Property needs to be specified HTTP method (post
, get
, put
, patch
, delete
)
Parameters
property
: The property's name. It's an HTTP method :post
,get
,put
,patch
ordelete
Return
The property's value, null
otherwise.
Examples
A complete webservice GET
Retrieves a user by id and returns it.
<?php
namespace App\Modules;
use \Lib\Controller\WSController as Controller;
class Users
{
/**
* @description Retrieve and return a user based on a GET parameters (id)
* @param Controller $controller
* @param array $params
* @doc integer $id Identifiant du diagnostic
* @return array|null
*/
public static function get(Controller $controller, $params = array())
{
$get = \Lib\DataRequest::getInstance()->get('get');
if (!empty($get['id'])) {
$db = \Lib\DB::getInstance();
$db->query('
SELECT
*
FROM
`users`
WHERE
`id` = :id
AND active = 1
');
$db->bind('id', (int)$get['id'], \PDO::PARAM_INT);
$user = $db->fetch();
return $user;
}
return null;
}
}
A complete webservice POST
Create a user inside database and return a success message.
<?php
namespace App\Modules;
use \Lib\Controller\WSController as Controller;
class Users
{
/**
* @description Create a user
* @param WSController $controller
* @param array $params
* @doc string $firstname User's first name
* @doc string $lastname User's last name
* @doc string $email User's email
* @return array
*/
public static function post(Controller $controller, $params = array())
{
$post = \Lib\DataRequest::getInstance()->get('post');
if (empty($post['firstname'])) {
return \Lib\Tools::formatError('firstname_missing', true, 3, 403);
}
if (empty($post['lastname'])) {
return \Lib\Tools::formatError('lastname_missing', true, 3, 403);
}
if (empty($post['email'])) {
return \Lib\Tools::formatError('email_missing', true, 3, 403);
}
$db = \Lib\DB::getInstance();
$db->query('
INSERT INTO
`users`
(
`lastname`,
`firstname`,
`email`,
`date_create`
)
VALUES
(
:lastname,
:firstname,
:email,
NOW()
)
');
$db->bind(':lastname', $post['lastname']);
$db->bind(':firstname', $post['firstname']);
$db->bind(':email', $post['email']);
$db->exec();
return \Lib\Tools::formatSuccess('user_created',true,201);
}
}
Updated almost 7 years ago