From 4ed5b534890bd91e532f6944d31cc4ec6abb663e Mon Sep 17 00:00:00 2001 From: HobertJ <13521079@std.stei.itb.ac.id> Date: Thu, 16 Nov 2023 22:51:13 +0700 Subject: [PATCH] feat: add post subscription endpoint --- .../subscription/post_subscription.php | 46 +++++++++++++++++++ src/app/core/app.php | 1 + src/app/init.php | 1 + 3 files changed, 48 insertions(+) create mode 100644 src/app/controllers/subscription/post_subscription.php diff --git a/src/app/controllers/subscription/post_subscription.php b/src/app/controllers/subscription/post_subscription.php new file mode 100644 index 0000000..77c3321 --- /dev/null +++ b/src/app/controllers/subscription/post_subscription.php @@ -0,0 +1,46 @@ +<?php + +class PostSubscribeController +{ + public function call() { + $xml = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://services.soapserver/"> + <soap:Header> + <tns:apiKey>ularmelingkardiataspagar</tns:apiKey> + </soap:Header> + <soap:Body> + <tns:addSubscription> + <idUser>8</idUser> + </tns:addSubscription> + </soap:Body> + </soap:Envelope>'; + + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, "http://tubes-soap-service:8000/subscription"); + curl_setopt($ch, CURLOPT_HTTPHEADER, [ + "Content-type: text/xml;charset=\"utf-8\"", + "Accept: text/xml", + "Cache-Control: no-cache", + "Pragma: no-cache", + "SOAPAction: http://soapserver/SubscriptionService/addSubscriptionRequest", + "Content-length: ".strlen($xml) + ]); + curl_setopt( + $ch, + CURLOPT_POSTFIELDS, + $xml + ); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + + $output = curl_exec($ch); + curl_close($ch); + + http_response_code(201); + header('Content-type: application/json'); + echo json_encode(["message" => "success"]); + + exit; + } +} \ No newline at end of file diff --git a/src/app/core/app.php b/src/app/core/app.php index 7fab00d..bb172a5 100644 --- a/src/app/core/app.php +++ b/src/app/core/app.php @@ -61,6 +61,7 @@ class App $router->post("public/dashboard/edit-episode", new PostEditEpisodeController()); $router->post("public/dashboard/add-podcast", new PostAddPodcastController()); $router->post("public/dashboard/edit-podcast", new PostEditPodcastController()); + $router->post("public/subscribe", new PostSubscribeController()); // DELETE routes $router->delete("public/dashboard/episode", new DeleteEpisodeController()); diff --git a/src/app/init.php b/src/app/init.php index 17801be..95ef59f 100644 --- a/src/app/init.php +++ b/src/app/init.php @@ -44,6 +44,7 @@ require_once __DIR__ . "/controllers/signup/post_signup.php"; require_once __DIR__ . "/controllers/search/get_search.php"; require_once __DIR__ . "/controllers/profile/get_profile.php"; require_once __DIR__ . "/controllers/profile/update_profile.php"; +require_once __DIR__ . "/controllers/subscription/post_subscription.php"; require_once __DIR__ . "/controllers/player/mount_player.php"; require_once __DIR__ . "/controllers/player/get_episode_played.php"; -- GitLab