Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- declare(strict_types = 1);
- namespace App\InterServices\Billing;
- use App\Application\Middleware\Helper\Params;
- use App\InterServices\Billing\Data\AuthInfo;
- use App\InterServices\Billing\Data\BlockDepositParams;
- use App\InterServices\Billing\Data\BlockDepositResultStatus;
- use Psr\Http\Message\ResponseInterface;
- use Psr\Http\Message\ServerRequestInterface;
- use Psr\Http\Server\RequestHandlerInterface;
- use Zend\Diactoros\Response\JsonResponse;
- /**
- * Класс, отвечает за подготовку данных в формате, который требует класс BlockDeposit
- */
- class BlockDepositParamsFactory {
- public function create(array $params)
- {
- $blockDepositParams = new BlockDepositParams();
- $blockDepositParams->account = $params['account'];
- $blockDepositParams->authInfo = new AuthInfo($params['user_name'], $params['token']);
- $blockDepositParams->basis = $params['basis'];
- $blockDepositParams->nds = $params['nds'];
- return $blockDepositParams;
- }
- }
- /**
- * Упрощенный код миддлвары
- * Class BlockDepositMiddleware
- * @package App\InterServices\Billing
- */
- class BlockDepositMiddleware implements RequestHandlerInterface
- {
- /**
- * @var BlockDeposit $blockDeposit
- */
- protected $blockDeposit;
- /**
- * BlockDepositMiddleware constructor.
- * @param BlockDeposit $blockDeposit
- */
- public function __construct(BlockDeposit $blockDeposit)
- {
- $this->blockDeposit = $blockDeposit;
- }
- /**
- * Центральный метод всякого middleware
- *
- * {@inheritdoc}
- *
- * @see \Psr\Http\Server\RequestHandlerInterface::handle()
- */
- public function handle(ServerRequestInterface $request): ResponseInterface
- {
- $params = (new Params())->get($request);
- $blockDepositParamsFactory = new BlockDepositParamsFactory();
- $blockDepositParams = $blockDepositParamsFactory->create($params);
- $result = $this->blockDeposit->block($blockDepositParams);
- return new JsonResponse([
- 'result' => [
- 'status' => $result->status,
- 'message' => $result->message
- ]
- ]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement