From e437574c58c6ec90e7932580c10ab7eb89ff8f5b Mon Sep 17 00:00:00 2001
From: IceTeaXXD <13521024@std.stei.itb.ac.id>
Date: Wed, 15 Nov 2023 20:30:07 +0700
Subject: [PATCH] feat: user info endpoint

---
 api/profile/info.php | 23 +++++++++++++++++++++++
 app/models/user.php  | 22 ++++++++++++++++++++++
 2 files changed, 45 insertions(+)
 create mode 100644 api/profile/info.php

diff --git a/api/profile/info.php b/api/profile/info.php
new file mode 100644
index 0000000..c74cde6
--- /dev/null
+++ b/api/profile/info.php
@@ -0,0 +1,23 @@
+<?php
+require_once '../../app/core/App.php';
+require_once '../../app/core/Database.php';
+require_once '../../app/models/User.php';
+require_once '../../config/config.php';
+
+session_start();
+
+$user = new User();
+
+if (isset($_GET['userid'])) {
+  $user_id = $_GET['userid'];
+  $exec = $user->getUserById($user_id);
+  if (!$exec) {
+    echo json_encode(array("error" => "No user found"));
+    exit();
+  }
+  $name = $user->getName();
+  $email = $user->getEmail();
+  echo json_encode(array("name" => $name, "email" => $email));
+} else {
+  echo json_encode(array("error" => "No user id provided"));
+}
diff --git a/app/models/user.php b/app/models/user.php
index 33de323..70441be 100644
--- a/app/models/user.php
+++ b/app/models/user.php
@@ -173,6 +173,28 @@ class User{
         }
     }
 
+    public function getUserById($userid) {
+        $query = "SELECT user_id, name, role, email, password FROM $this->table WHERE user_id = ?";
+        $stmt = $this->db->setSTMT($query);
+        mysqli_stmt_bind_param($stmt, "s", $userid);
+        $exists = mysqli_stmt_execute($stmt);
+        if(!$exists){
+            /* Tidak ada usernya */
+            return $exists;
+        }else{
+            /* Ambil hasilnya */
+            $result = mysqli_stmt_get_result($stmt);
+            $row = mysqli_fetch_array($result);
+            if($row){
+                $this->role = $row['role'];
+                $this->name = $row['name'];
+                $this->email = $row['email'];
+                $this->userID = $row['user_id'];
+                return true;
+            }
+        }
+    }
+
     public function createresettoken($email, $token) {
         $query = "UPDATE $this->table SET reset_token = ? WHERE email = ?";
         $stmt = $this->db->setSTMT($query);
-- 
GitLab