]> git.mxchange.org Git - friendica-addons.git/blobdiff - dav/friendica/database-init.inc.php
Merge pull request #556 from tobiasd/20180321-nl
[friendica-addons.git] / dav / friendica / database-init.inc.php
index 7c0d23a3a98396621817db629bbaf14c06b560e5..d8ef96ebff3173950d5d3fec365f2f144c2cbbcf 100644 (file)
@@ -7,7 +7,7 @@
  */
 function dav_get_update_statements($from_version)
 {
-       $stms = array();
+       $stms = [];
 
        if ($from_version == 1) {
                $stms[] = "ALTER TABLE `dav_calendarobjects`
@@ -30,7 +30,7 @@ function dav_get_update_statements($from_version)
                        `dav_locks` ,
                        `dav_notifications` ;";
 
-               $stms = array_merge($stms, dav_get_create_statements(array("dav_calendarobjects")));
+               $stms = array_merge($stms, dav_get_create_statements(["dav_calendarobjects"]));
 
                $user_ids = q("SELECT DISTINCT `uid` FROM %s%scalendars", CALDAV_SQL_DB, CALDAV_SQL_PREFIX);
                foreach ($user_ids as $user) $stms = array_merge($stms, wdcal_create_std_calendars_get_statements($user["uid"], false));
@@ -43,17 +43,14 @@ function dav_get_update_statements($from_version)
 
        }
 
-       if (in_array($from_version, array(1, 2))) {
-               $stms[] = "DROP TABLE `dav_addressbooks_phone`";
-               $stms[] = "DROP TABLE `dav_addressbooks_community`";
-               $stms[] = "DROP TABLE `dav_cards`";
-
+       if (in_array($from_version, [1, 2])) {
                $stms[] = "CREATE TABLE IF NOT EXISTS `dav_addressbooks` (
   `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
   `namespace` mediumint(9) NOT NULL,
   `namespace_id` int(11) unsigned NOT NULL,
   `displayname` varchar(200) NOT NULL,
   `description` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
+  `needs_rebuild` TINYINT NOT NULL DEFAULT '1',
   `uri` varchar(50) NOT NULL,
   `ctag` int(11) unsigned NOT NULL DEFAULT '1',
   PRIMARY KEY (`id`)
@@ -66,7 +63,7 @@ function dav_get_update_statements($from_version)
   `carddata` mediumtext CHARACTER SET utf8 COLLATE utf8_unicode_ci,
   `uri` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
   `lastmodified` timestamp NULL DEFAULT NULL,
-  `manually_edited` tinyint(4) NOT NULL DEFAULT '0',
+  `needs_rebuild` tinyint(4) NOT NULL DEFAULT '0',
   `manually_deleted` tinyint(4) NOT NULL DEFAULT '0',
   `etag` varchar(15) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
   `size` int(10) unsigned NOT NULL,
@@ -83,9 +80,9 @@ function dav_get_update_statements($from_version)
  * @param array $except
  * @return array
  */
-function dav_get_create_statements($except = array())
+function dav_get_create_statements($except = [])
 {
-       $arr = array();
+       $arr = [];
 
        if (!in_array("dav_caldav_log", $except)) $arr[] = "CREATE TABLE IF NOT EXISTS `dav_caldav_log` (
   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
@@ -194,6 +191,7 @@ function dav_get_create_statements($except = array())
   `namespace_id` int(11) unsigned NOT NULL,
   `displayname` varchar(200) NOT NULL,
   `description` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
+  `needs_rebuild` TINYINT NOT NULL DEFAULT '1',
   `uri` varchar(50) NOT NULL,
   `ctag` int(11) unsigned NOT NULL DEFAULT '1',
   PRIMARY KEY (`id`)
@@ -206,7 +204,7 @@ function dav_get_create_statements($except = array())
   `carddata` mediumtext CHARACTER SET utf8 COLLATE utf8_unicode_ci,
   `uri` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
   `lastmodified` timestamp NULL DEFAULT NULL,
-  `manually_edited` tinyint(4) NOT NULL DEFAULT '0',
+  `needs_rebuild` tinyint(4) NOT NULL DEFAULT '0',
   `manually_deleted` tinyint(4) NOT NULL DEFAULT '0',
   `etag` varchar(15) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
   `size` int(10) unsigned NOT NULL,
@@ -226,8 +224,12 @@ function dav_check_tables()
        $x = q("DESCRIBE %s%scalendars", CALDAV_SQL_DB, CALDAV_SQL_PREFIX);
        if (!$x) return -1;
        if (count($x) == 9) return 1; // Version 0.1
-       // @TODO Detect Version 0.2
+
+       $x2 = q("show tables like '%s%saddressbooks'", CALDAV_SQL_DB, CALDAV_SQL_PREFIX);
+       if (!$x2 || count($x2) == 0) return 2; // Version 0.2
+
        if (count($x) == 12) return 0; // Correct
+
        return -2; // Unknown version
 }
 
@@ -238,12 +240,13 @@ function dav_check_tables()
 function dav_create_tables()
 {
        $stms   = dav_get_create_statements();
-       $errors = array();
+       $errors = [];
 
-       global $db;
-       foreach ($stms as $st) {
-               $db->q($st);
-               if ($db->error) $errors[] = $db->error;
+       foreach ($stms as $st) { // @TODO Friendica-dependent
+               dba::e($st);
+               if (dba::errorMessage()) {
+                       $errors[] = dba::errorMessage();
+               }
        }
 
        return $errors;
@@ -255,16 +258,17 @@ function dav_create_tables()
 function dav_upgrade_tables()
 {
        $ver = dav_check_tables();
-       if (!in_array($ver, array(1))) return array("Unknown error");
-
+       if (!in_array($ver, [1, 2])) return ["Unknown error"];
        $stms   = dav_get_update_statements($ver);
-       $errors = array();
 
-       global $db;
-       foreach ($stms as $st) {
-               $db->q($st);
-               if ($db->error) $errors[] = $db->error;
+       $errors = [];
+
+       foreach ($stms as $st) { // @TODO Friendica-dependent
+               dba::e($st);
+               if (dba::errorMessage()) {
+                       $errors[] = dba::errorMessage();
+               }
        }
 
        return $errors;
-}
\ No newline at end of file
+}