Completed
Pull Request — master (#1181)
by Thomas
52:59
created

ConvertAddresses   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 75%

Importance

Changes 1
Bugs 1 Features 0
Metric Value
wmc 8
c 1
b 1
f 0
lcom 0
cbo 0
dl 0
loc 52
ccs 18
cts 24
cp 0.75
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A hordeToString() 0 3 1
A hordeToAssoc() 0 6 1
A hordeListToStringArray() 0 7 2
A hordeListToAssocArray() 0 7 2
A convertAddressList() 0 7 2
1
<?php
2
3
/**
4
 * ownCloud - Mail
5
 *
6
 * This file is licensed under the Affero General Public License version 3 or
7
 * later. See the COPYING file.
8
 *
9
 * @author Christoph Wurst <[email protected]>
10
 * @copyright Christoph Wurst 2015
11
 */
12
13
namespace OCA\Mail\Model;
14
15
use Horde_Imap_Client_Data_Envelope;
16
use Horde_Mail_Rfc822_List;
17
use Horde_Mail_Rfc822_Address;
18
19
trait ConvertAddresses {
20
21 6
	private function hordeToString(Horde_Mail_Rfc822_Address $address) {
22 6
		return $address->writeAddress();
23
	}
24
25 7
	private function hordeToAssoc(Horde_Mail_Rfc822_Address $address) {
26
		return [
27 7
			'label' => $address->label,
28 7
			'email' => $address->bare_address,
29 7
		];
30
	}
31
32
	/**
33
	 * Convert horde mail address list to array of strings
34
	 *
35
	 * @param Horde_Mail_Rfc822_List $list
36
	 * @return string[]
37
	 */
38 12
	protected function hordeListToStringArray(Horde_Mail_Rfc822_List $list) {
39 12
		$addresses = [];
40 12
		foreach ($list as $address) {
41 6
			$addresses[] = $this->hordeToString($address);
42 12
		}
43 12
		return $addresses;
44
	}
45
46
	/**
47
	 * @param Horde_Mail_Rfc822_List $list
48
	 * @return array
49
	 */
50
	protected function hordeListToAssocArray(Horde_Mail_Rfc822_List $list) {
51
		$addresses = [];
52
		foreach ($list as $address) {
53
			$addresses[] = $this->hordeToAssoc($address);
54
		}
55
		return $addresses;
56
	}
57
58
	/**
59
	 * @param Horde_Imap_Client_Data_Envelope|Horde_Mail_Rfc822_List $envelope
60
	 * @return array
61
	 */
62 7
	protected function convertAddressList($envelope) {
63 7
		$list = [];
64 7
		foreach ($envelope as $t) {
65 7
			$list[] = $this->hordeToAssoc($t);
66 7
		}
67 7
		return $list;
68
	}
69
70
}
71