From 0391daca8996c6d69e706a29b6851d738d43e170 Mon Sep 17 00:00:00 2001
From: Rava Maulana <ravamaulana14@gmail.com>
Date: Fri, 17 Nov 2023 03:49:06 +0700
Subject: [PATCH] feat: added endpoint for non premium podcast

---
 src/app/controllers/episode/get_episode.php   |  21 +
 src/app/controllers/login/post_login.php      |   2 +-
 src/app/controllers/podcast/get_podcast.php   |  21 +
 .../podcast/get_random_podcast.php            |  17 +
 src/app/core/app.php                          |   4 +
 src/app/database/mysql/old_init.sql           | 634 ------------------
 src/app/init.php                              |   4 +
 src/app/models/podcast.php                    |  47 +-
 8 files changed, 109 insertions(+), 641 deletions(-)
 create mode 100644 src/app/controllers/episode/get_episode.php
 create mode 100644 src/app/controllers/podcast/get_podcast.php
 create mode 100644 src/app/controllers/podcast/get_random_podcast.php
 delete mode 100644 src/app/database/mysql/old_init.sql

diff --git a/src/app/controllers/episode/get_episode.php b/src/app/controllers/episode/get_episode.php
new file mode 100644
index 0000000..68404e4
--- /dev/null
+++ b/src/app/controllers/episode/get_episode.php
@@ -0,0 +1,21 @@
+<?php
+
+class GetEpisodeController
+{
+  public function call()
+  {
+    header("Access-Control-Allow-Origin: *");
+    header('Access-Control-Allow-Credentials: true');
+    header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
+
+    $episodeModel = new EpisodeModel();
+
+    $episode = $episodeModel->getById($_GET["idEpisode"]);
+
+    http_response_code(200);
+    header("Content-Type: application/json");
+    echo json_encode(["episode" => $episode]);
+
+    return;
+  }
+}
diff --git a/src/app/controllers/login/post_login.php b/src/app/controllers/login/post_login.php
index a5d8afa..34a737c 100644
--- a/src/app/controllers/login/post_login.php
+++ b/src/app/controllers/login/post_login.php
@@ -23,7 +23,7 @@ class PostLoginController
                 } else {
                     if (password_verify($password, $user['password'])) {
                         $_SESSION["start"] = time();
-                        $_SESSION["expire"] = time() + 60 * 600;
+                        $_SESSION["expire"] = time() + 60 * 50;
                         $_SESSION["user_id"] = $user['id_user'];
 
                         $SOAP_PHP_KEY = "ularmelingkardiataspagar";
diff --git a/src/app/controllers/podcast/get_podcast.php b/src/app/controllers/podcast/get_podcast.php
new file mode 100644
index 0000000..d118dbd
--- /dev/null
+++ b/src/app/controllers/podcast/get_podcast.php
@@ -0,0 +1,21 @@
+<?php
+
+class GetPodcastController {
+  public function call() {
+    header("Access-Control-Allow-Origin: *");
+    header('Access-Control-Allow-Credentials: true');
+    header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
+
+    $podcastModel = new PodcastModel();
+    $episodeModel = new EpisodeModel();
+
+    $podcast = $podcastModel->getById($_GET["idPodcast"]);
+    $episodes = $episodeModel->getAllPodcastEpisodes($_GET["idPodcast"]);
+
+    http_response_code(200);
+    header("Content-Type: application/json");
+    echo json_encode(["podcast" => $podcast, "episodes" => $episodes]);
+
+    return;
+  }
+}
\ No newline at end of file
diff --git a/src/app/controllers/podcast/get_random_podcast.php b/src/app/controllers/podcast/get_random_podcast.php
new file mode 100644
index 0000000..fcc7246
--- /dev/null
+++ b/src/app/controllers/podcast/get_random_podcast.php
@@ -0,0 +1,17 @@
+<?php
+
+class GetRandomPodcastController
+{
+  public function call()
+  {
+    $podcastModel = new PodcastModel();
+
+    $podcasts = $podcastModel->getRandom($_GET["category"]);
+
+    http_response_code(200);
+    header("Content-Type: application/json");
+    echo json_encode(["podcasts" => $podcasts]);
+
+    return;
+  }
+}
diff --git a/src/app/core/app.php b/src/app/core/app.php
index ce496c4..cd06729 100644
--- a/src/app/core/app.php
+++ b/src/app/core/app.php
@@ -47,6 +47,10 @@ class App
     $router->get("public/components/player", new MountPlayerController());
     $router->get("public/player/episode", new GetEpisodePlayed());
 
+    $router->get("public/podcast-by-id", new GetPodcastController());
+    $router->get("public/episode-by-id", new GetEpisodeController());
+    $router->get("public/random-podcast", new GetRandomPodcastController());
+
     // POST routes
     $router->post("public/logout", new LogoutController());
     $router->post("public/login", new PostLoginController());
diff --git a/src/app/database/mysql/old_init.sql b/src/app/database/mysql/old_init.sql
deleted file mode 100644
index f4e2725..0000000
--- a/src/app/database/mysql/old_init.sql
+++ /dev/null
@@ -1,634 +0,0 @@
-CREATE TABLE user (
-  id_user INT PRIMARY KEY AUTO_INCREMENT,
-  name VARCHAR(50),
-  username VARCHAR(50) UNIQUE NOT NULL,
-  password VARCHAR(255) NOT NULL,
-  url_profpic VARCHAR(100),
-  is_admin BOOLEAN DEFAULT false
-);
-CREATE TABLE podcast (
-  id_podcast INT PRIMARY KEY AUTO_INCREMENT,
-  title VARCHAR(50),
-  url_thumbnail VARCHAR(100),
-  description VARCHAR(1000),
-  category VARCHAR(50),
-  id_user INT NOT NULL,
-  FOREIGN KEY (id_user) REFERENCES user(id_user) ON DELETE CASCADE
-);
-CREATE TABLE episode (
-  id_episode INT PRIMARY KEY AUTO_INCREMENT,
-  title VARCHAR(50),
-  description VARCHAR(1000),
-  url_thumbnail VARCHAR(100),
-  url_audio VARCHAR(100),
-  id_podcast INT NOT NULL,
-  FOREIGN KEY (id_podcast) REFERENCES podcast(id_podcast) ON DELETE CASCADE
-);
-CREATE TABLE playlist (
-  id_playlist INT PRIMARY KEY AUTO_INCREMENT,
-  title VARCHAR(50),
-  id_user INT NOT NULL,
-  FOREIGN KEY (id_user) REFERENCES user(id_user) ON DELETE CASCADE
-);
-CREATE TABLE podcast_x_playlist (
-  id_playlist INT,
-  id_podcast INT,
-  PRIMARY KEY (id_playlist, id_podcast),
-  FOREIGN KEY (id_playlist) REFERENCES playlist(id_playlist) ON DELETE CASCADE,
-  FOREIGN KEY (id_podcast) REFERENCES podcast(id_podcast) ON DELETE CASCADE
-);
--- DUMMY USER
-INSERT INTO user (
-    name,
-    username,
-    password,
-    url_profpic,
-    is_admin
-  )
-VALUES (
-    "Penggendong Handal",
-    "test_user",
-    "ini_password",
-    "/images/default-profpic.jpeg",
-    0
-  );
-INSERT INTO user (
-    name,
-    username,
-    password,
-    url_profpic,
-    is_admin
-  )
-VALUES (
-    "Podcaster Handal",
-    "podcaster_handal",
-    "12345",
-    "/images/default-profpic.jpeg",
-    1
-  );
-INSERT INTO user (
-    name,
-    username,
-    password,
-    url_profpic,
-    is_admin
-  )
-VALUES (
-    "Coach Handal",
-    "coach_handal",
-    "12345",
-    "/images/default-profpic.jpeg",
-    1
-  );
--- DUMMY PODCAST
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "comedy",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "comedy",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "comedy",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "comedy",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "technology",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "technology",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "technology",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "technology",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Halo Halo Bandung",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "technology",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "How to conquer wbd",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "self improvement",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "serba serbi Informatika",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "self improvement",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "self improvement",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "self improvement",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "self improvement",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "self improvement",
-    2
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "sports",
-    3
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "sports",
-    3
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "sports",
-    3
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "sports",
-    3
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "sports",
-    3
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "sports",
-    3
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "sports",
-    3
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "sports",
-    3
-  );
-INSERT INTO podcast (
-    title,
-    url_thumbnail,
-    description,
-    category,
-    id_user
-  )
-VALUES (
-    "Nama Podcast",
-    "/images/sample-podcast.jpeg",
-    "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-    "sports",
-    3
-  );
-
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 1",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  1
-);
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 1",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  1
-);
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 1",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  1
-);
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 1",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  1
-);
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 1",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  1
-);
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 1",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  1
-);
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 1",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  1
-);
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 1",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  1
-);
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 1",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  2
-);
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 2",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  2
-);
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 2",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  2
-);
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 2",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  2
-);
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 2",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  2
-);
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 2",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  2
-);
-INSERT INTO episode (
-  title,
-  description,
-  url_thumbnail,
-  url_audio,
-  id_podcast
-)
-VALUES (
-  "Ini tuh episode 2",
-  "Ini adalah contoh teks deskripsi dummy yang dibuat oleh ChatGPT. Teks ini mengilustrasikan kemampuan model dalam menghasilkan teks deskripsi dengan panjang yang lebih besar. ChatGPT adalah AI canggih yang dirancang untuk memberikan informasi, menyelesaikan masalah, dan memberikan panduan dalam berbagai topik.",
-  "/images/episode.jpeg",
-  "episodes/audiotester.mp3",
-  2
-);
-
-
-
-
diff --git a/src/app/init.php b/src/app/init.php
index 21ea784..dfd58a9 100644
--- a/src/app/init.php
+++ b/src/app/init.php
@@ -52,6 +52,10 @@ require_once __DIR__ . "/controllers/player/get_episode_played.php";
 require_once __DIR__ . "/controllers/app/app_controller.php";
 require_once __DIR__ . "/controllers/seed/post_seed.php";
 
+require_once __DIR__ . "/controllers/podcast/get_podcast.php";
+require_once __DIR__ . "/controllers/episode/get_episode.php";
+require_once __DIR__ . "/controllers/podcast/get_random_podcast.php";
+
 require_once __DIR__ . "/models/podcast.php";
 require_once __DIR__ . "/models/episode.php";
 require_once __DIR__ . "/models/user.php";
diff --git a/src/app/models/podcast.php b/src/app/models/podcast.php
index 56da4b0..8b906df 100644
--- a/src/app/models/podcast.php
+++ b/src/app/models/podcast.php
@@ -35,12 +35,12 @@ class PodcastModel
         $epsMax = "999999999";
         break;
     };
-      
+
     //sort
     switch ($sort) {
       case "alphabetical":
         $query =
-        "SELECT p.id_podcast, p.title, p.category, p.url_thumbnail, p.description, u.name
+          "SELECT p.id_podcast, p.title, p.category, p.url_thumbnail, p.description, u.name
         FROM podcast AS p
         NATURAL JOIN user AS u
         LEFT JOIN episode AS e ON p.id_podcast = e.id_podcast
@@ -54,7 +54,7 @@ class PodcastModel
         break;
       case "date joined":
         $query =
-        "SELECT p.id_podcast, p.title, p.category, p.url_thumbnail, p.description, u.name
+          "SELECT p.id_podcast, p.title, p.category, p.url_thumbnail, p.description, u.name
         FROM podcast AS p
         NATURAL JOIN user AS u
         LEFT JOIN episode AS e ON p.id_podcast = e.id_podcast
@@ -68,7 +68,7 @@ class PodcastModel
         break;
       default:
         $query =
-        "SELECT p.id_podcast, p.title, p.category, p.url_thumbnail, p.description, u.name
+          "SELECT p.id_podcast, p.title, p.category, p.url_thumbnail, p.description, u.name
         FROM podcast AS p
         NATURAL JOIN user AS u
         LEFT JOIN episode e ON e.id_podcast=p.id_podcast 
@@ -81,14 +81,14 @@ class PodcastModel
         ";
         break;
     };
-    
+
 
     $this->db->query($query);
 
     $this->db->bind("search_value", '%' . $keyword . '%');
     $this->db->bind("epsMin", $epsMin);
     $this->db->bind("epsMax", $epsMax);
-    $this->db->bind("genre", $genre==""?'%':$genre);
+    $this->db->bind("genre", $genre == "" ? '%' : $genre);
     $podcasts = $this->db->fetchAll();
     return $podcasts;
   }
@@ -213,4 +213,39 @@ class PodcastModel
 
     $this->db->execute();
   }
+
+  public function getRandom($category)
+  {
+    $query = "";
+    switch ($category) {
+      case "technology":
+        $query = "
+          SELECT id_podcast AS idpodcast, title, description, url_thumbnail AS imageurl FROM podcast
+          WHERE category = 'technology'
+          ORDER BY RAND()
+          LIMIT 2;
+        ";
+        break;
+      case "horror":
+        $query = "
+            SELECT id_podcast AS idpodcast, title, description, url_thumbnail AS imageurl FROM podcast
+            WHERE category = 'horror'
+            ORDER BY RAND()
+            LIMIT 2;
+          ";
+        break;
+      case "comedy":
+        $query = "
+              SELECT id_podcast AS idpodcast, title, description, url_thumbnail AS imageurl FROM podcast
+              WHERE category = 'comedy'
+              ORDER BY RAND()
+              LIMIT 2;
+            ";
+        break;
+    }
+
+    $this->db->query($query);
+    $podcast = $this->db->fetchAll();
+    return $podcast;
+  }
 }
-- 
GitLab