sivi/afd.connectors

A library with connectors to fetch ADN messages

v2.0.6 2022-04-06 17:01 UTC

This package is auto-updated.

Last update: 2024-11-15 04:17:40 UTC


README

Currently implemented:

  • TIMEConnector

TIMEConnector

The TIMEConnector implements the TIME API. A prerequisite for using this API is that you have a valid Solera Digital Passport.

How to

Instantiation requires a TIMEConfig interface which you will need to implement to provide the connector with configuration details.

Example implementation:

class TIMEConfig implements \SIVI\AFDConnectors\Config\Contracts\TIMEConfig
{
    
    protected $host;
    protected $wsdlStoragePath;
    protected $certificatePath;
    protected $certificatePassphrase;

    public function __construct($host, $wsdlStoragePath, $certificatePath, $certificatePassphrase)
    {
        $this->host = $host;
        $this->wsdlStoragePath = $wsdlStoragePath;
        $this->certificatePath = $certificatePath;
        $this->certificatePassphrase = $certificatePassphrase;
    }

    /**
     * Get the host of the service
     *
     * @return string
     */
    public function getHost()
    {
        return $this->host;
    }

    /**
     * The path where the WSDL for the service will be stored.
     *
     * This is because the WSDL is not public and needs to be requested with
     * a client certificate. The PHP SOAP extension does not support
     * this and that is why a local one must be created.
     *
     * @return string
     */
    public function getWSDLStoragePath()
    {
        return $this->wsdlStoragePath;
    }

    /**
     * The path where the Solera certificate is stored.
     * This needs to be a PEM file.
     *
     * @return string
     */
    public function getCertificatePath()
    {
        return $this->certificatePath;
    }

    /**
     * The passphrase of the Solera certificate.
     *
     * @return string
     */
    public function getCertificatePassphrase()
    {
        return $this->certificatePassphrase;
    }
}

After you've got your config sorted it's time to get some messages. This piece of code will get all unread messages from TIME and print them.

use SIVI\AFDConnectors\Connectors\TIMEConnector;

// Initialize config
$config = new TIMEConfig(
    'https://www.web.service/sts/portal',
    '/tmp/',
    '/path/to/solera/certificate.pem',
    'certificate password'
);

// Initialize connector
$connector = new TIMEConnector($config);

// This will return an array of SIVI\AFD\Interfaces\TIME\Message items 
// which implement the SIVI\AFD\Interfaces\BatchMessage interface. 
foreach ($connector->getMessage() as $batchMessage) {
    // This will return an array of SIVI\AFD\Interfaces\TIME\Message items 
    // which implement the SIVI\AFD\Interfaces\Message interface.
    foreach ($batchMessage->getMessages() as $message) {
        echo sprintf('TIME Message extension: %s%s', $message->getType(), PHP_EOL);
        echo sprintf('TIME Message content: %s%s%s', PHP_EOL, $message->getData(), PHP_EOL);
    }
}