CRUDControllerProvider::getSchemaId()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
namespace Resourceful;
4
5
use Silex\Api\ControllerProviderInterface;
6
use Silex\Application;
7
8
class CRUDControllerProvider implements ControllerProviderInterface
9
{
10
	private $schemaId;
11
12 2
	public function getSchemaId()
13
	{
14 2
		return $this->schemaId;
15
	}
16
17
18 2
	public function __construct($schemaId)
19
	{
20 2
		assert (!empty($schemaId));
21 2
		$this->schemaId=$schemaId;
22 2
	}
23
24
	
25 2
    public function connect(Application $app)
26
    {
27 2
		$routeName=$schemaId=$this->getSchemaId();
28
		
29 2
		if(isset($app["$routeName.controller"])){
30 1
			$app->abort(500,"Route $routeName mounted twice");
31
		}
32
		$app["$routeName.controller"] = function() use($schemaId){
33
			return new CRUDResourceController($schemaId);
34
		};
35
			
36
		// define middleware handlers
37 2
		$addCrudSchemaHandler = new SchemaHandler($schemaId, "crud");
38 2
		$addSchemaProfileHandler = new DescribedBySchemaHandler($schemaId);
39
		
40
		// define crud controllers
41 2
		$controllers = $app["controllers_factory"];
42 2
        $controllers->post("/", "$routeName.controller:create")
43 2
			->before($addCrudSchemaHandler)
44 2
			->after($addSchemaProfileHandler)
45
		;
46 2
        $controllers->get("/{id}", "$routeName.controller:read")
47 2
        	->bind($routeName)
48 2
			->before($addCrudSchemaHandler)
49 2
			->after($addSchemaProfileHandler)
50
		;
51 2
        $controllers->put("/{id}", "$routeName.controller:update")
52 2
			->before($addCrudSchemaHandler)
53 2
			->after($addSchemaProfileHandler)
54
		;
55 2
        $controllers->delete("/{id}","$routeName.controller:delete")
56 2
			->before($addCrudSchemaHandler)
57
		;
58
		
59 2
        return $controllers;
60
    }
61
}
62