From 3949c9ee27639afd1d4e4fbb94fdbe4a48c36a7e Mon Sep 17 00:00:00 2001 From: yggverse Date: Sat, 3 Aug 2024 02:15:00 +0300 Subject: [PATCH] implement api methods --- src/Model/Database/Auth.php | 99 +++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/src/Model/Database/Auth.php b/src/Model/Database/Auth.php index 87280674..f969683a 100644 --- a/src/Model/Database/Auth.php +++ b/src/Model/Database/Auth.php @@ -27,4 +27,103 @@ class Auth ) '); } + + public function add( + int $identity, + string $request, + ?int $time = null + ): int + { + $query = $this->_connection->prepare( + 'INSERT INTO `auth` ( + `time`, + `identity`, + `request` + ) VALUES ( + :time, + :identity, + :request + )' + ); + + $query->execute( + [ + ':time' => $time ? $time : time(), + ':identity' => $identity, + ':request' => $request + ] + ); + + return intval( + $this->_connection->lastInsertId() + ); + } + + public function delete( + int $id + ): int + { + $query = $this->_connection->prepare( + 'DELETE FROM `auth` WHERE `id` = :id' + ); + + $query->execute( + [ + ':id' => $id + ] + ); + + return $query->rowCount(); + } + + public function get( + int $id + ): ?object + { + $query = $this->_connection->prepare( + 'SELECT * FROM `auth` WHERE `id` = :id' + ); + + $query->execute( + [ + ':id' => $id + ] + ); + + if ($record = $query->fetch()) + { + return $record; + } + + return null; + } + + public function find( + string $request = '', + int $start = 0, + int $limit = 1000 + ): array + { + $query = $this->_connection->prepare( + sprintf( + 'SELECT * FROM `auth` + WHERE `request` LIKE :request + ORDER BY `request` ASC + LIMIT %d,%d', + $start, + $limit + ) + ); + + $query->execute( + [ + ':request' => sprintf( + '%%%s%%', + $request + ) + ] + ); + + return $query->fetchAll(); + } } \ No newline at end of file