From 13d809e54f1ec80ea1de9ae495f7a31957ccdbcb Mon Sep 17 00:00:00 2001
From: stckvrflw <elisonpetrus@gmail.com>
Date: Tue, 14 Nov 2023 07:56:01 +0700
Subject: [PATCH] feat: cancel subscription button

---
 src/App.php                               |  2 ++
 src/controllers/SoapPremiumController.php | 32 +++++++++++++++++------
 views/premium-status.php                  |  6 ++++-
 3 files changed, 31 insertions(+), 9 deletions(-)

diff --git a/src/App.php b/src/App.php
index c3639bb..01031c1 100644
--- a/src/App.php
+++ b/src/App.php
@@ -51,5 +51,7 @@ class App
     $this->router->addRoute('/my-reviews', ProfileController::class);
     $this->router->addRoute('/user-dashboard', UserDashboardController::class);
     $this->router->addRoute('/premium-status', SoapPremiumController::class);
+    $this->router->addRoute('/register-premium', SoapPremiumController::class);
+    $this->router->addRoute('/cancel-premium', SoapPremiumController::class);
   }
 }
diff --git a/src/controllers/SoapPremiumController.php b/src/controllers/SoapPremiumController.php
index 9b8d6b3..351d1e9 100644
--- a/src/controllers/SoapPremiumController.php
+++ b/src/controllers/SoapPremiumController.php
@@ -36,18 +36,34 @@ class SoapPremiumController extends BaseController {
 
     protected function post($urlParams)
     {
-        if(isset($_POST['email'])){
-            $params = ["userId" => $_SESSION['user_id'], "email" => $_POST['email']];
-            $result = $this->model->registerPremium($params);
-            if($result->status == "success"){
-                header("Location: /premium-status");
+        $uri = Request::getURL();
+        
+        if($uri == '/register-premium'){
+            if(isset($_POST['email'])){
+                $params = ["userId" => $_SESSION['user_id'], "email" => $_POST['email']];
+                $result = $this->model->registerPremium($params);
+                // if($result->status == "success"){
+                    header("Location: /premium-status");
+                // }
+                // else{
+                //     throw new Exception("Invalid Email");
+                // }
             }
             else{
-                throw new Exception("Invalid Email");
+                throw new Exception("Invalid URL");
             }
         }
-        else{
-            throw new Exception("Invalid URL");
+
+        if($uri == '/cancel-premium'){
+            $params = ["userId" => $_SESSION['user_id']];
+            $result = $this->model->cancelRegister($params);
+            // if($result->status == "success"){
+                $data['premiumCancelMessage'] = $result->responseCancel;
+                header("Location: /premium-status");
+            // }
+            // else{
+            //     throw new Exception("Invalid URL");
+            // }
         }
     }
 }
\ No newline at end of file
diff --git a/views/premium-status.php b/views/premium-status.php
index 679ae7f..61b3959 100644
--- a/views/premium-status.php
+++ b/views/premium-status.php
@@ -4,9 +4,13 @@
     <br>
     <p>Current: <?php $result = $data["userStatus"]; echo $result;?></p>
     <br>
+    <p>Click <a href="/premium-status">here</a> to refresh the page.</p>
+    <?php if(isset($data["premiumCancelMessage"])) { ?>
+        <p><?php echo $data["premiumCancelMessage"]; unset($data["premiumCancelMessage"]);?></p>
+    <?php } ?>
     <?php 
     if($result == "REJECTED" || $result == "UNREGISTERED") { ?>
-        <form method="post" action="/premium-status">
+        <form method="post" action="/register-premium">
             <label for="email">Email:</label>
             <input type="email" id="email" name="email" required>
             <button type="submit">Register for Premium</button>
-- 
GitLab