Skip to content
Snippets Groups Projects
Verified Commit 8cf431f7 authored by Bayu Samudra's avatar Bayu Samudra
Browse files

feat: dan telah berakhir sudah tubes ini

parent d5b5289b
No related merge requests found
...@@ -48,4 +48,31 @@ class PremiumSongsController ...@@ -48,4 +48,31 @@ class PremiumSongsController
"singer" => $obj["data"]["singer"], "singer" => $obj["data"]["singer"],
]); ]);
} }
static function getPlayId(IRequest $req, IResponse $res) {
$user_id = $req->auth ? $req->auth->user_id : -1;
$singer_id = $req->getParam("/premium/:id/play/:songid", "id");
$song_id = $req->getParam("/premium/:id/play/:songid", "songid");
$soap = new SubscribeSoap();
if(!$soap->is_access_permitted($singer_id, $user_id)){
return $res->json([
"status" => "failed",
"message" => "Access denied"
]);
}
$fetcher = new FetchAPI(getenv("REST_API"));
$rest_key = getenv("REST_KEY");
$headers = [
"X-API-KEY: $rest_key"
];
$output = $fetcher->post("/songs/$song_id/play", "{}", $headers);
$obj = json_decode($output, true);
return $res->json($obj);
}
}; };
...@@ -16,6 +16,7 @@ class PremiumRouter ...@@ -16,6 +16,7 @@ class PremiumRouter
//dapetin list penyanyi permium //dapetin list penyanyi permium
$route->route(HttpMethod::Get, "/premium", [SubsciberController::class, "getPremiumSinger"]); $route->route(HttpMethod::Get, "/premium", [SubsciberController::class, "getPremiumSinger"]);
$route->route(HttpMethod::Post, "/premium/subscribe", [SubsciberController::class, "subscribeSinger"]); $route->route(HttpMethod::Post, "/premium/subscribe", [SubsciberController::class, "subscribeSinger"]);
$route->route(HttpMethod::Get, "/premium/:id/play/:songid", [PremiumSongsController::class, "getPlayId"]);
$route->route(HttpMethod::Get, "/premium/:id", [PremiumSongsController::class, "getPremiumSongs"]); $route->route(HttpMethod::Get, "/premium/:id", [PremiumSongsController::class, "getPremiumSongs"]);
return $route; return $route;
......
...@@ -35,12 +35,22 @@ $this->layout("Templates/PageTemplate", [ ...@@ -35,12 +35,22 @@ $this->layout("Templates/PageTemplate", [
<td><?= $number + 1 ?></td> <td><?= $number + 1 ?></td>
<td><?= $song["title"] ?></td> <td><?= $song["title"] ?></td>
<td><?= $singer["name"] ?> </td> <td><?= $singer["name"] ?> </td>
<td> <td id="song_<?= $song["song_id"] ?>">
<a href="/premium/<?= $singer["id"] ?>/play/<?= $song["song_id"] ?>">Play</a> <button onclick='playSong(<?= $song["song_id"] ?>)'>Play</button>
</td> </td>
</tr> </tr>
<?php <?php
} }
?> ?>
</tbody> </tbody>
</table> </table>
\ No newline at end of file <script>
async function playSong(songId) {
const {data} = await http.get(`/premium/<?= $singer["id"] ?>/play/${songId}`);
const el = document.querySelector(`#song_${songId}`);
el.innerHTML = `
<audio src="<?= getenv("CLIENT_REST_API") ?>/songs/play/${data.data.id}" autoplay controls></audio>
`;
}
</script>
\ No newline at end of file
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