From 28417bfeeba7b78d012eaeaf106c81ce0a2ea02d Mon Sep 17 00:00:00 2001 From: KJ Date: Fri, 4 Oct 2024 18:55:16 -0400 Subject: [PATCH] Fix bad name. Changed pool to poll. --- config.php | 4 +-- database.sql | 10 +++---- public/static/css/style.css | 2 +- readme.org | 6 ++--- src/Controllers/Poll/HomeController.php | 19 +++++++++++++ src/Controllers/Poll/PollCreateController.php | 27 +++++++++++++++++++ .../PollFormController.php} | 6 ++--- src/Controllers/Poll/PollResultController.php | 14 ++++++++++ .../PollVoteController.php} | 8 +++--- src/Controllers/Pool/HomeController.php | 19 ------------- src/Controllers/Pool/PoolCreateController.php | 27 ------------------- src/Controllers/Pool/PoolResultController.php | 14 ---------- src/Models/{Pool.php => Poll.php} | 12 ++++----- src/Models/{PoolOption.php => PollOption.php} | 4 +-- src/Models/User.php | 8 +++--- ...reateRequest.php => PollCreateRequest.php} | 2 +- .../{PoolRequest.php => PollRequest.php} | 10 +++---- src/Requests/VoteRequest.php | 12 ++++----- src/Routers/poll.php | 16 +++++++++++ src/Routers/pool.php | 16 ----------- src/Views/{Pool.php => Poll.php} | 12 ++++----- src/Views/{PoolConfig.php => PollConfig.php} | 0 src/Views/Result.php | 10 +++---- 23 files changed, 129 insertions(+), 129 deletions(-) create mode 100644 src/Controllers/Poll/HomeController.php create mode 100644 src/Controllers/Poll/PollCreateController.php rename src/Controllers/{Pool/PoolFormController.php => Poll/PollFormController.php} (65%) create mode 100644 src/Controllers/Poll/PollResultController.php rename src/Controllers/{Pool/PoolVoteController.php => Poll/PollVoteController.php} (68%) delete mode 100644 src/Controllers/Pool/HomeController.php delete mode 100644 src/Controllers/Pool/PoolCreateController.php delete mode 100644 src/Controllers/Pool/PoolResultController.php rename src/Models/{Pool.php => Poll.php} (80%) rename src/Models/{PoolOption.php => PollOption.php} (82%) rename src/Requests/{PoolCreateRequest.php => PollCreateRequest.php} (94%) rename src/Requests/{PoolRequest.php => PollRequest.php} (54%) create mode 100644 src/Routers/poll.php delete mode 100644 src/Routers/pool.php rename src/Views/{Pool.php => Poll.php} (58%) rename src/Views/{PoolConfig.php => PollConfig.php} (100%) diff --git a/config.php b/config.php index 23ad722..c6121df 100644 --- a/config.php +++ b/config.php @@ -2,12 +2,12 @@ // Configuración de la base de datos define('DB_TYPE', 'mysql'); define('DB_HOST', 'localhost'); -define('DB_NAME', 'pool'); +define('DB_NAME', 'poll'); define('DB_USER', 'root'); define('DB_PASS', ''); // Configuración del sitio -define('SITE_URL', 'https://pool.kj5.top/'); +define('SITE_URL', 'https://poll.kj5.top/'); define('PRIVATE_KEY', 'AerohrejaeLohz2eojai2ba1ohCiegoh'); diff --git a/database.sql b/database.sql index cc57666..d2ccc28 100644 --- a/database.sql +++ b/database.sql @@ -4,21 +4,21 @@ CREATE TABLE users ( password VARCHAR(255) ); -CREATE TABLE pools ( +CREATE TABLE polls ( id BIGINT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255) ); -CREATE TABLE pool_options ( +CREATE TABLE poll_options ( id BIGINT PRIMARY KEY AUTO_INCREMENT, value TEXT, - pool_id BIGINT, - FOREIGN KEY (pool_id) REFERENCES pools(id) + poll_id BIGINT, + FOREIGN KEY (poll_id) REFERENCES polls(id) ); CREATE TABLE answers ( id BIGINT PRIMARY KEY AUTO_INCREMENT, option_id BIGINT, create_at DATETIME DEFAULT CURRENT_TIMESTAMP, - FOREIGN KEY (option_id) REFERENCES pool_options(id) + FOREIGN KEY (option_id) REFERENCES poll_options(id) ); diff --git a/public/static/css/style.css b/public/static/css/style.css index 0aea06f..8bc0871 100644 --- a/public/static/css/style.css +++ b/public/static/css/style.css @@ -8,7 +8,7 @@ text-align: center; } -.pool-options { +.poll-options { display: grid; gap: 10px; } diff --git a/readme.org b/readme.org index 6c56af0..360905e 100644 --- a/readme.org +++ b/readme.org @@ -24,18 +24,18 @@ Un sistema de encuestas con solo 3 opciones a elegir (por si acaso, es posible a ** Encuestas (En el hardcode solo se trabajará con la última creada) -| pools | +| polls | |-------| | id | | title | ** Opciones elegibles como respuesta a la encuesta. -| pool_options | +| poll_options | |--------------| | id | | value | -| pool_id | +| poll_id | ** Votos de los clientes diff --git a/src/Controllers/Poll/HomeController.php b/src/Controllers/Poll/HomeController.php new file mode 100644 index 0000000..64fb8be --- /dev/null +++ b/src/Controllers/Poll/HomeController.php @@ -0,0 +1,19 @@ + $request->poll + ]); + } +} diff --git a/src/Controllers/Poll/PollCreateController.php b/src/Controllers/Poll/PollCreateController.php new file mode 100644 index 0000000..11520eb --- /dev/null +++ b/src/Controllers/Poll/PollCreateController.php @@ -0,0 +1,27 @@ +title = $request->post->title; + $poll->beginTransaction(); + $poll->save(); + + for($i=1; $i <= 3; $i++) { + $option = new PollOption; + $option->value = $request->post->{'option'.$i}; + $option->poll_id = $poll->id; + $option->save(); + } + $poll->commit(); + + $request->saved = true; + PollFormController::handle($request); + } +} diff --git a/src/Controllers/Pool/PoolFormController.php b/src/Controllers/Poll/PollFormController.php similarity index 65% rename from src/Controllers/Pool/PoolFormController.php rename to src/Controllers/Poll/PollFormController.php index 26e15f6..1ee09fa 100644 --- a/src/Controllers/Pool/PoolFormController.php +++ b/src/Controllers/Poll/PollFormController.php @@ -1,12 +1,12 @@ $request->saved ?? false ]); } diff --git a/src/Controllers/Poll/PollResultController.php b/src/Controllers/Poll/PollResultController.php new file mode 100644 index 0000000..c2e2ac4 --- /dev/null +++ b/src/Controllers/Poll/PollResultController.php @@ -0,0 +1,14 @@ + $request->poll + ]); + } +} diff --git a/src/Controllers/Pool/PoolVoteController.php b/src/Controllers/Poll/PollVoteController.php similarity index 68% rename from src/Controllers/Pool/PoolVoteController.php rename to src/Controllers/Poll/PollVoteController.php index b73a163..994b8e1 100644 --- a/src/Controllers/Pool/PoolVoteController.php +++ b/src/Controllers/Poll/PollVoteController.php @@ -1,17 +1,17 @@ pool->isVoted()) { + if (!$request->poll->isVoted()) { $vote = new Answer; $vote->option_id = $request->option->id; $vote->save(); - $request->pool->createCookie(); + $request->poll->createCookie(); } echo '¡Gracias por participar!'; diff --git a/src/Controllers/Pool/HomeController.php b/src/Controllers/Pool/HomeController.php deleted file mode 100644 index 304bd6a..0000000 --- a/src/Controllers/Pool/HomeController.php +++ /dev/null @@ -1,19 +0,0 @@ - $request->pool - ]); - } -} diff --git a/src/Controllers/Pool/PoolCreateController.php b/src/Controllers/Pool/PoolCreateController.php deleted file mode 100644 index c33cdc2..0000000 --- a/src/Controllers/Pool/PoolCreateController.php +++ /dev/null @@ -1,27 +0,0 @@ -title = $request->post->title; - $pool->beginTransaction(); - $pool->save(); - - for($i=1; $i <= 3; $i++) { - $option = new PoolOption; - $option->value = $request->post->{'option'.$i}; - $option->pool_id = $pool->id; - $option->save(); - } - $pool->commit(); - - $request->saved = true; - PoolFormController::handle($request); - } -} diff --git a/src/Controllers/Pool/PoolResultController.php b/src/Controllers/Pool/PoolResultController.php deleted file mode 100644 index 32f364b..0000000 --- a/src/Controllers/Pool/PoolResultController.php +++ /dev/null @@ -1,14 +0,0 @@ - $request->pool - ]); - } -} diff --git a/src/Models/Pool.php b/src/Models/Poll.php similarity index 80% rename from src/Models/Pool.php rename to src/Models/Poll.php index f7b27db..234fb67 100644 --- a/src/Models/Pool.php +++ b/src/Models/Poll.php @@ -4,7 +4,7 @@ namespace Models; use Libs\Crypto; use Libs\Model; -class Pool extends Model { +class Poll extends Model { public string $title; protected array $options; protected int $votes; @@ -20,12 +20,12 @@ class Pool extends Model { /** * Devuelve las opciones de la encuesta. * - * @return array + * @return array */ public function getOptions(): array { if (!isset($this->options)) - $this->options = PoolOption::where('pool_id', $this->id)->get(); + $this->options = PollOption::where('poll_id', $this->id)->get(); return $this->options; } @@ -43,7 +43,7 @@ class Pool extends Model { 'pid' => $this->id, 'exp' => time()+43200 ])); - setcookie('POOL_VOTE', $cookieValue, time()+43200, parse_url(SITE_URL, PHP_URL_PATH)); + setcookie('POLL_VOTE', $cookieValue, time()+43200, parse_url(SITE_URL, PHP_URL_PATH)); } /** @@ -53,10 +53,10 @@ class Pool extends Model { */ public function isVoted(): bool { - if (!isset($_COOKIE['POOL_VOTE'])) + if (!isset($_COOKIE['POLL_VOTE'])) return false; - $cookie = json_decode(Crypto::decrypt64($_COOKIE['POOL_VOTE'])); + $cookie = json_decode(Crypto::decrypt64($_COOKIE['POLL_VOTE'])); return (json_last_error() == JSON_ERROR_NONE && $cookie->exp > time() && diff --git a/src/Models/PoolOption.php b/src/Models/PollOption.php similarity index 82% rename from src/Models/PoolOption.php rename to src/Models/PollOption.php index 3ef7ad8..61a9c93 100644 --- a/src/Models/PoolOption.php +++ b/src/Models/PollOption.php @@ -3,9 +3,9 @@ namespace Models; use Libs\Model; -class PoolOption extends Model { +class PollOption extends Model { public string $value; - public int $pool_id; + public int $poll_id; protected int $votes; public function votes(): int diff --git a/src/Models/User.php b/src/Models/User.php index 610d190..8d5682c 100644 --- a/src/Models/User.php +++ b/src/Models/User.php @@ -47,7 +47,7 @@ class User extends Model { */ public function createLoginCookie(): void { - setcookie('POOL_LC', $this->getSessionToken(), time()+1209600, parse_url(SITE_URL, PHP_URL_PATH)); + setcookie('POLL_LC', $this->getSessionToken(), time()+1209600, parse_url(SITE_URL, PHP_URL_PATH)); } /** @@ -55,7 +55,7 @@ class User extends Model { * @return void */ public static function logout(): void { - setcookie('POOL_LC', '', 0); + setcookie('POLL_LC', '', 0); } /** @@ -65,10 +65,10 @@ class User extends Model { */ public static function isLogged(): static|null { - if (!isset($_COOKIE['POOL_LC'])) + if (!isset($_COOKIE['POLL_LC'])) return null; - $cookie = json_decode(Crypto::decrypt64($_COOKIE['POOL_LC'])); + $cookie = json_decode(Crypto::decrypt64($_COOKIE['POLL_LC'])); if (json_last_error() == JSON_ERROR_NONE && isset($cookie->expire) && diff --git a/src/Requests/PoolCreateRequest.php b/src/Requests/PollCreateRequest.php similarity index 94% rename from src/Requests/PoolCreateRequest.php rename to src/Requests/PollCreateRequest.php index 7dc334d..eae69cf 100644 --- a/src/Requests/PoolCreateRequest.php +++ b/src/Requests/PollCreateRequest.php @@ -3,7 +3,7 @@ namespace Requests; use Libs\HTMX; -class PoolCreateRequest extends UserRequest { +class PollCreateRequest extends UserRequest { public static function rules(): array { return [ diff --git a/src/Requests/PoolRequest.php b/src/Requests/PollRequest.php similarity index 54% rename from src/Requests/PoolRequest.php rename to src/Requests/PollRequest.php index 564995b..d3a5cd3 100644 --- a/src/Requests/PoolRequest.php +++ b/src/Requests/PollRequest.php @@ -2,15 +2,15 @@ namespace Requests; use Libs\Request; -use Models\Pool; +use Models\Poll; -class PoolRequest extends Request { - public ?Pool $pool; +class PollRequest extends Request { + public ?Poll $poll; public function validate(): bool { - $this->pool = Pool::orderBy('id', 'DESC')->getFirst(); + $this->poll = Poll::orderBy('id', 'DESC')->getFirst(); - if (is_null($this->pool)) + if (is_null($this->poll)) return $this->onInvalid('Aún no hay una encuesta configurada.'); return parent::validate(); diff --git a/src/Requests/VoteRequest.php b/src/Requests/VoteRequest.php index 6c48663..b9c71f1 100644 --- a/src/Requests/VoteRequest.php +++ b/src/Requests/VoteRequest.php @@ -1,21 +1,21 @@ pool->id != $this->params->pid) + if ($this->poll->id != $this->params->pid) return $this->onInvalid('Voto no válido.'); - $this->option = PoolOption::getById($this->params->vid); - if (is_null($this->option) || $this->option->pool_id != $this->params->pid) + $this->option = PollOption::getById($this->params->vid); + if (is_null($this->option) || $this->option->poll_id != $this->params->pid) return $this->onInvalid('Voto no válido.'); return true; diff --git a/src/Routers/poll.php b/src/Routers/poll.php new file mode 100644 index 0000000..4ba3443 --- /dev/null +++ b/src/Routers/poll.php @@ -0,0 +1,16 @@ +
-

pool->title)?>

+

poll->title)?>

-
- pool->isVoted()): ?> +
+ poll->isVoted()): ?> ¡Gracias por participar! - pool->getOptions() as $option): ?> + poll->getOptions() as $option): ?>
value)?>
diff --git a/src/Views/PoolConfig.php b/src/Views/PollConfig.php similarity index 100% rename from src/Views/PoolConfig.php rename to src/Views/PollConfig.php diff --git a/src/Views/Result.php b/src/Views/Result.php index d8641bf..64aab2b 100644 --- a/src/Views/Result.php +++ b/src/Views/Result.php @@ -6,15 +6,15 @@
-

pool->title)?>

+

poll->title)?>

-
- pool->getOptions() as $option): ?> +
+ poll->getOptions() as $option): ?> votes() == 0) $percent = 0; else - $percent = round(($option->votes() * 100 / $this->pool->votes()), 2); + $percent = round(($option->votes() * 100 / $this->poll->votes()), 2); ?>
- Total de votos: pool->votes()?> + Total de votos: poll->votes()?>