Completed
Push — master ( 8af693...a60473 )
by Enrico
03:36
created

PutResourceController::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 5
ccs 4
cts 4
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 2
crap 1
1
<?php
2
3
namespace Resourceful\Controller;
4
5
use Doctrine\Common\Cache\Cache;
6
use Silex\Application;
7
use Symfony\Component\HttpFoundation\Request;
8
use Symfony\Component\HttpKernel\Exception\ServiceUnavailableHttpException;
9
10
class PutResourceController extends AbstractSchemaValidatedResourceController
11
{
12 4
    public function __invoke(Application $app, Request $request, $id)
13
    {
14 4
		$store = $this->getStore($app);
15
		
16 4
        $requestJson = $request->getContent() ?: "{}";
17 4
        $data = json_decode($requestJson);
18
19 4
        $this->validate($app, $id, $data);
20
21 3
        $isCreated = !$store->contains($request->getRequestUri());
22 3
        if ($store->save($request->getRequestUri(), $data) === false) {
23 1
            throw new ServiceUnavailableHttpException(null, "Failed to save resource");
24
        }
25
26 2
		return $app->json($data,$isCreated?201:200);
27
    }
28
29
}
30