blob: 78ed85d4c2b0ce877af2121248dec33e50b39f93 (
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
<?php
namespace JsonApi;
use DI\ContainerBuilder;
use JsonApi\JsonApiIntegration\QueryParser;
use JsonApi\JsonApiIntegration\QueryParserInterface;
use Neomerx\JsonApi\Contracts\Encoder\EncoderInterface;
use Neomerx\JsonApi\Contracts\Factories\FactoryInterface;
use Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersParserInterface;
use Neomerx\JsonApi\Contracts\Http\Headers\MediaTypeInterface;
use Neomerx\JsonApi\Contracts\Http\ResponsesInterface;
use Neomerx\JsonApi\Contracts\Schema\SchemaContainerInterface;
use Neomerx\JsonApi\Http\Headers\HeaderParametersParser;
use Neomerx\JsonApi\Http\Headers\MediaType;
use Psr\Container\ContainerInterface;
return function (ContainerBuilder $containerBuilder) {
$containerBuilder->addDefinitions([
FactoryInterface::class => \DI\create(JsonApiIntegration\Factory::class),
HeaderParametersParserInterface::class => function (FactoryInterface $factory) {
return new HeaderParametersParser($factory);
},
SchemaContainerInterface::class => function (ContainerInterface $container, FactoryInterface $factory) {
$schemas = [];
$user = $container->get('studip-current-user');
foreach ($container->get('json-api-integration-schemas') as $key => $classname) {
$schemas[$key] = function ($schemaContainer) use ($classname, $factory, $user) {
return new $classname($factory, $schemaContainer, $user);
};
}
return $factory->createSchemaContainer($schemas);
},
EncoderInterface::class => function (
ContainerInterface $container,
FactoryInterface $factory,
SchemaContainerInterface $schemaContainer
) {
$urlPrefix = $container->get('json-api-integration-urlPrefix');
$encoder = $factory->createEncoder($schemaContainer)->withUrlPrefix($urlPrefix);
return $encoder;
},
QueryParserInterface::class => function (ContainerInterface $container) {
$request = $container->get('request');
$parameters = $request->getQueryParams();
$queryParser = new QueryParser($parameters);
return $queryParser;
},
]);
};
|