diff --git a/lib/api/folder_subscribe.php b/lib/api/folder_subscribe.php new file mode 100644 index 0000000..d4bdff6 --- /dev/null +++ b/lib/api/folder_subscribe.php @@ -0,0 +1,48 @@ + | + +--------------------------------------------------------------------------+ + | Author: Aleksander Machniak | + +--------------------------------------------------------------------------+ +*/ + +class file_api_folder_subscribe extends file_api_common +{ + /** + * Request handler + */ + public function handle() + { + parent::handle(); + + if (!isset($this->args['folder']) || $this->args['folder'] === '') { + throw new Exception("Missing folder name", file_api_core::ERROR_CODE); + } + + list($driver, $path) = $this->api->get_driver($this->args['folder']); + + // subscribe mount point? + if ($driver->title() === $this->args['folder']) { + throw new Exception("Mount point is subscribed by default", file_api_core::ERROR_CODE); + } + + // subscribe folder... + $driver->folder_subscribe($path); + } +} diff --git a/lib/api/folder_unsubscribe.php b/lib/api/folder_unsubscribe.php new file mode 100644 index 0000000..3e647bd --- /dev/null +++ b/lib/api/folder_unsubscribe.php @@ -0,0 +1,48 @@ + | + +--------------------------------------------------------------------------+ + | Author: Aleksander Machniak | + +--------------------------------------------------------------------------+ +*/ + +class file_api_folder_unsubscribe extends file_api_common +{ + /** + * Request handler + */ + public function handle() + { + parent::handle(); + + if (!isset($this->args['folder']) || $this->args['folder'] === '') { + throw new Exception("Missing folder name", file_api_core::ERROR_CODE); + } + + list($driver, $path) = $this->api->get_driver($this->args['folder']); + + // subscribe mount point? + if ($driver->title() === $this->args['folder']) { + throw new Exception("Mount point cannot be unsubscribed", file_api_core::ERROR_CODE); + } + + // unsubscribe folder... + $driver->folder_unsubscribe($path); + } +}