Advertisement
Guest User

Untitled

a guest
Jul 17th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.28 KB | None | 0 0
  1. <?php
  2. declare(strict_types = 1);
  3. namespace App\InterServices\Billing;
  4.  
  5. use App\Application\Middleware\Helper\Params;
  6. use App\InterServices\Billing\Data\AuthInfo;
  7. use App\InterServices\Billing\Data\BlockDepositParams;
  8. use App\InterServices\Billing\Data\BlockDepositResultStatus;
  9. use Psr\Http\Message\ResponseInterface;
  10. use Psr\Http\Message\ServerRequestInterface;
  11. use Psr\Http\Server\RequestHandlerInterface;
  12. use Zend\Diactoros\Response\JsonResponse;
  13.  
  14. /**
  15.  * Класс, отвечает за подготовку данных в формате, который требует класс BlockDeposit
  16.  */
  17. class BlockDepositParamsFactory {
  18.  
  19.    public function create(array $params)
  20.    {
  21.        $blockDepositParams = new BlockDepositParams();
  22.        $blockDepositParams->account = $params['account'];
  23.        $blockDepositParams->authInfo = new AuthInfo($params['user_name'], $params['token']);
  24.        $blockDepositParams->basis = $params['basis'];
  25.        $blockDepositParams->nds = $params['nds'];
  26.  
  27.        return $blockDepositParams;
  28.    }
  29. }
  30.  
  31.  
  32. /**
  33.  *  Упрощенный код миддлвары
  34.  * Class BlockDepositMiddleware
  35.  * @package App\InterServices\Billing
  36.  */
  37. class BlockDepositMiddleware implements RequestHandlerInterface
  38. {
  39.  
  40.     /**
  41.      * @var BlockDeposit $blockDeposit
  42.      */
  43.    protected $blockDeposit;
  44.  
  45.     /**
  46.      * BlockDepositMiddleware constructor.
  47.      * @param BlockDeposit $blockDeposit
  48.      */
  49.     public function __construct(BlockDeposit $blockDeposit)
  50.     {
  51.         $this->blockDeposit = $blockDeposit;
  52.     }
  53.  
  54.  
  55.     /**
  56.      * Центральный метод всякого middleware
  57.      *
  58.      * {@inheritdoc}
  59.      *
  60.      * @see \Psr\Http\Server\RequestHandlerInterface::handle()
  61.      */
  62.     public function handle(ServerRequestInterface $request): ResponseInterface
  63.     {
  64.         $params = (new Params())->get($request);
  65.         $blockDepositParamsFactory = new BlockDepositParamsFactory();
  66.         $blockDepositParams = $blockDepositParamsFactory->create($params);
  67.  
  68.         $result = $this->blockDeposit->block($blockDepositParams);
  69.  
  70.         return new JsonResponse([
  71.             'result' => [
  72.                 'status' => $result->status,
  73.                 'message' => $result->message
  74.             ]
  75.         ]);
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement