RebelCode/rcmod-eddbk-rest-api

View on GitHub
src/Transformer/CoreInfoServiceTransformer.php

Summary

Maintainability
A
1 hr
Test Coverage
<?php

namespace RebelCode\EddBookings\RestApi\Transformer;

use Dhii\Transformer\TransformerInterface;
use RebelCode\Transformers\MapTransformer;

/**
 * A services transformer that transformers services with only their core information.
 *
 * @since [*next-version*]
 */
class CoreInfoServiceTransformer extends MapTransformer
{
    /**
     * The transformer for session type lists.
     *
     * @since [*next-version*]
     *
     * @var TransformerInterface
     */
    protected $sessionTypeListT9r;

    /**
     * Constructor.
     *
     * @since [*next-version*]
     *
     * @param TransformerInterface $sessionTypeListT9r The transformer for session type lists.
     */
    public function __construct(TransformerInterface $sessionTypeListT9r)
    {
        $this->sessionTypeListT9r = $sessionTypeListT9r;

        parent::__construct($this->_getServiceMapConfig());
    }

    /**
     * Retrieves the map config for this service transformer.
     *
     * @since [*next-version*]
     *
     * @return array
     */
    protected function _getServiceMapConfig()
    {
        return [
            [
                MapTransformer::K_SOURCE => 'id',
                MapTransformer::K_TARGET => 'id',
            ],
            [
                MapTransformer::K_SOURCE => 'name',
                MapTransformer::K_TARGET => 'name',
            ],
            [
                MapTransformer::K_SOURCE => 'description',
                MapTransformer::K_TARGET => 'description',
            ],
            [
                MapTransformer::K_SOURCE => 'image_url',
                MapTransformer::K_TARGET => 'imageSrc',
            ],
            [
                MapTransformer::K_SOURCE => 'session_types',
                MapTransformer::K_TARGET => 'sessionTypes',
                MapTransformer::K_TRANSFORMER => $this->sessionTypeListT9r,
            ],
            [
                MapTransformer::K_SOURCE => 'timezone',
            ],
            [
                MapTransformer::K_SOURCE => 'display_options',
                MapTransformer::K_TARGET => 'displayOptions',
            ],
        ];
    }
}