From c21056edb67ae53f82222a080f2225095a0f48dd Mon Sep 17 00:00:00 2001 From: afnanramadhan <13521011@std.stei.itb.ac.id> Date: Fri, 17 Nov 2023 04:25:32 +0700 Subject: [PATCH] feat: fix subscribe --- public/js/detailfact.js | 1 + server/controller/auth/DetailFact.php | 16 +++--- server/controller/auth/Fact.php | 77 +++++++++++++++++++++++++-- server/controller/auth/Register.php | 4 +- 4 files changed, 85 insertions(+), 13 deletions(-) diff --git a/public/js/detailfact.js b/public/js/detailfact.js index d760379..c6871cb 100644 --- a/public/js/detailfact.js +++ b/public/js/detailfact.js @@ -14,6 +14,7 @@ const loadpage = (id) => { const parentElement = document.getElementById("content"); const content = jsonObject['data'][0]; + console.log(content.is_subscribe[0]); let subs = ""; if(content.is_subscribe[0] == 'true'){ subs = "Unsubscribe"; diff --git a/server/controller/auth/DetailFact.php b/server/controller/auth/DetailFact.php index 648b54b..7ee57cd 100644 --- a/server/controller/auth/DetailFact.php +++ b/server/controller/auth/DetailFact.php @@ -73,7 +73,7 @@ if(isset($_GET['subscribe'])){ $data['data'][0]['path_photo'] = $path_photo; $data['data'][0]['author'] = $author; $data['data'][0]['total_subscriber'] = count((getSubs($uuid))); - $data['data'][0]['is_subscribe'] = isSubscribe($uuid, 1); + $data['data'][0]['is_subscribe'] = isSubscribe($uuid, $idUser); $data['data'][0]['uuid'] = $uuid; @@ -260,13 +260,13 @@ function addExp($id){ $soapRequest = ' <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"> - <Body> - <addExpUser xmlns="http://Services.nutricraft.org/"> - <arg0 xmlns="">'.$id.'</arg0> - <arg1 xmlns="">10</arg1> - </addExpUser> - </Body> -</Envelope>'; + <Body> + <addExpUser xmlns="http://Services.nutricraft.org/"> + <arg0 xmlns="">'.$id.'</arg0> + <arg1 xmlns="">10</arg1> + </addExpUser> + </Body> + </Envelope>'; $options = [ CURLOPT_URL => $serviceUrl, diff --git a/server/controller/auth/Fact.php b/server/controller/auth/Fact.php index 789df18..9235060 100644 --- a/server/controller/auth/Fact.php +++ b/server/controller/auth/Fact.php @@ -1,5 +1,8 @@ <?php $API = $_ENV['USER_KEY']; +$userCookie = $_COOKIE['user']; +$userData = json_decode($userCookie); +$idUser = $userData[0]->id; // u /////////////////////////// @@ -8,13 +11,13 @@ if(isset($_GET['select'])){ $search = $_GET['search']; if($search!=""){ if($select=="Subscribed"){ - $uuid = getUUID(1); + $uuid = getUUID($idUser); $post_data = json_encode(array( - 'subscribers' => $uuid, + 'subscribes' => $uuid, 'title' => $search, )); - $content = curl_init("http://nutricraft-express:8080/content/title/"); + $content = curl_init("http://nutricraft-express:8080/content/title/subscriber"); curl_setopt($content, CURLOPT_RETURNTRANSFER, true); curl_setopt($content, CURLOPT_POST, true); curl_setopt($content, CURLOPT_POSTFIELDS, $post_data); @@ -151,7 +154,75 @@ if(isset($_GET['select'])){ } }else{ if($select=="Subscribed"){ + $uuid = getUUID($idUser); + $post_data = json_encode(array( + 'subscribes' => $uuid + )); + $content = curl_init("http://nutricraft-express:8080/content/subscriber"); + curl_setopt($content, CURLOPT_RETURNTRANSFER, true); + curl_setopt($content, CURLOPT_POST, true); + curl_setopt($content, CURLOPT_POSTFIELDS, $post_data); + curl_setopt($content, CURLOPT_HTTPHEADER, array( + 'Content-Type: application/json', + )); + $response = curl_exec($content); + if (curl_errno($content)) { + echo 'Curl error: ' . curl_error($content); + } + curl_close($content); + $data = json_decode($response, true); + $idPhotoArray = array_map(function($item) { + return $item['id_photo']; + }, $data['data']); + + $idCreatorArray = array_map(function($item) { + return $item['id_creator']; + }, $data['data']); + + $path_photo = array(); + $creatorArr = array(); + + for($i = 0; $i < count($idPhotoArray); $i++) { + $idPhoto = $idPhotoArray[$i]; + $photo = curl_init(); + curl_setopt($photo, CURLOPT_URL, "http://nutricraft-express:8080/image/$idPhoto?APIkey=$API"); + curl_setopt($photo, CURLOPT_RETURNTRANSFER, 1); + $tempResponse = curl_exec($photo); + if (curl_errno($photo)) { + echo 'Curl error: ' . curl_error($photo); + } + curl_close($photo); + $tempResponse = json_decode($tempResponse, true); + $url = $tempResponse['data']['url']; + + $path_photo[$i] = $url; + } + for($i = 0; $i < count($idCreatorArray); $i++) { + $idCreator = $idCreatorArray[$i]; + $creator = curl_init(); + curl_setopt($creator, CURLOPT_URL, "http://nutricraft-express:8080/user/$idCreator?APIkey=$API"); + curl_setopt($creator, CURLOPT_RETURNTRANSFER, 1); + $tempResponse = curl_exec($creator); + if (curl_errno($creator)) { + echo 'Curl error: ' . curl_error($creator); + } + curl_close($creator); + $tempResponse = json_decode($tempResponse, true); + $name = $tempResponse['data']['name']; + $creatorArr[$i] = $name; + } + + for($i = 0; $i < count($data['data']); $i++) { + $data['data'][$i]['path_photo'] = $path_photo[$i]; + $data['data'][$i]['author'] = $creatorArr[$i]; + } + + if ($data) { + echo json_encode($data); + } else { + echo 'API request failed'; + } }else{ $content = curl_init(); curl_setopt($content, CURLOPT_URL, "http://nutricraft-express:8080/content?APIkey=$API"); diff --git a/server/controller/auth/Register.php b/server/controller/auth/Register.php index 1695fda..2004028 100644 --- a/server/controller/auth/Register.php +++ b/server/controller/auth/Register.php @@ -33,7 +33,7 @@ if (isset($_POST['uname']) && isset($_POST['psw']) && isset($_POST['email']) && $phoneNumber = $_POST['phoneNumber']; $user->Insert($username, $email, $phoneNumber, $password, "user"); $id = $user->FindIdByEmail($email); - addCoins($id); + newUser($id); if(is_dir("../../../assets/user/$id" == false)){ echo "<script>('create folder')</script>"; mkdir("../../../assets/user/$id",0777,true); @@ -43,7 +43,7 @@ if (isset($_POST['uname']) && isset($_POST['psw']) && isset($_POST['email']) && } -function addCoins($id){ +function newUser($id){ $serviceUrl = $_ENV['SOAP_URL_USER_LEVEL']."?APIkey=".$_ENV["SOAP_KEY"]; $soapRequest = ' -- GitLab