Skip to content
This repository was archived by the owner on May 26, 2020. It is now read-only.

Commit 402e3e4

Browse files
Parametrized Form Types and continue on Middlewares
1 parent 26bc0cc commit 402e3e4

File tree

9 files changed

+372
-230
lines changed

9 files changed

+372
-230
lines changed

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
"symfony/http-foundation": "^4.0",
2525
"symfony/security-csrf": "^4.0",
2626
"psr/http-server-middleware": "1.0.0",
27-
"symfony/psr-http-message-bridge": "^1.0"
27+
"symfony/psr-http-message-bridge": "^1.0",
28+
"zendframework/zend-diactoros": "^1.7"
2829

2930
},
3031
"require-dev": {

index.php

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
use Dotpay\Fake\FakeResponseBag;
1313
use Dotpay\Response\ResponseFormType;
14+
use Psr\Http\Server\RequestHandlerInterface;
15+
use Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory;
1416
use Symfony\Bridge\Twig\Extension\FormExtension;
1517
use Symfony\Bridge\Twig\Extension\TranslationExtension;
1618
use Symfony\Bridge\Twig\Form\TwigRendererEngine;
@@ -19,6 +21,7 @@
1921
use Symfony\Component\Form\FormRenderer;
2022
use Symfony\Component\Form\Forms;
2123
use Symfony\Component\HttpFoundation\Request;
24+
use Symfony\Component\HttpFoundation\Response;
2225
use Symfony\Component\HttpFoundation\Session\Session;
2326
use Symfony\Component\Security\Csrf\CsrfTokenManager;
2427
use Symfony\Component\Security\Csrf\TokenGenerator\UriSafeTokenGenerator;
@@ -33,12 +36,80 @@
3336
$_POST
3437
);
3538

39+
$request = new Request(
40+
$_GET,
41+
(array) new FakeResponseBag()
42+
);
43+
3644
$request = Request::createFromGlobals();
45+
$psr7Factory = new DiactorosFactory();
46+
$psrRequest = $psr7Factory->createRequest($request);
47+
48+
class ErrorCodeHandler implements RequestHandlerInterface
49+
{
50+
/**
51+
* @param \Psr\Http\Message\ServerRequestInterface $request
52+
*
53+
* @return \Psr\Http\Message\ResponseInterface
54+
*/
55+
public function handle(\Psr\Http\Message\ServerRequestInterface $request): \Psr\Http\Message\ResponseInterface
56+
{
57+
$errorCode = $request->getQueryParams()['error_code'];
58+
59+
printf(
60+
'Error code was recived %s',
61+
$errorCode
62+
);
63+
64+
$symfonyResponse = new Response(sprintf('Error code %s', $errorCode));
65+
$psr7Factory = new DiactorosFactory();
66+
$psrResponse = $psr7Factory->createResponse($symfonyResponse);
67+
68+
return $psrResponse;
69+
}
70+
}
71+
72+
class URLCHandler implements RequestHandlerInterface
73+
{
74+
/**
75+
* @param \Psr\Http\Message\ServerRequestInterface $request
76+
*
77+
* @return \Psr\Http\Message\ResponseInterface
78+
*/
79+
public function handle(\Psr\Http\Message\ServerRequestInterface $request): \Psr\Http\Message\ResponseInterface
80+
{
81+
echo 'URLC Handler';
82+
$symfonyResponse = new Response();
83+
$psr7Factory = new DiactorosFactory();
84+
$psrResponse = $psr7Factory->createResponse($symfonyResponse);
85+
86+
return $psrResponse;
87+
}
88+
}
3789

38-
if ($request->get('completed')) {
39-
exit('Transaction was completed');
90+
try {
91+
// $errorState = new \Dotpay\Server\ErrorCode(new InstanceOfErrorCodeHabdker);
92+
// $errorState->process($psrRequest, new ErrorCodeHandler);
93+
//
94+
95+
$urlcHandler = new URLCHandler();
96+
$urlc = new \Dotpay\Server\URLC('Np3n4QmXxp6MOTrLCVs905fdrGf3QIGm');
97+
$urlc->process($psrRequest, $urlcHandler);
98+
} catch (Throwable $e) {
99+
echo <<<EXCEPTION
100+
<h1>Exception thrown<h1>
101+
<h3>Exception message: {$e->getMessage()}</h3>
102+
<pre>${e}</pre>
103+
throw ${e};
104+
EXCEPTION;
105+
} finally {
106+
echo <<<'finally'
107+
<h5>Response was handled by the server</h5>
108+
finally;
40109
}
41110

111+
exit();
112+
42113
$session = new Session();
43114
$csrfGenerator = new UriSafeTokenGenerator();
44115
$csrfStorage = new SessionTokenStorage($session);

0 commit comments

Comments
 (0)