1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- /**
- * Class WallabagInstance.
- */
- class WallabagInstance
- {
- /**
- * @var array Static reference to differrent WB API versions.
- * - key: version ID, must match plugin settings.
- * - value: version name.
- */
- private static $wallabagVersions = array(
- 1 => '1.x',
- 2 => '2.x',
- );
- /**
- * @var array Static reference to WB endpoint according to the API version.
- * - key: version name.
- * - value: endpoint.
- */
- private static $wallabagEndpoints = array(
- '1.x' => '?plainurl=',
- '2.x' => 'bookmarklet?url=',
- );
- /**
- * @var string Wallabag user instance URL.
- */
- private $instanceUrl;
- /**
- * @var string Wallabag user instance API version.
- */
- private $apiVersion;
- public function __construct($instance, $version)
- {
- if ($this->isVersionAllowed($version)) {
- $this->apiVersion = self::$wallabagVersions[$version];
- } else {
- // Default API version: 1.x.
- $this->apiVersion = self::$wallabagVersions[1];
- }
- $this->instanceUrl = add_trailing_slash($instance);
- }
- /**
- * Build the Wallabag URL to reach from instance URL and API version endpoint.
- *
- * @return string wallabag url.
- */
- public function getWallabagUrl()
- {
- return $this->instanceUrl . self::$wallabagEndpoints[$this->apiVersion];
- }
- /**
- * Checks version configuration.
- *
- * @param mixed $version given version ID.
- *
- * @return bool true if it's valid, false otherwise.
- */
- private function isVersionAllowed($version)
- {
- return isset(self::$wallabagVersions[$version]);
- }
- }
|