]> git.mxchange.org Git - friendica-addons.git/blob - dav/common/dav_carddav_backend_virtual.inc.php
More refactoring, mainly of the addressbook/VCARD-part
[friendica-addons.git] / dav / common / dav_carddav_backend_virtual.inc.php
1 <?php
2
3 abstract class Sabre_CardDAV_Backend_Virtual extends Sabre_CardDAV_Backend_Common
4 {
5
6         /**
7          * @static
8          * @abstract
9          * @param int $addressbookId
10          * @param string $uri
11          * @return array
12          */
13         /*
14         abstract public function getItemsByUri($addressbookId, $uri);
15     */
16
17         /**
18          * @static
19          * @param int $uid
20          * @param int $namespace
21          */
22         static public function invalidateCache($uid = 0, $namespace = 0) {
23                 q("DELETE FROM %s%sadd_virtual_object_sync WHERE `uid` = %d AND `namespace` = %d",
24                         CALDAV_SQL_DB, CALDAV_SQL_PREFIX, IntVal($uid), IntVal($namespace));
25         }
26
27         /**
28          * @static
29          * @abstract
30          * @param int $addressbookId
31          */
32         static abstract protected function createCache_internal($addressbookId);
33
34         /**
35          * @static
36          * @param int $addressbookId
37          */
38         static protected function createCache($addressbookId) {
39                 $addressbookId = IntVal($addressbookId);
40                 q("DELETE FROM %s%saddressbookobjects WHERE `addressbook_id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $addressbookId);
41                 static::createCache_internal($addressbookId);
42                 q("REPLACE INTO %s%sadd_virtual_object_sync (`addressbook_id`, `date`) VALUES (%d, NOW())", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $addressbookId);
43         }
44
45
46         /**
47          * @param string $addressbookId
48          * @return array
49          */
50         public function getCards($addressbookId)
51         {
52                 $addressbookId = IntVal($addressbookId);
53                 $r = q("SELECT COUNT(*) n FROM %s%sadd_virtual_object_sync WHERE `addressbook_id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $addressbookId);
54
55                 if ($r[0]["n"] == 0) static::createCache($addressbookId);
56
57                 return q("SELECT * FROM %s%saddressbookobjects WHERE `addressbook_id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, $addressbookId);
58
59         }
60
61         /**
62          * @param string $addressbookId
63          * @param string $objectUri
64          * @throws Sabre_DAV_Exception_NotFound
65          * @return array
66          */
67         public function getCard($addressbookId, $objectUri)
68         {
69                 $addressbookId = IntVal($addressbookId);
70                 $r = q("SELECT COUNT(*) n FROM %s%sadd_virtual_object_sync WHERE `addressbook_id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, IntVal($addressbookId));
71
72                 if ($r[0]["n"] == 0) static::createCache($addressbookId);
73
74                 $r = q("SELECT * FROM %s%saddressbookobjects WHERE `uri` = '%s' AND `addressbook_id` = %d", CALDAV_SQL_DB, CALDAV_SQL_PREFIX, dbesc($objectUri), IntVal($addressbookId));
75                 if (count($r) == 0) throw new Sabre_DAV_Exception_NotFound();
76
77                 $obj = $r[0];
78                 $ret = array(
79                         "id" => IntVal($obj["uri"]),
80                         "carddata" => $obj["carddata"],
81                         "uri" => $obj["uri"],
82                         "lastmodified" => $obj["lastmodified"],
83                         "addressbookid" => $addressbookId,
84                         "etag" => $obj["etag"],
85                         "size" => IntVal($obj["size"]),
86                 );
87                 return $ret;
88         }
89
90
91
92         /**
93          * @param string $principalUri
94          * @param string $addressbookUri
95          * @param array $properties
96          * @throws Sabre_DAV_Exception_Forbidden
97          * @return void
98          */
99         public function createAddressBook($principalUri, $addressbookUri, array $properties)
100         {
101                 throw new Sabre_DAV_Exception_Forbidden();
102         }
103
104         /**
105          * @param string $addressbookId
106          * @throws Sabre_DAV_Exception_Forbidden
107          * @return void
108          */
109         public function deleteAddressBook($addressbookId)
110         {
111                 throw new Sabre_DAV_Exception_Forbidden();
112         }
113
114
115         /**
116          * @param string $addressbookId
117          * @param string $objectUri
118          * @param string $cardData
119          * @throws Sabre_DAV_Exception_Forbidden
120          * @return null|string|void
121          */
122         function createCard($addressbookId, $objectUri, $cardData)
123         {
124                 throw new Sabre_DAV_Exception_Forbidden();
125         }
126
127         /**
128          * @param string $addressbookId
129          * @param string $objectUri
130          * @param string $cardData
131          * @throws Sabre_DAV_Exception_Forbidden
132          * @return null|string|void
133          */
134         function updateCard($addressbookId, $objectUri, $cardData)
135         {
136                 throw new Sabre_DAV_Exception_Forbidden();
137         }
138
139         /**
140          * @param string $addressbookId
141          * @param string $objectUri
142          * @throws Sabre_DAV_Exception_Forbidden
143          * @return void
144          */
145         function deleteCard($addressbookId, $objectUri)
146         {
147                 throw new Sabre_DAV_Exception_Forbidden();
148         }
149
150
151 }