]> git.immae.eu Git - github/shaarli/Shaarli.git/blame - plugins/wallabag/WallabagInstance.php
Merge pull request #424 from ArthurHoaro/search
[github/shaarli/Shaarli.git] / plugins / wallabag / WallabagInstance.php
CommitLineData
938d9cce
A
1<?php\r
2\r
3/**\r
4 * Class WallabagInstance.\r
5 */\r
6class WallabagInstance\r
7{\r
8 /**\r
9 * @var array Static reference to differrent WB API versions.\r
10 * - key: version ID, must match plugin settings.\r
11 * - value: version name.\r
12 */\r
13 private static $wallabagVersions = array(\r
14 1 => '1.x',\r
15 2 => '2.x',\r
16 );\r
17\r
18 /**\r
19 * @var array Static reference to WB endpoint according to the API version.\r
20 * - key: version name.\r
21 * - value: endpoint.\r
22 */\r
23 private static $wallabagEndpoints = array(\r
24 '1.x' => '?plainurl=',\r
25 '2.x' => 'bookmarklet?url=',\r
26 );\r
27\r
28 /**\r
29 * @var string Wallabag user instance URL.\r
30 */\r
31 private $instanceUrl;\r
32\r
33 /**\r
34 * @var string Wallabag user instance API version.\r
35 */\r
36 private $apiVersion;\r
37\r
38 function __construct($instance, $version)\r
39 {\r
40 if ($this->isVersionAllowed($version)) {\r
41 $this->apiVersion = self::$wallabagVersions[$version];\r
42 } else {\r
43 // Default API version: 1.x.\r
44 $this->apiVersion = self::$wallabagVersions[1];\r
45 }\r
46\r
47 $this->instanceUrl = add_trailing_slash($instance);\r
48 }\r
49\r
50 /**\r
51 * Build the Wallabag URL to reach from instance URL and API version endpoint.\r
52 *\r
53 * @return string wallabag url.\r
54 */\r
55 public function getWallabagUrl()\r
56 {\r
57 return $this->instanceUrl . self::$wallabagEndpoints[$this->apiVersion];\r
58 }\r
59\r
60 /**\r
61 * Checks version configuration.\r
62 *\r
63 * @param mixed $version given version ID.\r
64 *\r
65 * @return bool true if it's valid, false otherwise.\r
66 */\r
67 private function isVersionAllowed($version)\r
68 {\r
69 return isset(self::$wallabagVersions[$version]);\r
70 }\r
71}\r