/** * Creates a new addressbook * * @param string $name * @param array $resourceType * @param array $properties * @return void */ public function createExtendedCollection($name, array $resourceType, array $properties) { if (!in_array('{' . Plugin::NS_CARDDAV . '}addressbook', $resourceType) || count($resourceType) !== 2) { throw new DAV\Exception\InvalidResourceType('Unknown resourceType for this collection'); } $this->carddavBackend->createAddressBook($this->principalUri, $name, $properties); }
/** * Deletes the card * * @return void */ public function delete() { $this->carddavBackend->deleteCard($this->addressBookInfo['id'], $this->cardData['uri']); }
/** * Updates properties on this node, * * The properties array uses the propertyName in clark-notation as key, * and the array value for the property value. In the case a property * should be deleted, the property value will be null. * * This method must be atomic. If one property cannot be changed, the * entire operation must fail. * * If the operation was successful, true can be returned. * If the operation failed, false can be returned. * * Deletion of a non-existent property is always successful. * * Lastly, it is optional to return detailed information about any * failures. In this case an array should be returned with the following * structure: * * array( * 403 => array( * '{DAV:}displayname' => null, * ), * 424 => array( * '{DAV:}owner' => null, * ) * ) * * In this example it was forbidden to update {DAV:}displayname. * (403 Forbidden), which in turn also caused {DAV:}owner to fail * (424 Failed Dependency) because the request needs to be atomic. * * @param array $mutations * @return bool|array */ public function updateProperties($mutations) { return $this->carddavBackend->updateAddressBook($this->addressBookInfo['id'], $mutations); }