-
Notifications
You must be signed in to change notification settings - Fork 2
/
KerioConnectApi.php
116 lines (106 loc) · 2.63 KB
/
KerioConnectApi.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
/**
* This file is part of the kerio-api-php.
*
* Copyright (c) Kerio Technologies s.r.o.
*
* For the full copyright and license information, please view
* the file license.txt that was distributed with this source code
* or visit Developer Zone. (http://www.kerio.com/developers)
*
* Do not modify this source code.
* Any changes may be overwritten by a new version.
*/
require_once(dirname(__FILE__) . '/class/KerioApi.php');
/**
* Administration API for Kerio Connect.
*
* This class implements product-specific methods and properties.
*
* Example:
* <code>
* <?php
* require_once(dirname(__FILE__) . '/src/KerioConnectApi.php');
*
* $api = new KerioConnectApi('Sample application', 'Company Ltd.', '1.0');
*
* try {
* $api->login('mail.company.tld', 'admin', 'SecretPassword');
* $api->sendRequest('...');
* $api->logout();
* } catch (KerioApiException $error) {
* print $error->getMessage();
* }
* ?>
* </code>
*
* @copyright Copyright © 2012-2012 Kerio Technologies s.r.o.
* @license http://www.kerio.com/developers/license/sdk-agreement
* @version 1.4.0.234
*/
class KerioConnectApi extends KerioApi {
/**
* Defines default product-specific JSON-RPC settings.
* @var array
*/
protected $jsonRpc = array(
'version' => '2.0',
'port' => 4040,
'api' => '/admin/api/jsonrpc/'
);
/**
* Class constructor.
*
* @param string Application name
* @param string Application vendor
* @param string Application version
* @return void
* @throws KerioApiException
*/
public function __construct($name, $vendor, $version) {
parent::__construct($name, $vendor, $version);
}
/**
* Set component Web Administration.
*
* @param void
* @return void
*/
public function setComponentAdmin() {
$this->setJsonRpc('2.0', 4040, '/admin/api/jsonrpc/');
}
/**
* Set component Client aka WebMail.
*
* @param void
* @return void
*/
public function setComponentClient() {
$this->setJsonRpc('2.0', 443, '/webmail/api/jsonrpc/');
}
/**
* Set component WebMail.
*
* @param void
* @return void
* @deprecated
*/
public function setComponentWebmail() {
trigger_error("Deprecated function setComponentMyphone(), use setComponentClient() instead", E_USER_NOTICE);
$this->setComponentClient();
}
/**
* Get constants defined by product.
*
* @param void
* @return array Array of constants
*/
public function getConstants() {
$response = $this->sendRequest('Server.getNamedConstantList');
$constantList = array();
foreach ($response['constants'] as $index) {
$constantList[$index['name']] = $index['value'];
}
return $constantList;
}
}