Completed
Push — master ( daab79...ba6b8c )
by Thomas
04:22
created

LanguageListJsonResponder   B

Complexity

Total Complexity 2

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 17

Importance

Changes 4
Bugs 0 Features 0
Metric Value
wmc 2
c 4
b 0
f 0
lcom 0
cbo 17
dl 0
loc 42
rs 7.8571

2 Methods

Rating   Name   Duplication   Size   Complexity  
B found() 0 27 1
A getPayloadMethods() 0 5 1
1
<?php
2
namespace keeko\core\responder;
3
4
use Symfony\Component\HttpFoundation\Request;
5
use Symfony\Component\HttpFoundation\JsonResponse;
6
use keeko\framework\foundation\AbstractPayloadResponder;
7
use keeko\core\model\Language;
8
use keeko\core\model\LanguageScope;
9
use keeko\core\model\LanguageType;
10
use keeko\core\model\LanguageScript;
11
use keeko\core\model\LanguageFamily;
12
use keeko\framework\domain\payload\Found;
13
use Tobscure\JsonApi\Document;
14
use Tobscure\JsonApi\Collection;
15
use Tobscure\JsonApi\Parameters;
16
17
/**
18
 * Automatically generated JsonResponder for List all languages
19
 * 
20
 * @author gossi
21
 */
22
class LanguageListJsonResponder extends AbstractPayloadResponder {
23
24
	/**
25
	 * @param Request $request
26
	 * @param Found $payload
27
	 */
28
	public function found(Request $request, Found $payload) {
29
		$params = new Parameters($request->query->all());
30
		$data = $payload->Model();
0 ignored issues
show
Bug introduced by
The method Model() does not seem to exist on object<keeko\framework\domain\payload\Found>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
31
		$serializer = Language::getSerializer();
32
		$resource = new Collection($data, $serializer);
33
		$resource = $resource->with($params->getInclude(['language', 'language-scope', 'language-type', 'language-script', 'language-family']));
34
		$resource = $resource->fields($params->getFields([
35
			'language' => Language::getSerializer()->getFields(),
36
			'language-scope' => LanguageScope::getSerializer()->getFields(),
37
			'language-type' => LanguageType::getSerializer()->getFields(),
38
			'language-script' => LanguageScript::getSerializer()->getFields(),
39
			'language-family' => LanguageFamily::getSerializer()->getFields()
40
		]));
41
		$document = new Document($resource);
42
43
		// meta
44
		$document->setMeta([
45
			'total' => $data->getNbResults(),
46
			'first' => $data->getFirstPage(),
47
			'next' => $data->getNextPage(),
48
			'previous' => $data->getPreviousPage(),
49
			'last' => $data->getLastPage()
50
		]);
51
52
		// return response
53
		return new JsonResponse($document->toArray());
54
	}
55
56
	/**
57
	 */
58
	protected function getPayloadMethods() {
59
		return [
60
			'keeko\framework\domain\payload\Found' => 'found'
61
		];
62
	}
63
}
64