Skip to content

Commit

Permalink
Return DirectoryResponse from directory request call
Browse files Browse the repository at this point in the history
  • Loading branch information
Jurian Sluiman committed Aug 11, 2013
1 parent b5b7531 commit aeecfea
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 42 deletions.
20 changes: 13 additions & 7 deletions src/SlmIdealPayment/Client/StandardClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -126,22 +126,28 @@ public function sendDirectoryRequest(Request\DirectoryRequest $request)

$countries = array();
foreach ($response->getElementsByTagName('Country') as $child) {
$country = $child->getElementsByTagName('countryNames')->item(0)->textContent;
$name = $child->getElementsByTagName('countryNames')->item(0)->textContent;

$list = array();
$issuers = array();
foreach ($child->getElementsByTagName('Issuer') as $issuer) {
$issuerModel = new Model\Issuer();
$issuerModel->setId($this->getTag($issuer, 'issuerID'));
$issuerModel->setName($this->getTag($issuer, 'issuerName'));

$list[] = $issuerModel;
$issuers[] = $issuerModel;
}

$countries[$country] = $list;
$country = new Model\Country;
$country->setName($name);
$country->setIssuers($issuers);

$countries[] = $country;
}

// @todo create a DirectoryResponse and insert all issuers there
return $countries;
$response = new Response\DirectoryResponse;
$response->setCountries($countries);

return $response;
}

/**
Expand Down Expand Up @@ -184,7 +190,7 @@ public function sendStatusRequest(Request\StatusRequest $request)
$transaction = new Model\Transaction();
$transaction->setTransactionId($this->getTag($response, 'transactionID'));
$transaction->setStatus($this->getTag($response, 'status'));
// statusDateTimestamp
// @todo add statusDateTimestamp

$consumer = new Model\Consumer();
$consumer->setName($this->getTag($response, 'consumerName'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* @package SlmIdealPayment
* @subpackage Model
* @author Jurian Sluiman <[email protected]>
* @copyright 2012 Jurian Sluiman.
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
Expand All @@ -42,8 +40,53 @@

namespace SlmIdealPayment\Model;

use ArrayObject;

class IssuerCollection extends ArrayObject
class Country
{
protected $name;
protected $issuers;

/**
* Getter for name
*
* @return string
*/
public function getName()
{
return $this->name;
}

/**
* Setter for name
*
* @param string $name Value to set
* @return self
*/
public function setName($name)
{
$this->name = $name;
return $this;
}

/**
* Getter for issuers
*
* @return Issuer[]
*/
public function getIssuers()
{
return $this->issuers;
}

/**
* Setter for issuers
*
* @param array $issuers Value to set
* @return self
*/
public function setIssuers(array $issuers)
{
$this->issuers = $issuers;
return $this;
}

}
24 changes: 0 additions & 24 deletions src/SlmIdealPayment/Model/Issuer.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,10 @@

namespace SlmIdealPayment\Model;

use SlmIdealPayment\Exception;

class Issuer
{
const TYPE_SHORT = 'Short';
const TYPE_LONG = 'Long';

protected $id;
protected $name;
protected $type;

public function getId()
{
Expand All @@ -74,22 +68,4 @@ public function setName($name)
$this->name = $name;
return $this;
}

public function getType()
{
return $this->type;
}

public function setType($type)
{
if (!in_array($type, array(self::TYPE_SHORT, self::TYPE_LONG))) {
throw new Exception\InvalidArgumentException(
'Type must be "%s" or "%s", "%s" given',
self::TYPE_SHORT, self::TYPE_LONG, $type
);
}

$this->type = $type;
return $this;
}
}
23 changes: 17 additions & 6 deletions src/SlmIdealPayment/Response/DirectoryResponse.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,20 +42,31 @@

namespace SlmIdealPayment\Response;

use SlmIdealPayment\Model\IssuerCollection;
use SlmIdealPayment\Model\Country;

class DirectoryResponse extends AbstractResponse
{
protected $issuers;
protected $countries;

public function getIssuers()
/**
* Getter for countries
*
* @return Country[]
*/
public function getCountries()
{
return $this->issuers;
return $this->countries;
}

public function setIssuers(IssuerCollection $issuers)
/**
* Setter for countries
*
* @param array $countries List of countries
* @return self
*/
public function setCountries(array $countries)
{
$this->issuers = $issuers;
$this->countries = $countries;
return $this;
}
}

0 comments on commit aeecfea

Please sign in to comment.