From de8781207e9c3cd0f3adede59dce05ab33c0f98b Mon Sep 17 00:00:00 2001 From: Daniel Brendel Date: Mon, 3 Feb 2025 22:25:14 +0100 Subject: [PATCH] #211 TasksModel migration --- app/commands/MigrationUpgrade.php | 6 ++++++ app/migrations/TasksModel.php | 2 +- app/models/TasksModel.php | 36 +++++++++++-------------------- app/modules/TextBlockModule.php | 2 +- 4 files changed, 21 insertions(+), 25 deletions(-) diff --git a/app/commands/MigrationUpgrade.php b/app/commands/MigrationUpgrade.php index e63053b..b9dd3c8 100644 --- a/app/commands/MigrationUpgrade.php +++ b/app/commands/MigrationUpgrade.php @@ -132,6 +132,12 @@ class MigrationUpgrade implements Asatru\Commands\Command { } catch (\Exception $e) { echo $e->getMessage() . PHP_EOL; } + + try { + TasksModel::raw('RENAME TABLE `tasks` TO `@THIS`'); + } catch (\Exception $e) { + echo $e->getMessage() . PHP_EOL; + } } /** diff --git a/app/migrations/TasksModel.php b/app/migrations/TasksModel.php index 21cba65..8a53385 100644 --- a/app/migrations/TasksModel.php +++ b/app/migrations/TasksModel.php @@ -25,7 +25,7 @@ class TasksModel_Migration { */ public function up() { - $this->database = new Asatru\Database\Migration('tasks', $this->connection); + $this->database = new Asatru\Database\Migration('TasksModel', $this->connection); $this->database->drop(); $this->database->add('id INT NOT NULL AUTO_INCREMENT PRIMARY KEY'); $this->database->add('title VARCHAR(512) NOT NULL'); diff --git a/app/models/TasksModel.php b/app/models/TasksModel.php index 8b0bded..a605880 100644 --- a/app/models/TasksModel.php +++ b/app/models/TasksModel.php @@ -22,14 +22,14 @@ class TasksModel extends \Asatru\Database\Model { throw new \Exception('Invalid user'); } - static::raw('INSERT INTO `' . self::tableName() . '` (title, description, due_date) VALUES(?, ?, ?)', [$title, $description, $due_date]); + static::raw('INSERT INTO `@THIS` (title, description, due_date) VALUES(?, ?, ?)', [$title, $description, $due_date]); if (!$api) { LogModel::addLog($user->get('id'), 'tasks', 'add_task', $title, url('/tasks')); TextBlockModule::createdTask($title, url('/tasks')); } - $latest = static::raw('SELECT * FROM `' . self::tableName() . '` ORDER BY id DESC LIMIT 1')->first(); + $latest = static::raw('SELECT * FROM `@THIS` ORDER BY id DESC LIMIT 1')->first(); if ($latest) { return $latest->get('id'); } @@ -58,7 +58,7 @@ class TasksModel extends \Asatru\Database\Model { throw new \Exception('Invalid user'); } - $item = static::raw('SELECT * FROM `' . self::tableName() . '` WHERE id = ?', [$taskId])->first(); + $item = static::raw('SELECT * FROM `@THIS` WHERE id = ?', [$taskId])->first(); if ($title === null) { $title = $item->get('title'); @@ -78,7 +78,7 @@ class TasksModel extends \Asatru\Database\Model { $done = $item->get('done'); } - static::raw('UPDATE `' . self::tableName() . '` SET title = ?, description = ?, due_date = ?, done = ? WHERE id = ?', [$title, $description, $due_date, $done, $taskId]); + static::raw('UPDATE `@THIS` SET title = ?, description = ?, due_date = ?, done = ? WHERE id = ?', [$title, $description, $due_date, $done, $taskId]); if (!$api) { LogModel::addLog($user->get('id'), 'tasks', 'edit_task', $title, url('/tasks#task-anchor-' . $taskId)); @@ -101,7 +101,7 @@ class TasksModel extends \Asatru\Database\Model { throw new \Exception('Invalid user'); } - static::raw('UPDATE `' . self::tableName() . '` SET done = 1 WHERE id = ?', [$taskId]); + static::raw('UPDATE `@THIS` SET done = 1 WHERE id = ?', [$taskId]); $task = static::getTask($taskId); @@ -125,7 +125,7 @@ class TasksModel extends \Asatru\Database\Model { throw new \Exception('Invalid user'); } - static::raw('UPDATE `' . self::tableName() . '` SET done = NOT done WHERE id = ?', [$taskId]); + static::raw('UPDATE `@THIS` SET done = NOT done WHERE id = ?', [$taskId]); $task = static::getTask($taskId); @@ -151,9 +151,9 @@ class TasksModel extends \Asatru\Database\Model { { try { if (!$done) { - return static::raw('SELECT * FROM `' . self::tableName() . '` WHERE done = ? ORDER BY -due_date DESC, created_at DESC LIMIT ' . $limit, [$done]); + return static::raw('SELECT * FROM `@THIS` WHERE done = ? ORDER BY -due_date DESC, created_at DESC LIMIT ' . $limit, [$done]); } else { - return static::raw('SELECT * FROM `' . self::tableName() . '` WHERE done = ? ORDER BY created_at DESC LIMIT ' . $limit, [$done]); + return static::raw('SELECT * FROM `@THIS` WHERE done = ? ORDER BY created_at DESC LIMIT ' . $limit, [$done]); } } catch (\Exception $e) { throw $e; @@ -167,7 +167,7 @@ class TasksModel extends \Asatru\Database\Model { public static function getOverdueTasks() { try { - return static::raw('SELECT * FROM `' . self::tableName() . '` WHERE done = 0 AND DATE(due_date) < CURRENT_DATE ORDER BY due_date ASC'); + return static::raw('SELECT * FROM `@THIS` WHERE done = 0 AND DATE(due_date) < CURRENT_DATE ORDER BY due_date ASC'); } catch (\Exception $e) { throw $e; } @@ -181,7 +181,7 @@ class TasksModel extends \Asatru\Database\Model { { try { $tomorrow = date('Y-m-d', strtotime('+1 day')); - return static::raw('SELECT * FROM `' . self::tableName() . '` WHERE done = 0 AND DATE(due_date) = ? ORDER BY due_date ASC', [$tomorrow]); + return static::raw('SELECT * FROM `@THIS` WHERE done = 0 AND DATE(due_date) = ? ORDER BY due_date ASC', [$tomorrow]); } catch (\Exception $e) { throw $e; } @@ -194,7 +194,7 @@ class TasksModel extends \Asatru\Database\Model { public static function getOpenTaskCount() { try { - return static::raw('SELECT COUNT(*) AS count FROM `' . self::tableName() . '` WHERE done = 0')->first()->get('count'); + return static::raw('SELECT COUNT(*) AS count FROM `@THIS` WHERE done = 0')->first()->get('count'); } catch (\Exception $e) { throw $e; } @@ -208,7 +208,7 @@ class TasksModel extends \Asatru\Database\Model { public static function getTask($id) { try { - return static::raw('SELECT * FROM `' . self::tableName() . '` WHERE id = ?', [$id])->first(); + return static::raw('SELECT * FROM `@THIS` WHERE id = ?', [$id])->first(); } catch (\Exception $e) { throw $e; } @@ -260,19 +260,9 @@ class TasksModel extends \Asatru\Database\Model { public static function removeTask($taskId) { try { - static::raw('DELETE FROM `' . self::tableName() . '` WHERE id = ?', [$taskId]); + static::raw('DELETE FROM `@THIS` WHERE id = ?', [$taskId]); } catch (\Exception $e) { throw $e; } } - - /** - * Return the associated table name of the migration - * - * @return string - */ - public static function tableName() - { - return 'tasks'; - } } \ No newline at end of file diff --git a/app/modules/TextBlockModule.php b/app/modules/TextBlockModule.php index f0ba042..2ba4167 100644 --- a/app/modules/TextBlockModule.php +++ b/app/modules/TextBlockModule.php @@ -212,7 +212,7 @@ class TextBlockModule { $icon = html_entity_decode('&#' . $icon, ENT_COMPAT | ENT_QUOTES); - ChatMsgModel::raw('INSERT INTO `' . ChatMsgModel::tableName() . '` (userId, message, sysmsg, created_at) VALUES(?, ?, 1, CURRENT_TIMESTAMP)', [ + ChatMsgModel::raw('INSERT INTO `@THIS` (userId, message, sysmsg, created_at) VALUES(?, ?, 1, CURRENT_TIMESTAMP)', [ (($user) ? $user->get('id') : 0), $icon . ' ' . $message ]);