HttpClient.php 980 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: perfectmak
  5. * Date: 2/12/16
  6. * Time: 3:46 PM
  7. */
  8. namespace Paystack\Http;
  9. use Httpful\Http;
  10. use Paystack\Interfaces\Http\IClient;
  11. use Paystack\Interfaces\IRequest;
  12. use Paystack\Interfaces\IResponse;
  13. use Paystack\Paystack;
  14. use Paystack\Response;
  15. /**
  16. * This HttpClient uses
  17. * Class HttpClient
  18. * @package Paystack\Http
  19. */
  20. class HttpClient implements IClient
  21. {
  22. /**
  23. * @param IRequest $request
  24. * @return IResponse
  25. */
  26. public function sendRequest(IRequest $request)
  27. {
  28. $response = \Httpful\Request::init()
  29. ->addHeader('Authorization', 'Bearer '.Paystack::getApiKey())
  30. ->uri($request->getUrl())
  31. ->method($request->getType())
  32. ->addHeaders($request->getHeaders())
  33. ->body($request->getBody())
  34. ->sendsJson()
  35. ->send();
  36. $iResponse = new Response($response->code, $response->body);
  37. return $iResponse;
  38. }
  39. }