From 1932c5686c9c4fb1205f04ca5399a97932fadd58 Mon Sep 17 00:00:00 2001
From: Louis Leslie <spy.tech23@gmail.com>
Date: Fri, 26 Oct 2018 10:29:26 +0700
Subject: [PATCH] Fixed search, order and detail controllers

---
 controller/DetailController.php | 18 +++++++++++++-----
 controller/OrderController.php  | 12 ++++++++----
 controller/SearchController.php | 14 +++-----------
 3 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/controller/DetailController.php b/controller/DetailController.php
index 25e4df2..b111c04 100644
--- a/controller/DetailController.php
+++ b/controller/DetailController.php
@@ -24,12 +24,20 @@ class DetailController extends BaseController{
                 // get biodata model
                 $bio_model = new Model\BiodataModel();
                 
-                // get user profile pictures in review.
-                foreach($reviews as $review){
-                    $bio = $bio_model->findByID($review->username);
-                    if(!empty($bio)){
-                        $review->image_id = $bio->pic_id;
+                $rating_sum = 0;
+                $book->avgrating = 0;
+                if(count($reviews) > 0){
+                    foreach($reviews as $review){
+                        // get user profile pictures in review
+                        $bio = $bio_model->findByID($review->username);
+                        if(!empty($bio)){
+                            $review->image_id = $bio->pic_id;
+                        }
+    
+                        // and get average rating for the book
+                        $rating_sum += $review->rating;
                     }
+                    $book->avgrating = (float)($rating_sum / count($reviews));
                 }
 
                 $results = array(
diff --git a/controller/OrderController.php b/controller/OrderController.php
index ceb3ada..fd5ac1b 100644
--- a/controller/OrderController.php
+++ b/controller/OrderController.php
@@ -19,7 +19,7 @@ class OrderController extends BaseController{
                 $token = $token[0];
                 if($token->isExpired()){
                     $this->setResponse(401, 'Not logged in');
-                    return false;
+                    return;
                 } else {
                     if(isset($params['data'], $params['data']['book_id'], $params['data']['amount'])){
                         $order_model = new Model\OrderModel();
@@ -33,18 +33,22 @@ class OrderController extends BaseController{
                         ));
     
                         // create new Order
+                        $result = 0;
                         $order = $order_model->create($new_order);
-                        return $order;
+                        if($order){
+                            $result = $new_order->order_id;
+                        }
+                        return $result;
     
                     } else {
                         $this->setResponse(400);
-                        return false;
+                        return;
                     }
                 } 
             }
         } else {
             $this->setResponse(401, 'Not logged in');
-            return false;
+            return;
         }
         
     }
diff --git a/controller/SearchController.php b/controller/SearchController.php
index 0267001..882edc2 100644
--- a/controller/SearchController.php
+++ b/controller/SearchController.php
@@ -12,19 +12,12 @@ class SearchController extends BaseController {
      */
     public function run($params){
         if(isset($params['data'], $params['data']['title'])){
-            if(!isset($params['data']['page'])){
-                $page = 1;
-            } else {
-                $page = $params['data']['page'];
-            }
-            $limit = 10;
             $book_model = new Model\BookModel();
             $review_model = new Model\ReviewModel();
 
             // get books by input query with limit
             $data = array(":title"=>'%'.$params['data']['title'].'%');
-            $offset = $limit * ((int)$page-1);
-            $criteria = 'title LIKE :title LIMIT ' . (string)$limit .  ' OFFSET ' . (string)$offset;
+            $criteria = 'title LIKE :title';
             $qresults = $book_model->find($criteria, $data);
 
             // get books count by input query
@@ -45,11 +38,10 @@ class SearchController extends BaseController {
                     $rating_sum = 0;
                     foreach($review_results as $review_result){
                         $rating_sum += $review_result->rating;
-                        $rating_count += 1;
                     }
-                    $result->avgrating = round((float)($rating_sum / $rating_count), 2);
+                    $result->avgrating = (float)($rating_sum / count($review_results));
                 }
-                $result->votes = $rating_count;
+                $result->votes = count($review_results);
             }
 
             $results = array(
-- 
GitLab