_item = $item; } public function set($key, $value):void { parent::set($key, $value); $this->_data[$key] = $value; } public function setData($data=[]):void { parent::setData($data); $this->_data = []; } public function setId(string $id):void { $this->set(self::ID_FIELD, $id); } public function getId():string { return $this->get(self::ID_FIELD); } /** * @param string $id * * @return void * @throws JetBackupLinuxException * @throws SocketAPIException */ protected function load(string $id):void { if(!JetBackupLinux::isEnabled()) return; $query = SocketAPI::api( 'get' . $this->_item); $query->arg(self::ID_FIELD, $id); try { $response = $query->execute(); } catch(SocketAPIException $e) { throw new JetBackupLinuxException($e->getMessage()); } if(!$response['success']) throw new JetBackupLinuxException($response['message']); $this->setData($response['data']); } /** * @return void * @throws JetBackupLinuxException * @throws SocketAPIException */ public function save():void { if(!JetBackupLinux::isEnabled()) return; $query = SocketAPI::api( 'manage' . $this->_item); if($this->getId()) $query->arg(self::ID_FIELD, $this->getId()); $query->arg('action', $this->getId() ? 'modify' : 'create'); foreach($this->_data as $key => $value) $query->arg($key, $value); try { $response = $query->execute(); } catch(SocketAPIException $e) { throw new JetBackupLinuxException($e->getMessage()); } if(!$response['success']) throw new JetBackupLinuxException($response['message']); $this->setData($response['data']); } /** * @return void * @throws JetBackupLinuxException * @throws SocketAPIException */ public function delete():void { if(!JetBackupLinux::isEnabled() || !$this->getId()) return; $query = SocketAPI::api( 'delete' . $this->_item); $query->arg(self::ID_FIELD, $this->getId()); try { $query->execute(); } catch(SocketAPIException $e) { throw new JetBackupLinuxException($e->getMessage()); } $this->setData(); } }