126 lines
2.9 KiB
PHP
126 lines
2.9 KiB
PHP
|
<?php
|
||
|
|
||
|
class Sabre_CardDAV_Backend_Mock extends Sabre_CardDAV_Backend_Abstract {
|
||
|
|
||
|
public $addressBooks;
|
||
|
public $cards;
|
||
|
|
||
|
function __construct($addressBooks = null, $cards = null) {
|
||
|
|
||
|
$this->addressBooks = $addressBooks;
|
||
|
$this->cards = $cards;
|
||
|
|
||
|
if (is_null($this->addressBooks)) {
|
||
|
$this->addressBooks = array(
|
||
|
array(
|
||
|
'id' => 'foo',
|
||
|
'uri' => 'book1',
|
||
|
'principaluri' => 'principals/user1',
|
||
|
'{DAV:}displayname' => 'd-name',
|
||
|
),
|
||
|
);
|
||
|
|
||
|
$this->cards = array(
|
||
|
'foo' => array(
|
||
|
'card1' => "BEGIN:VCARD\nVERSION:3.0\nUID:12345\nEND:VCARD",
|
||
|
'card2' => "BEGIN:VCARD\nVERSION:3.0\nUID:45678\nEND:VCARD",
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
function getAddressBooksForUser($principalUri) {
|
||
|
|
||
|
$books = array();
|
||
|
foreach($this->addressBooks as $book) {
|
||
|
if ($book['principaluri'] === $principalUri) {
|
||
|
$books[] = $book;
|
||
|
}
|
||
|
}
|
||
|
return $books;
|
||
|
|
||
|
}
|
||
|
|
||
|
function updateAddressBook($addressBookId, array $mutations) {
|
||
|
|
||
|
foreach($this->addressBooks as &$book) {
|
||
|
if ($book['id'] !== $addressBookId)
|
||
|
continue;
|
||
|
|
||
|
foreach($mutations as $key=>$value) {
|
||
|
$book[$key] = $value;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
return false;
|
||
|
|
||
|
}
|
||
|
|
||
|
function createAddressBook($principalUri, $url, array $properties) {
|
||
|
|
||
|
$this->addressBooks[] = array_merge($properties, array(
|
||
|
'id' => $url,
|
||
|
'uri' => $url,
|
||
|
'principaluri' => $principalUri,
|
||
|
));
|
||
|
|
||
|
}
|
||
|
|
||
|
function deleteAddressBook($addressBookId) {
|
||
|
|
||
|
foreach($this->addressBooks as $key=>$value) {
|
||
|
if ($value['id'] === $addressBookId)
|
||
|
unset($this->addressBooks[$key]);
|
||
|
}
|
||
|
unset($this->cards[$addressBookId]);
|
||
|
|
||
|
}
|
||
|
|
||
|
function getCards($addressBookId) {
|
||
|
|
||
|
$cards = array();
|
||
|
foreach($this->cards[$addressBookId] as $uri=>$data) {
|
||
|
$cards[] = array(
|
||
|
'uri' => $uri,
|
||
|
'carddata' => $data,
|
||
|
);
|
||
|
}
|
||
|
return $cards;
|
||
|
|
||
|
}
|
||
|
|
||
|
function getCard($addressBookId, $cardUri) {
|
||
|
|
||
|
if (!isset($this->cards[$addressBookId][$cardUri])) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
return array(
|
||
|
'uri' => $cardUri,
|
||
|
'carddata' => $this->cards[$addressBookId][$cardUri],
|
||
|
);
|
||
|
|
||
|
}
|
||
|
|
||
|
function createCard($addressBookId, $cardUri, $cardData) {
|
||
|
|
||
|
$this->cards[$addressBookId][$cardUri] = $cardData;
|
||
|
|
||
|
}
|
||
|
|
||
|
function updateCard($addressBookId, $cardUri, $cardData) {
|
||
|
|
||
|
$this->cards[$addressBookId][$cardUri] = $cardData;
|
||
|
|
||
|
}
|
||
|
|
||
|
function deleteCard($addressBookId, $cardUri) {
|
||
|
|
||
|
unset($this->cards[$addressBookId][$cardUri]);
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|