summaryrefslogtreecommitdiff
path: root/src/Concerns/Strategy/RunsRoute.php
blob: 849ae8093a9a474361808f6b65a1c115fbef863e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php

declare(strict_types=1);

namespace Lightscale\Router\Concerns\Strategy;

use Lightscale\Router\Exceptions\InvalidResponseException;
use Lightscale\Router\RouteCall;
use Psr\Http\Message\ResponseInterface;

trait RunsRoute
{
    public function runRoute(RouteCall $call): ResponseInterface
    {
        $result = ($call->route->getHandler())($call);

        if ($result instanceof ResponseInterface) {
            return $result;
        }

        throw new InvalidResponseException();
    }
}