From 160886a0ec753c1b3781d78e62fff36f7b28b19a Mon Sep 17 00:00:00 2001 From: Max Pozdeev Date: Wed, 28 Jul 2021 21:11:52 +0300 Subject: [PATCH] refactor get_ver() in setup --- src/setup.php | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/src/setup.php b/src/setup.php index efa5837..42bc8fe 100644 --- a/src/setup.php +++ b/src/setup.php @@ -278,32 +278,20 @@ printFooter(); function get_ver(Database_Abstract $db, $dbtype) { - if(!$db || $dbtype == '') return ''; - if(!$db->tableExists($db->prefix.'todolist')) return ''; + if ( !$db || $dbtype == '' ) return ''; + if ( !$db->tableExists($db->prefix.'todolist') ) return ''; $v = '1.0'; - if(!$db->tableExists($db->prefix.'tags')) return $v; + if ( !$db->tableExists($db->prefix.'tags') ) return $v; $v = '1.1'; - if($dbtype == 'mysql') { - if(!has_field_mysql($db, $db->prefix.'todolist', 'duedate')) return $v; - } else { - if(!has_field_sqlite($db, $db->prefix.'todolist', 'duedate')) return $v; - } + if ( !db_has_field($dbtype, $db, $db->prefix.'todolist', 'duedate') ) return $v; $v = '1.2'; - if(!$db->tableExists($db->prefix.'lists')) return $v; + if ( !$db->tableExists($db->prefix.'lists') ) return $v; $v = '1.3.0'; - if($dbtype == 'mysql') { - if(!has_field_mysql($db, $db->prefix.'todolist', 'd_completed')) return $v; - } else { - if(!has_field_sqlite($db, $db->prefix.'todolist', 'd_completed')) return $v; - } + if ( !db_has_field($dbtype, $db, $db->prefix.'todolist', 'd_completed') ) return $v; $v = '1.3.1'; - if($dbtype == 'mysql') { - if(!has_field_mysql($db, $db->prefix.'todolist', 'd_edited')) return $v; - } else { - if(!has_field_sqlite($db, $db->prefix.'todolist', 'd_edited')) return $v; - } + if ( !db_has_field($dbtype, $db, $db->prefix.'todolist', 'd_edited') ) return $v; $v = '1.4'; - if (!$db->tableExists($db->prefix.'settings')) return $v; + if ( !$db->tableExists($db->prefix.'settings') ) return $v; $v = '1.7'; return $v; } @@ -320,6 +308,12 @@ function printFooter() echo ""; } +function db_has_field($dbtype, Database_Abstract $db, $table, $field) +{ + if ($dbtype == 'mysql') return has_field_mysql($db, $table, $field); + elseif ($dbtype == 'sqlite') return has_field_sqlite($db, $table, $field); + else throw new Exception("Unexpected database type"); +} function has_field_sqlite(Database_Abstract $db, $table, $field) {