From 35f7cd1213f452ca387f5a4a3f89ba655a286bd2 Mon Sep 17 00:00:00 2001
From: Bitha17 <16521076@mahasiswa.itb.ac.id>
Date: Sun, 8 Oct 2023 18:25:54 +0700
Subject: [PATCH] edit server side pagination

---
 app/Controllers/EventController.php     | 28 +++++++++++-----------
 app/Controllers/PembelianController.php | 32 ++++++++++++++++---------
 2 files changed, 35 insertions(+), 25 deletions(-)

diff --git a/app/Controllers/EventController.php b/app/Controllers/EventController.php
index 5416fbe..9d10f24 100644
--- a/app/Controllers/EventController.php
+++ b/app/Controllers/EventController.php
@@ -7,11 +7,11 @@ require_once(__DIR__ . '/TicketController.php');
 
 if (!isset($_SESSION["user_id"])) {
     session_start();
-    // if (!isset($_SESSION["user_id"])) {
-    //     // User is not authenticated; redirect to login page
-    //     header("Location: /app/Views/login/login.php");
-    //     ob_end_flush();
-    // }
+    if (!isset($_SESSION["user_id"])) {
+        // User is not authenticated; redirect to login page
+        header("Location: /app/Views/login/login.php");
+        ob_end_flush();
+    }
 }
 
 class EventController {
@@ -55,15 +55,22 @@ class EventController {
     }
 
     public function paginateEvents($events = [], $page = 1, $pagesize = 10) {
-        $maxpage = ceil(count($events) / $pagesize);
+        $totalEvents = count($events);
+        $maxpage = ceil($totalEvents / $pagesize);
         if ($page > $maxpage) {
             $page = $maxpage;
         }
         $offset = $pagesize * ($page - 1);
         $selectedEvents = array_slice($events, $offset, $pagesize);
     
-        return $selectedEvents;
+        return [
+            'events' => $selectedEvents,
+            'total' => $totalEvents,
+            'page' => $page,
+            'maxpage' => $maxpage,
+        ];
     }
+    
 
 
     public function searchEvents($searchQuery, $sortKey, $minStock = null) {
@@ -132,13 +139,6 @@ class EventController {
                 // Handle other actions here, if needed
             }
         }
-        if (isset($_GET['action'])) {
-            if ($_GET['action'] === 'purchaseTicket') {
-                
-            } else {
-                // Handle other actions here, if needed
-            }
-        }
     }
 
 }
diff --git a/app/Controllers/PembelianController.php b/app/Controllers/PembelianController.php
index 7b2f27a..249546d 100644
--- a/app/Controllers/PembelianController.php
+++ b/app/Controllers/PembelianController.php
@@ -7,11 +7,11 @@ require_once(__DIR__ . '/../Models/Pembelian.php');
 
 if (!isset($_SESSION["user_id"])) {
     session_start();
-    // if (!isset($_SESSION["user_id"])) {
-    //     // User is not authenticated; redirect to login page
-    //     header("Location: /app/Views/login/login.php");
-    //     ob_end_flush();
-    // }
+    if (!isset($_SESSION["user_id"])) {
+        // User is not authenticated; redirect to login page
+        header("Location: /app/Views/login/login.php");
+        ob_end_flush();
+    }
 }
 
 class PembelianController {
@@ -43,15 +43,25 @@ class PembelianController {
         return $this->pembelianModel->getAllPembelian();
     }
 
-    public function paginateHistory($pembelian,$page=1,$pagesize=10) {
-        $maxpage = ceil(count($pembelian)/$pagesize);
+    public function getPembelianByUserId($userId) {
+        return $this->pembelianModel->getPembelianByUserId($userId);
+    }
+
+    public function paginateHistory($pembelian=[],$page=1,$pagesize=10) {
+        $totalPembelian = count($pembelian);
+        $maxpage = ceil($totalPembelian / $pagesize);
         if ($page > $maxpage) {
             $page = $maxpage;
         }
-        $offset = $pagesize * ($page-1);
-        $selectedHistory = array_slice($pembelian, $offset, $pagesize);
-
-        return $selectedHistory;
+        $offset = $pagesize * ($page - 1);
+        $selectedPembelian = array_slice($pembelian, $offset, $pagesize);
+    
+        return [
+            'pembelian' => $selectedPembelian,
+            'total' => $totalPembelian,
+            'page' => $page,
+            'maxpage' => $maxpage,
+        ];
     }
 
     // Returns true if purchase succeeds
-- 
GitLab