ItemListSerializer::serializeList()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
nc 2
nop 1
dl 0
loc 9
ccs 6
cts 6
cp 1
crap 2
rs 9.9666
c 0
b 0
f 0
1
<?php
2
3
namespace Queryr\Serialization;
4
5
use Queryr\Resources\ItemList;
6
use Queryr\Resources\ItemListElement;
7
use Serializers\Exceptions\UnsupportedObjectException;
8
use Serializers\Serializer;
9
10
/**
11
 * @access private
12
 * @licence GNU GPL v2+
13
 * @author Jeroen De Dauw < [email protected] >
14
 */
15
class ItemListSerializer implements Serializer {
16
17 2
	public function serialize( $object ) {
18 2
		if ( !( $object instanceof ItemList ) ) {
19 1
			throw new UnsupportedObjectException( $object, 'Can only serialize instances of ItemList' );
20
		}
21
22 1
		return $this->serializeList( $object );
23
	}
24
25 1
	private function serializeList( ItemList $list ) {
26 1
		$serialization = [];
27
28 1
		foreach ( $list->getElements() as $element ) {
29 1
			$serialization[] = $this->serializeElement( $element );
30 1
		}
31
32 1
		return $serialization;
33
	}
34
35 1
	private function serializeElement( ItemListElement $element ) {
36 1
		$summary = [];
37 1
		$summary['id'] = $element->getItemId()->getSerialization();
38
39 1
		if ( $element->getLabel() !== null ) {
40 1
			$summary['label'] = $element->getLabel();
41 1
		}
42
43 1
		$summary['updated_at'] = $element->getLastUpdateTime();
44 1
		$summary['url'] = $element->getQueryrApiUrl();
45 1
		$summary['wikidata_url'] = $element->getWikidataUrl();
46
47 1
		if ( $element->getWikipediaPageUrl() !== null ) {
48 1
			$summary['wikipedia_url'] = $element->getWikipediaPageUrl();
49 1
		}
50
51 1
		return $summary;
52
	}
53
54
}
55