Completed
Push — master ( eade68...4a1b69 )
by Adam
06:41
created

WebDAVFactory::getEncodings()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 8
rs 9.4285
cc 1
eloc 5
nc 1
nop 0
1
<?php
2
/**
3
 * WebDAVFactory.php
4
 *
5
 * @copyright      More in license.md
6
 * @license        http://www.ipublikuj.eu
7
 * @author         Adam Kadlec http://www.ipublikuj.eu
8
 * @package        iPublikuj:Flysystem!
9
 * @subpackage     Adapters
10
 * @since          1.0.0
11
 *
12
 * @date           23.04.16
13
 */
14
15
namespace IPub\Flysystem\Factories\Adapters;
16
17
use Nette;
18
use Nette\Utils;
19
20
use League\Flysystem;
21
use League\Flysystem\WebDAV;
22
23
use Sabre\DAV;
24
25
/**
26
 * WebDAV compress adapter filesystem factory
27
 *
28
 * @package        iPublikuj:Flysystem!
29
 * @subpackage     Adapters
30
 *
31
 * @author         Adam Kadlec <[email protected]>
32
 */
33
class WebDAVFactory
34
{
35
	const AUTH_TYPE_BASIC = 'basic';
36
	const AUTH_TYPE_DIGEST = 'digest';
37
38
	const ENCODING_IDENTITY = 'identity';
39
	const ENCODING_DEFLATE = 'deflate';
40
	const ENCODING_GZIP = 'gzip';
41
42
	/**
43
	 * @param Utils\ArrayHash $parameters
44
	 *
45
	 * @return WebDAV\WebDAVAdapter
46
	 */
47
	public static function create(Utils\ArrayHash $parameters)
48
	{
49
		$client = new DAV\Client([
50
			'baseUri'  => $parameters->baseUri,
51
			'proxy'    => $parameters->proxy,
52
			'userName' => $parameters->username,
53
			'password' => $parameters->password,
54
			'authType' => $parameters->authType ? self::getAutTypes()[$parameters->authType] : NULL,
55
			'encoding' => $parameters->encoding ? self::getEncodings()[$parameters->encoding] : NULL,
56
		]);
57
58
		return new WebDAV\WebDAVAdapter($client, $parameters->prefix);
59
	}
60
61
	/**
62
	 * @return array
63
	 */
64
	private static function getAutTypes()
65
	{
66
		return [
67
			self::AUTH_TYPE_BASIC  => DAV\Client::AUTH_BASIC,
68
			self::AUTH_TYPE_DIGEST => DAV\Client::AUTH_DIGEST,
69
		];
70
	}
71
72
	/**
73
	 * @return array
74
	 */
75
	private static function getEncodings()
76
	{
77
		return [
78
			self::ENCODING_IDENTITY => DAV\Client::ENCODING_IDENTITY,
79
			self::ENCODING_DEFLATE  => DAV\Client::ENCODING_DEFLATE,
80
			self::ENCODING_GZIP     => DAV\Client::ENCODING_GZIP,
81
		];
82
	}
83
}
84