Skip to content

Commit

Permalink
add gateway choice form type.
Browse files Browse the repository at this point in the history
  • Loading branch information
makasim committed Oct 29, 2015
1 parent b0e417e commit 2dc5b7d
Showing 1 changed file with 19 additions and 6 deletions.
25 changes: 19 additions & 6 deletions src/Payum/Silex/PayumProvider.php
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
<?php
namespace Payum\Silex;

use Payum\Core\Bridge\Spl\ArrayObject;
use Payum\Core\Bridge\Symfony\Action\GetHttpRequestAction;
use Payum\Core\Bridge\Symfony\Action\ObtainCreditCardAction;
use Payum\Core\Bridge\Symfony\Form\Type\CreditCardExpirationDateType;
use Payum\Core\Bridge\Symfony\Form\Type\CreditCardType;
use Payum\Core\Bridge\Symfony\Form\Type\GatewayConfigType;
use Payum\Core\Bridge\Symfony\Form\Type\GatewayFactoriesChoiceType;
use Payum\Core\Bridge\Symfony\Form\Type\GatewayChoiceType;
use Payum\Core\Bridge\Symfony\ReplyToSymfonyResponseConverter;
use Payum\Core\Bridge\Symfony\Security\HttpRequestVerifier;
use Payum\Core\Bridge\Symfony\Security\TokenFactory;
use Payum\Core\Bridge\Twig\TwigFactory;
use Payum\Core\GatewayFactory;
use Payum\Core\Payum;
use Payum\Core\PayumBuilder;
use Payum\Core\Registry\StorageRegistryInterface;
use Payum\Core\Reply\ReplyInterface;
use Payum\Core\Security\GenericTokenFactory;
use Payum\Core\Storage\StorageInterface;
use Payum\Silex\Controller\AuthorizeController;
use Payum\Silex\Controller\CaptureController;
Expand Down Expand Up @@ -64,8 +64,8 @@ protected function registerService(Application $app)

return $action;
},
'payum.action.obtain_credit_card' => function() use($app) {
$action = new ObtainCreditCardAction($app['form.factory'], $app['payum.template.obtain_credit_card']);
'payum.action.obtain_credit_card' => function(ArrayObject $config) use($app) {
$action = new ObtainCreditCardAction($app['form.factory'], $config['payum.template.obtain_credit_card']);
$action->setRequest($app['request']);

return $action;
Expand Down Expand Up @@ -114,13 +114,14 @@ protected function registerService(Application $app)
$app['form.types'] = $app->share($app->extend('form.types', function ($types) use ($app) {
$types[] = new CreditCardType();
$types[] = new CreditCardExpirationDateType();
$types[] = new GatewayFactoriesChoiceType($app['payum.gateway_choices']);
$types[] = new GatewayFactoriesChoiceType($app['payum.gateway_factory_choices']);
$types[] = new GatewayChoiceType($app['payum.gateway_choices']);
$types[] = new GatewayConfigType($app['payum']);

return $types;
}));

$app['payum.gateway_choices'] = $app->share(function ($app) {
$app['payum.gateway_factory_choices'] = $app->share(function ($app) {
/** @var Payum $payum */
$payum = $app['payum'];

Expand All @@ -135,6 +136,18 @@ protected function registerService(Application $app)

return $choices;
});

$app['payum.gateway_choices'] = $app->share(function ($app) {
/** @var Payum $payum */
$payum = $app['payum'];

$choices = [];
foreach ($payum->getGateways() as $name => $gateway) {
$choices[$name] = ucwords(str_replace(['_'], ' ', $name));
}

return $choices;
});
}

/**
Expand Down

0 comments on commit 2dc5b7d

Please sign in to comment.