From a55609c71d8ff545fed052217b8a5fdd3dfa1e52 Mon Sep 17 00:00:00 2001
From: SulthanDA28 <13521159@std.stei.itb.ac.id>
Date: Thu, 16 Nov 2023 17:58:31 +0700
Subject: [PATCH] refactor url

---
 src/app/controllers/Home/ClickPostController.php |  6 ++++--
 src/app/controllers/Home/GetPostIDController.php |  3 ++-
 .../controllers/Home/GetReplyPostController.php  |  3 ++-
 src/app/controllers/Home/ReplyPostController.php |  3 ++-
 src/app/models/HomeModel.php                     | 16 ++++++++++++++++
 src/public/js/post.js                            |  5 +++--
 6 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/src/app/controllers/Home/ClickPostController.php b/src/app/controllers/Home/ClickPostController.php
index 4f7e0ef..d3dce42 100644
--- a/src/app/controllers/Home/ClickPostController.php
+++ b/src/app/controllers/Home/ClickPostController.php
@@ -13,7 +13,8 @@ class ClickPostController extends BaseController{
     public function put($urlParams){
         parse_str(file_get_contents('php://input'), $_PUT);
         $post_id = $_PUT['post_id'];
-        $owner_id = $_PUT['owner_id'];
+        $owner_user = $_PUT['owner_id'];
+        $owner_id = $this->srv->getUsernameByPostOwnerId($owner_user);
         $hasil = $this->srv->plusView($post_id,$owner_id);
         if($hasil==true){
             $hasiljson = array(
@@ -26,7 +27,8 @@ class ClickPostController extends BaseController{
         else{
             $hasiljson = array(
                 'status' => 'error',
-                'message' => 'View gagal ditambahkan'
+                'message' => 'View gagal ditambahkan',
+                'data' => $owner_user
             );
             header('Content-Type: application/json');
             return json_encode($hasiljson);  
diff --git a/src/app/controllers/Home/GetPostIDController.php b/src/app/controllers/Home/GetPostIDController.php
index fa9290d..aac0af7 100644
--- a/src/app/controllers/Home/GetPostIDController.php
+++ b/src/app/controllers/Home/GetPostIDController.php
@@ -12,7 +12,8 @@ class GetPostIDController extends BaseController{
     }
     public function get($urlParams){
         $postid = $urlParams[1];
-        $owner = $urlParams[0];
+        $owner_username = $urlParams[0];
+        $owner = $this->srv->getUsernameByPostOwnerId($owner_username);
         $result = $this->srv->getPostByID($postid,$owner);
         if($result!=null){
             echo json_encode($result);
diff --git a/src/app/controllers/Home/GetReplyPostController.php b/src/app/controllers/Home/GetReplyPostController.php
index 75632b1..748db59 100644
--- a/src/app/controllers/Home/GetReplyPostController.php
+++ b/src/app/controllers/Home/GetReplyPostController.php
@@ -12,7 +12,8 @@ class GetReplyPostController extends BaseController{
     }
     public function get($urlParams){
         $postid = $urlParams[1];
-        $owner = $urlParams[0];
+        $owner_user = $urlParams[0];
+        $owner = $this->srv->getUsernameByPostOwnerId($owner_user);
         $result = $this->srv->getReply($postid,$owner);
         if($result){
             echo json_encode($result);
diff --git a/src/app/controllers/Home/ReplyPostController.php b/src/app/controllers/Home/ReplyPostController.php
index 0cb69d1..24a964c 100644
--- a/src/app/controllers/Home/ReplyPostController.php
+++ b/src/app/controllers/Home/ReplyPostController.php
@@ -12,8 +12,9 @@ class ReplyPostController extends BaseController{
     }
     public function post($urlParams){
         $postid = $urlParams[1];
-        $owner = $urlParams[0];
+        $owner_user = $urlParams[0];
         $body = $_POST['body'];
+        $owner = $this->srv->getUsernameByPostOwnerId($owner_user);
         $result = $this->srv->replyPost($postid,$owner,$body);
         if($result){
             return json_encode(array(
diff --git a/src/app/models/HomeModel.php b/src/app/models/HomeModel.php
index e342130..ee97c31 100644
--- a/src/app/models/HomeModel.php
+++ b/src/app/models/HomeModel.php
@@ -228,6 +228,22 @@ class HomeModel
             return false;
         }
     }
+    public function getUsernameByPostOwnerId($owner_id){
+        try{
+            $db = PDOHandler::getInstance()->getPDO();
+            $sql = "SELECT id FROM users WHERE username='$owner_id'";
+            $result = $db->query($sql);
+            if($result){
+                $data = $result->fetch(PDO::FETCH_ASSOC);
+                return $data['id'];
+            }
+            else{
+                return false;
+            }
+        }catch(Exception $e){
+            return false;
+        }
+    }
 }
 
 ?>
\ No newline at end of file
diff --git a/src/public/js/post.js b/src/public/js/post.js
index c4010a0..4fce70c 100644
--- a/src/public/js/post.js
+++ b/src/public/js/post.js
@@ -66,7 +66,7 @@ function createPost(data,totalsemuapage,pagenow,owner_id=null){
         const isitext = document.createElement('p');
         isitext.textContent = element.body;
         isitext.classList.add('isitext');
-        isitext.addEventListener('click',function(){gotoPost(element.post_id,element.id)});
+        isitext.addEventListener('click',function(){gotoPost(element.post_id,element.username)});
         box.appendChild(isitext);
         var pathToRemove = "/var/www/html";
         var path = element.path;
@@ -126,7 +126,8 @@ function gotoPost(postid,ownerid){
         if (xhr.status === 200) {
             const response = JSON.parse(xhr.responseText);
             if(response.status==="error"){
-                alert("Failed to go to post");
+                console.log(response);
+                alert("Failed to go to post reply");
             }
             else if(response.status==="success"){
                 console.log(response);
-- 
GitLab