request->urlParams['user']); $addressBooks = $app->getAddressBooksForUser(); $response = array(); foreach($addressBooks as $addressBook) { $response[] = $addressBook->getMetaData(); } $response = new JSONResponse( array( 'addressbooks' => $response, )); return $response; } /** * @IsAdminExemption * @IsSubAdminExemption * @Ajax */ public function getAddressBook() { $params = $this->request->urlParams; $app = new App($params['user']); $addressBook = $app->getAddressBook($params['backend'], $params['addressbookid']); $lastModified = $addressBook->lastModified(); $response = new JSONResponse(); if(!is_null($lastModified)) { $response->setLastModified(\DateTime::createFromFormat('U', $lastModified)); $response->setETag(md5($lastModified)); } $contacts = array(); foreach($addressBook->getChildren() as $i => $contact) { $result = JSONSerializer::serializeContact($contact); //\OCP\Util::writeLog('contacts', __METHOD__.' contact: '.print_r($result, true), \OCP\Util::DEBUG); if($result !== null) { $contacts[] = $result; } } $response->setParams(array( 'contacts' => $contacts, )); return $response; } /** * @IsAdminExemption * @IsSubAdminExemption * @Ajax */ public function addAddressBook() { $params = $this->request->urlParams; $app = new App($params['user']); $response = new JSONResponse(); $backend = App::getBackend('local', $params['user']); $id = $backend->createAddressBook($this->request->post); if($id === false) { $response->bailOut(App::$l10n->t('Error creating address book')); return $response; } $response->setParams($backend->getAddressBook($id)); return $response; } /** * @IsAdminExemption * @IsSubAdminExemption * @Ajax */ public function deleteAddressBook() { $params = $this->request->urlParams; $app = new App($params['user']); $response = new JSONResponse(); $backend = App::getBackend('local', $params['user']); if(!$backend->deleteAddressBook($params['addressbookid'])) { $response->bailOut(App::$l10n->t('Error deleting address book')); } return $response; } /** * @IsAdminExemption * @IsSubAdminExemption * @Ajax */ public function addChild() { $params = $this->request->urlParams; $app = new App($params['user']); $response = new JSONResponse(); $app = new App($params['user']); $addressBook = $app->getAddressBook($params['backend'], $params['addressbookid']); $id = $addressBook->addChild(); if($id === false) { $response->bailOut(App::$l10n->t('Error creating contact.')); } $contact = $addressBook->getChild($id); $response->setParams(Utils\JSONSerializer::serializeContact($contact)); return $response; } /** * @IsAdminExemption * @IsSubAdminExemption * @Ajax */ public function deleteChild() { $params = $this->request->urlParams; $app = new App($params['user']); $response = new JSONResponse(); $app = new App($params['user']); $addressBook = $app->getAddressBook($params['backend'], $params['addressbookid']); $result = $addressBook->deleteChild($params['contactid']); if($result === false) { $response->bailOut(App::$l10n->t('Error deleting contact.')); } return $response; } }