From 04bf866f253507c67925a92b612ac52ff68dbf31 Mon Sep 17 00:00:00 2001 From: DewanaGustavus <76590469+DewanaGustavus@users.noreply.github.com> Date: Thu, 16 Nov 2023 17:40:40 +0700 Subject: [PATCH] feat: fetch user detail --- src/handler/user/user.router.ts | 9 +++++++++ src/handler/user/user.service.ts | 21 +++++++++++++++++++++ src/interfaces/UserDetail.ts | 7 +++++++ 3 files changed, 37 insertions(+) create mode 100644 src/interfaces/UserDetail.ts diff --git a/src/handler/user/user.router.ts b/src/handler/user/user.router.ts index 4ec5612..2702ca9 100644 --- a/src/handler/user/user.router.ts +++ b/src/handler/user/user.router.ts @@ -68,3 +68,12 @@ UserRouter.post('/balance', async (request: Request, response: Response) => { return response.status(500).json(error.message); } }) + +UserRouter.get('/user-detail/:username', async (request: Request, response: Response) => { + try { + const userData = await UserServices.getUserByUsername(request.params.username); + return response.status(200).json(userData); + } 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 1ed8480..c20a5e1 100644 --- a/src/handler/user/user.service.ts +++ b/src/handler/user/user.service.ts @@ -1,4 +1,5 @@ import { User } from "../../interfaces/User"; +import { UserDetail } from "../../interfaces/UserDetail"; import {db} from "../../utils/db.server" type queryResult = User | null; @@ -98,3 +99,23 @@ export async function topup(username : string, topupBalance : number) { } return responseString; } + +export async function getUserByUsername(username : string) { + const userDetail : UserDetail | null = await db.user.findFirst({ + where:{ + username : username, + }, + select: { + username : true, + name : true, + email : true, + saldo : true + } + }) + + if(userDetail === null) { + throw "error"; + } + + return userDetail; +} diff --git a/src/interfaces/UserDetail.ts b/src/interfaces/UserDetail.ts new file mode 100644 index 0000000..8934888 --- /dev/null +++ b/src/interfaces/UserDetail.ts @@ -0,0 +1,7 @@ + +export interface UserDetail { + username : string + name : string + email : string + saldo : number +} \ No newline at end of file -- GitLab