Skip to content

Commit

Permalink
Merge pull request #22 from Fyntasia/develop
Browse files Browse the repository at this point in the history
Changes in ApiCall
  • Loading branch information
Fyntasia authored Aug 23, 2018
2 parents 94d3525 + 347df6c commit d4136fa
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 25 deletions.
30 changes: 15 additions & 15 deletions EffectConnectSDK/ApiCall.php
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ public function call()
/**
* @return array
*/
final public function getCurlErrors()
public function getCurlErrors()
{
if ($this->_curlErrNo > 0)
{
Expand Down Expand Up @@ -184,7 +184,7 @@ public function getCurlResponse()
/**
* @return bool
*/
final public function isSuccess()
public function isSuccess()
{
return (count($this->_curlErrors) === 0 && $this->_curlErrNo === 0 && $this->_curlResponse !== '');
}
Expand All @@ -194,7 +194,7 @@ final public function isSuccess()
*
* @return ApiCall
*/
final public function setCallDate(\DateTime $callDate)
public function setCallDate(\DateTime $callDate)
{
$this->_callDate = $callDate;

Expand All @@ -206,7 +206,7 @@ final public function setCallDate(\DateTime $callDate)
*
* @return ApiCall
*/
final public function setCallVersion($callVersion)
public function setCallVersion($callVersion)
{
$this->_callVersion = $callVersion;

Expand All @@ -218,7 +218,7 @@ final public function setCallVersion($callVersion)
*
* @return ApiCall
*/
final public function setHeaders(array $headers)
public function setHeaders(array $headers)
{
$this->_headers = $headers;

Expand All @@ -230,7 +230,7 @@ final public function setHeaders(array $headers)
*
* @return ApiCall
*/
final public function setMethod($method)
public function setMethod($method)
{
$this->_method = $method;

Expand All @@ -243,7 +243,7 @@ final public function setMethod($method)
* @return $this
* @throws InvalidPropertyException
*/
final public function setPayload($payload=null)
public function setPayload($payload=null)
{
if ($payload instanceof ApiModel)
{
Expand All @@ -261,7 +261,7 @@ final public function setPayload($payload=null)
*
* @return ApiCall
*/
final public function setPublicKey($publicKey)
public function setPublicKey($publicKey)
{
$this->_publicKey = $publicKey;

Expand All @@ -273,7 +273,7 @@ final public function setPublicKey($publicKey)
*
* @return ApiCall
*/
final public function setResponseLanguage($responseLanguage)
public function setResponseLanguage($responseLanguage)
{
$this->_responseLanguage = $responseLanguage;

Expand All @@ -285,7 +285,7 @@ final public function setResponseLanguage($responseLanguage)
*
* @return ApiCall
*/
final public function setResponseType($responseType)
public function setResponseType($responseType)
{
$this->_responseType = $responseType;

Expand All @@ -297,7 +297,7 @@ final public function setResponseType($responseType)
*
* @return ApiCall
*/
final public function setSecretKey($secretKey)
public function setSecretKey($secretKey)
{
$this->_secretKey = $secretKey;

Expand All @@ -309,7 +309,7 @@ final public function setSecretKey($secretKey)
*
* @return ApiCall
*/
final public function setUri($uri)
public function setUri($uri)
{
$this->_uri = $uri;

Expand All @@ -321,7 +321,7 @@ final public function setUri($uri)
*
* @return ApiCall
*/
final public function setTimeout($timeout)
public function setTimeout($timeout)
{
$this->_timeout = $timeout;

Expand All @@ -331,7 +331,7 @@ final public function setTimeout($timeout)
/**
* @return array
*/
private function _getHeaders()
protected function _getHeaders()
{
$headers = [
'KEY: '.$this->_publicKey,
Expand All @@ -356,7 +356,7 @@ private function _getHeaders()
/**
* @return string
*/
private function _signApiCall()
protected function _signApiCall()
{
if ($this->_payload instanceof \CURLFile)
{
Expand Down
17 changes: 14 additions & 3 deletions EffectConnectSDK/Core.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,31 @@ final class Core
*/
private $_keychain;

/**
* @var ApiCall $_callClass
*/
private $_callClass;

/**
* Core constructor.
*
* @param Keychain $keychain
* @param ApiCall $callClass
*
* @throws \Exception
*/
public function __construct($keychain)
public function __construct(Keychain $keychain, ApiCall $callClass=null)
{
if (!$keychain->_isValid())
{
throw new \Exception('Invalid keychain.');
}
$this->_keychain = $keychain;
if ($callClass === null)
{
$callClass = new ApiCall();
}
$this->_keychain = $keychain;
$this->_callClass = $callClass;
}

/**
Expand Down Expand Up @@ -101,7 +112,7 @@ final public function __call($name, $arguments)
{
$reflection = new \ReflectionClass('EffectConnect\PHPSdk\Core\CallType\\'.$name);

return $reflection->newInstanceArgs([$this->_keychain]);
return $reflection->newInstanceArgs([$this->_keychain, $this->_callClass]);
} catch (\Exception $exception)
{
throw new InvalidApiCallException($name);
Expand Down
20 changes: 14 additions & 6 deletions EffectConnectSDK/Core/Abstracts/CallType.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,13 @@ abstract class CallType
*/
protected $action;

/**
* @var ApiCall $callClass
*
* The CURL base class
*/
protected $callClass;

/**
* @var \DateTime $callDate
*
Expand Down Expand Up @@ -83,14 +90,16 @@ abstract class CallType
* AbstractCall constructor.
*
* @param Keychain $keychain
* @param ApiCall $callClass
*
* @throws InvalidValidatorClassException
* @throws MissingValidatorClassException
*/
public function __construct($keychain)
public function __construct(Keychain $keychain, ApiCall $callClass)
{
$this->keychain = $keychain;
$this->callDate = new \DateTime('now', new \DateTimeZone('Europe/Amsterdam'));
$this->callClass = $callClass;
$this->keychain = $keychain;
$this->callDate = new \DateTime('now', new \DateTimeZone('Europe/Amsterdam'));
if (!$this->validatorClass)
{
throw new MissingValidatorClassException();
Expand Down Expand Up @@ -161,8 +170,7 @@ final public function setResponseType($responseType = CallTypeInterface::RESPONS
*/
final public function prepareCall()
{
$apiCall = new ApiCall();
$apiCall
$this->callClass
->setResponseType($this->responseType)
->setResponseLanguage($this->responseLanguage)
->setCallDate($this->callDate)
Expand All @@ -172,7 +180,7 @@ final public function prepareCall()
->setPayload($this->payload)
;

return $this->_prepareCall($apiCall);
return $this->_prepareCall($this->callClass);
}

/**
Expand Down
5 changes: 4 additions & 1 deletion EffectConnectSDK/Core/Interfaces/CallTypeInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,12 @@ interface CallTypeInterface
const RESPONSE_TYPE_JSON = 'json';

/**
* CallTypeInterface constructor.
*
* @param Keychain $keychain
* @param ApiCall $callClass
*/
public function __construct($keychain);
public function __construct(Keychain $keychain, ApiCall $callClass);

/**
* @param string $responseType
Expand Down

0 comments on commit d4136fa

Please sign in to comment.