src/Controller/AppBundle/Connector/Awacs/AwacsRequest.php line 76

Open in your IDE?
  1. <?php
  2. namespace App\Controller\AppBundle\Connector\Awacs;
  3. use Httpful\Http;
  4. use Httpful\Mime;
  5. use Httpful\Request;
  6. abstract class AwacsRequest
  7. {
  8.     const ENDPOINT 'https://172.30.190.81:9243/anva/awacs/absagent';
  9.     const KEY 'REKlfoYNyACF';
  10.     /**
  11.      * Creates the XML for the function contents
  12.      * @param $request \SimpleXMLElement XML node of Request
  13.      */
  14.     public abstract function createXML($request);
  15.     /**
  16.      * Creates XML for request.
  17.      * @return string XML request.
  18.      */
  19.     public function buildXML($datasource null)
  20.     {
  21.         $xml = new \SimpleXMLElement('<AWACS/>');
  22.         $awacs $xml;
  23.         // Create header parameters
  24.         $header $awacs->addChild('HEADER');
  25.         $header->addChild('SERVICE_ID''ABSANVA');
  26.         $header->addChild('DATASOURCE'$datasource ?? $_ENV['AWACS_DATASOURCE']);
  27.         $header->addChild('KEY'$_ENV['AWACS_KEY']);
  28.         // Add request to body
  29.         $request $awacs->addChild('DATA')->addChild('REQUEST');
  30.         // Add function specific XML
  31.         $this->createXML($request);
  32.         // Build XML file
  33.         $dom dom_import_simplexml($xml);
  34.         $requestXML $dom->ownerDocument->saveXML($dom->ownerDocument->documentElement);
  35.         return $requestXML;
  36.     }
  37.     public static function getDataSource() {
  38.         return $_ENV['APP_DEBUG'] == 'true' 'Bedrijf8' $_ENV['AWACS_DATASOURCE'];
  39.     }
  40.     /**
  41.      * Places request and returns response.
  42.      * @return AwacsResponse
  43.      */
  44.     public function send($datasource null$slotvragen null)
  45.     {
  46.         $request = ['request' => $this->buildXML($datasource ?? self::getDataSource())];
  47.         $response Request::post($_ENV['AWACS_ENDPOINT'])
  48.             ->method(Http::POST)
  49.             ->body(http_build_query($request))
  50.             ->timeoutIn(300)
  51.             ->sendsXml()
  52.             ->sendsType(Mime::FORM)
  53.             ->expectsXml()
  54.             ->send();
  55.         return new AwacsResponse($this$response->body$slotvragen);
  56.     }
  57.     /**
  58.      * Places request and returns response.
  59.      * @return AwacsResponse
  60.      */
  61.     public function sendAndRequest($datasource null$slotvragen null)
  62.     {
  63.         $request = ['request' => $this->buildXML($datasource ?? self::getDataSource())];
  64.         $response Request::post($_ENV['AWACS_ENDPOINT'])
  65.             ->method(Http::POST)
  66.             ->body(http_build_query($request))
  67.             ->timeoutIn(300)
  68.             ->sendsXml()
  69.             ->sendsType(Mime::FORM)
  70.             ->expectsXml()
  71.             ->send();
  72.         return [new AwacsResponse($this$response->body$slotvragen), $request];
  73.     }
  74.     /**
  75.      * Places request and returns response.
  76.      * @return AwacsResponse
  77.      */
  78.     public static function sendXML($xml)
  79.     {
  80.         $request = ['request' => $xml];
  81.         $response Request::post($_ENV['AWACS_ENDPOINT'])
  82.             ->method(Http::POST)
  83.             ->body(http_build_query($request))
  84.             ->timeoutIn(300)
  85.             ->sendsXml()
  86.             ->sendsType(Mime::FORM)
  87.             ->expectsXml()
  88.             ->send();
  89.         return $response;
  90.     }
  91. }