Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0 / 0 |
|
100.00% |
0 / 0 |
CRAP | |
100.00% |
0 / 0 |
<?php | |
/* | |
* This file is part of the Incipio package. | |
* | |
* (c) Théo FIDRY <theo.fidry@gmail.com> | |
* | |
* For the full copyright and license information, please view the LICENSE | |
* file that was distributed with this source code. | |
*/ | |
namespace FrontBundle\Controller; | |
use GuzzleHttp\Exception\RequestException; | |
use GuzzleHttp\Exception\TransferException; | |
use Psr\Http\Message\RequestInterface; | |
use Symfony\Component\HttpFoundation\Request; | |
use Symfony\Component\Routing\Generator\UrlGeneratorInterface; | |
use Symfony\Component\Serializer\Exception\UnexpectedValueException; | |
/** | |
* Interface registering all controller methods that should be refactoring into a base controller to provide helpers | |
* and avoid duplicating code and that are specific to this application, i.e. methods that are not in {@see | |
* Symfony\Bundle\FrameworkBundle\Controller\Controller} or which differs from it. | |
* | |
* @author Théo FIDRY <theo.fidry@gmail.com> | |
*/ | |
interface ApiControllerInterface | |
{ | |
/** | |
* Generates a URL from the given parameters. | |
* | |
* If the `id` key of parameters passed has an URI as a value, its ID is automatically extracted from it. This is | |
* done my assuming that the ID is the last member of the URI and that and URI begins by `/`. | |
* | |
* @param string $route The name of the route | |
* @param array $parameters An array of parameters | |
* @param bool|string $referenceType The type of reference (one of the constants in UrlGeneratorInterface) | |
* | |
* @return string The generated URL | |
* | |
* @see UrlGeneratorInterface | |
*/ | |
public function generateUrl($route, $parameters = [], $referenceType = UrlGeneratorInterface::ABSOLUTE_PATH); | |
/** | |
* Decodes a JSON string into PHP data. | |
* | |
* @param string $data Data to decode | |
* @param array $context options that decoders have access to. | |
* | |
* @return array | |
* | |
* @throws UnexpectedValueException | |
*/ | |
public function decode($data, array $context = []); | |
/** | |
* Send a GET request for the client and decode its response body. | |
* | |
* @see FrontBundle\Client\ApiClientInterface::createRequest() | |
* | |
* @param string $method HTTP method | |
* @param string|null $url URL, URI or route name. | |
* @param Request|RequestInterface|string|null $token API token. If request, will look into the session | |
* for the API token. | |
* @param array $options Options applied to the request. | |
* | |
* @return RequestInterface | |
*/ | |
public function createRequest($method, $url = null, $token = null, $options = []); | |
/** | |
* Send a GET request for the client and decode its response body. | |
* | |
* @see FrontBundle\Client\ApiClientInterface::request() | |
* @see $this::decode | |
* | |
* @param string $method HTTP method | |
* @param string|null $url URL, URI or route name. | |
* @param Request|RequestInterface|string|null $token API token. If request, will look into the session | |
* for the API token. | |
* @param array $options Options applied to the request. | |
* @param bool $wholeCollection If set to true, will consider the response is a | |
* paginated collection and will go through all pages | |
* to return the complete list of entities. This | |
* parameters is ignored if the response is not a | |
* collection. | |
* | |
* @return array | |
* | |
* @throws \LogicException When the handler does not populate a response | |
* @throws RequestException When an error is encountered | |
*/ | |
public function requestAndDecode($method, $url = null, $token = null, $options = [], $wholeCollection = false); | |
/** | |
* Sends a single request and decode its response body. | |
* | |
* @see FrontBundle\Client\ApiClientInterface::send() | |
* @see $this::decode | |
* | |
* @param RequestInterface $request Request to send | |
* @param bool $wholeCollection If set to true, will consider the response is a paginated | |
* collection and will go through all pages to return the complete list of | |
* entities. This parameters is ignored if the response is not a | |
* collection. | |
* | |
* @return array | |
* | |
* @throws \LogicException When the handler does not populate a response | |
* @throws RequestException When an error is encountered | |
* @throws UnexpectedValueException | |
*/ | |
public function sendAndDecode(RequestInterface $request, $wholeCollection = false); | |
/** | |
* Handle Guzzle exceptions. Assumes the exception was thrown while sending a request to the API. For more | |
* information regarding Guzzle exceptions, refer to {@link * http://guzzle.readthedocs.org/en/latest/quickstart.html#exceptions}. | |
* | |
* @param TransferException $exception | |
*/ | |
public function handleGuzzleException(TransferException $exception); | |
} |