aboutsummaryrefslogtreecommitdiff
path: root/lib/classes/JsonApi/Routes/Files/NegotiateFileRefsCreate.php
blob: 89e00e111a5a1a0a1510f00de353166170d75257 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php

namespace JsonApi\Routes\Files;

use Psr\Container\ContainerInterface;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;

class NegotiateFileRefsCreate
{
    /** @var ContainerInterface */
    private $container;

    /**
     * Der Konstruktor.
     *
     * @param ContainerInterface $container der Dependency Container
     */
    public function __construct(ContainerInterface $container)
    {
        $this->container = $container;
    }

    public function __invoke(Request $request, Response $response, array $args): Response
    {
        $contentType = $request->getHeaderLine('Content-Type');
        if ('multipart/form-data' === substr($contentType, 0, strlen('multipart/form-data'))) {
            $route = $this->container->get(FileRefsCreateByUpload::class);
        } else {
            $route = $this->container->get(FileRefsCreate::class);
        }

        return $route($request, $response, $args);
    }
}