From 7ebc9dfb4047de30a48bc0aae94c694a3873a752 Mon Sep 17 00:00:00 2001
From: DewanaGustavus <76590469+DewanaGustavus@users.noreply.github.com>
Date: Thu, 16 Nov 2023 18:37:33 +0700
Subject: [PATCH] feat: edit profile

---
 src/handler/user/user.router.ts  |  9 +++++++++
 src/handler/user/user.service.ts | 31 +++++++++++++++++++++++++++++++
 src/index.ts                     |  2 ++
 3 files changed, 42 insertions(+)

diff --git a/src/handler/user/user.router.ts b/src/handler/user/user.router.ts
index 2702ca9..5bbe0da 100644
--- a/src/handler/user/user.router.ts
+++ b/src/handler/user/user.router.ts
@@ -77,3 +77,12 @@ UserRouter.get('/user-detail/:username', async (request: Request, response: Resp
         return response.status(500).json(error.message);
     }
 })
+
+UserRouter.put('/user-detail/:username', async (request: Request, response: Response) => {
+    try {
+        const responseString = await UserServices.editUserByUsername(request.params.username, request.body);
+        return response.status(200).json(responseString);
+    } catch (error: any) {
+        return response.status(500).json(error.message);
+    }
+})
diff --git a/src/handler/user/user.service.ts b/src/handler/user/user.service.ts
index c20a5e1..9105388 100644
--- a/src/handler/user/user.service.ts
+++ b/src/handler/user/user.service.ts
@@ -119,3 +119,34 @@ export async function getUserByUsername(username : string) {
 
     return userDetail;
 }
+
+export async function editUserByUsername(username : string, newUserDetail : UserDetail) {
+    let responseString = "";
+    const oldUserData = await getUserByUsername(username);
+    const emailAvailable = await checkEmail(newUserDetail.email);
+
+    if((emailAvailable === "exist") && !(oldUserData.email === newUserDetail.email)) {
+        responseString = "email already exist";
+    }
+    
+    if(responseString !== "") {
+        return responseString;   
+    }
+
+    try {
+        const result : User = await db.user.update({
+            where: {
+                username : username
+            },
+            data: {
+                name : newUserDetail.name,
+                email : newUserDetail.email,
+            }
+        })
+        responseString = "success";
+    }catch (err) {
+        responseString = "failed";
+    }
+    console.log(responseString);
+    return responseString;
+}
diff --git a/src/index.ts b/src/index.ts
index bc78ca9..a4e198d 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,5 +1,6 @@
 import express, {Express, Request, Response} from "express";
 import { HistoryRouter } from "./handler/history/history.router";
+import { OrderRouter } from "./handler/order/order.router";
 import { UserRouter } from "./handler/user/user.router";
 import cors from "cors";
 
@@ -15,6 +16,7 @@ app.use((req, res, next) => {
 });
 
 app.use('/history', HistoryRouter);
+app.use('/order', OrderRouter);
 app.use('/user', UserRouter);
 
 app.listen(port, () =>{
-- 
GitLab