StadGent/php_package_services-opening-hours

View on GitHub
src/Handler/Channel/GetByIdHandler.php

Summary

Maintainability
A
1 hr
Test Coverage
<?php

declare(strict_types=1);

namespace StadGent\Services\OpeningHours\Handler\Channel;

use StadGent\Services\OpeningHours\Handler\HandlerAbstract;
use StadGent\Services\OpeningHours\Request\Channel\GetByIdRequest;
use StadGent\Services\OpeningHours\Response\ChannelResponse;
use StadGent\Services\OpeningHours\Value\Channel;
use Psr\Http\Message as Psr;

/**
 * Handler to Get a Channel by its Service and Channel ID.
 *
 * @package StadGent\Services\OpeningHours\Handler\Channel
 */
final class GetByIdHandler extends HandlerAbstract
{
    /**
     * @inheritDoc
     */
    public function handles(): array
    {
        return [
            GetByIdRequest::class,
        ];
    }

    /**
     * @inheritDoc
     */
    public function toResponse(Psr\ResponseInterface $response): ChannelResponse
    {
        $data = $this->getBodyData($response);
        $channel = Channel::fromArray($data);
        return new ChannelResponse($channel);
    }
}