Passed
Push — master ( 03e013...bd5966 )
by Anatoly
01:18 queued 14s
created

MultipleCreateController::handle()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 3
nc 1
nop 1
dl 0
loc 7
c 1
b 0
f 0
cc 1
ccs 4
cts 4
cp 1
crap 1
rs 10
1
<?php declare(strict_types=1);
2
3
namespace App\Controller\Entry;
4
5
/**
6
 * Import classes
7
 */
8
use App\ContainerAwareTrait;
9
use App\Http\ResponseFactory;
10
use Psr\Http\Message\ResponseInterface;
11
use Psr\Http\Message\ServerRequestInterface;
12
use Psr\Http\Server\RequestHandlerInterface;
13
14
/**
15
 * @Route(
16
 *   name="api.entry.multiple.create",
17
 *   path="/api/v1/entry",
18
 *   methods={"PUT"},
19
 *   middlewares={
20
 *     "App\Middleware\RequestBodyValidationMiddleware",
21
 *   },
22
 * )
23
 *
24
 * @OpenApi\Operation(
25
 *   tags={"Entry", "Multiple Entry"},
26
 *   summary="Multiple creation of entries",
27
 *   requestBody=@OpenApi\RequestBody(
28
 *     content={
29
 *       "application/json": @OpenApi\MediaType(
30
 *         schema=@OpenApi\Schema(
31
 *           type="array",
32
 *           minItems=1,
33
 *           items=@OpenApi\Schema(
34
 *             type="object",
35
 *             required={"name"},
36
 *             properties={
37
 *               "name"=@OpenApi\SchemaReference(
38
 *                 class="App\Entity\Entry",
39
 *                 property="name",
40
 *               ),
41
 *             },
42
 *           ),
43
 *         ),
44
 *       ),
45
 *     },
46
 *   ),
47
 *   responses={
48
 *     201: @OpenApi\ResponseReference(
49
 *       class="App\Http\ResponseFactory",
50
 *       method="emptyOk",
51
 *     ),
52
 *     "default": @OpenApi\ResponseReference(
53
 *       class="App\Http\ResponseFactory",
54
 *       method="error",
55
 *     ),
56
 *   },
57
 * )
58
 */
59
final class MultipleCreateController implements RequestHandlerInterface
60
{
61
    use ContainerAwareTrait;
62
63
    /**
64
     * {@inheritDoc}
65
     *
66
     * @param ServerRequestInterface $request
67
     *
68
     * @return ResponseInterface
69
     */
70 1
    public function handle(ServerRequestInterface $request) : ResponseInterface
71
    {
72 1
        $service = $this->container->get('service.entry');
73
74 1
        $service->multipleCreate(...$request->getParsedBody());
75
76 1
        return (new ResponseFactory)->emptyOk(201);
77
    }
78
}
79