Skip to content
Snippets Groups Projects
Commit 0391daca authored by Rava Maulana's avatar Rava Maulana
Browse files

feat: added endpoint for non premium podcast

parent 8e0619d0
Branches
Tags
No related merge requests found
<?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;
}
}
...@@ -23,7 +23,7 @@ class PostLoginController ...@@ -23,7 +23,7 @@ class PostLoginController
} else { } else {
if (password_verify($password, $user['password'])) { if (password_verify($password, $user['password'])) {
$_SESSION["start"] = time(); $_SESSION["start"] = time();
$_SESSION["expire"] = time() + 60 * 600; $_SESSION["expire"] = time() + 60 * 50;
$_SESSION["user_id"] = $user['id_user']; $_SESSION["user_id"] = $user['id_user'];
$SOAP_PHP_KEY = "ularmelingkardiataspagar"; $SOAP_PHP_KEY = "ularmelingkardiataspagar";
......
<?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
<?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;
}
}
...@@ -47,6 +47,10 @@ class App ...@@ -47,6 +47,10 @@ class App
$router->get("public/components/player", new MountPlayerController()); $router->get("public/components/player", new MountPlayerController());
$router->get("public/player/episode", new GetEpisodePlayed()); $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 // POST routes
$router->post("public/logout", new LogoutController()); $router->post("public/logout", new LogoutController());
$router->post("public/login", new PostLoginController()); $router->post("public/login", new PostLoginController());
......
This diff is collapsed.
...@@ -52,6 +52,10 @@ require_once __DIR__ . "/controllers/player/get_episode_played.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/app/app_controller.php";
require_once __DIR__ . "/controllers/seed/post_seed.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/podcast.php";
require_once __DIR__ . "/models/episode.php"; require_once __DIR__ . "/models/episode.php";
require_once __DIR__ . "/models/user.php"; require_once __DIR__ . "/models/user.php";
......
...@@ -35,12 +35,12 @@ class PodcastModel ...@@ -35,12 +35,12 @@ class PodcastModel
$epsMax = "999999999"; $epsMax = "999999999";
break; break;
}; };
//sort //sort
switch ($sort) { switch ($sort) {
case "alphabetical": case "alphabetical":
$query = $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 FROM podcast AS p
NATURAL JOIN user AS u NATURAL JOIN user AS u
LEFT JOIN episode AS e ON p.id_podcast = e.id_podcast LEFT JOIN episode AS e ON p.id_podcast = e.id_podcast
...@@ -54,7 +54,7 @@ class PodcastModel ...@@ -54,7 +54,7 @@ class PodcastModel
break; break;
case "date joined": case "date joined":
$query = $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 FROM podcast AS p
NATURAL JOIN user AS u NATURAL JOIN user AS u
LEFT JOIN episode AS e ON p.id_podcast = e.id_podcast LEFT JOIN episode AS e ON p.id_podcast = e.id_podcast
...@@ -68,7 +68,7 @@ class PodcastModel ...@@ -68,7 +68,7 @@ class PodcastModel
break; break;
default: default:
$query = $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 FROM podcast AS p
NATURAL JOIN user AS u NATURAL JOIN user AS u
LEFT JOIN episode e ON e.id_podcast=p.id_podcast LEFT JOIN episode e ON e.id_podcast=p.id_podcast
...@@ -81,14 +81,14 @@ class PodcastModel ...@@ -81,14 +81,14 @@ class PodcastModel
"; ";
break; break;
}; };
$this->db->query($query); $this->db->query($query);
$this->db->bind("search_value", '%' . $keyword . '%'); $this->db->bind("search_value", '%' . $keyword . '%');
$this->db->bind("epsMin", $epsMin); $this->db->bind("epsMin", $epsMin);
$this->db->bind("epsMax", $epsMax); $this->db->bind("epsMax", $epsMax);
$this->db->bind("genre", $genre==""?'%':$genre); $this->db->bind("genre", $genre == "" ? '%' : $genre);
$podcasts = $this->db->fetchAll(); $podcasts = $this->db->fetchAll();
return $podcasts; return $podcasts;
} }
...@@ -213,4 +213,39 @@ class PodcastModel ...@@ -213,4 +213,39 @@ class PodcastModel
$this->db->execute(); $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;
}
} }
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment