From 03fe1ac92cedb30fda9d10d63ba95529ee3a7627 Mon Sep 17 00:00:00 2001 From: DewanaGustavus <76590469+DewanaGustavus@users.noreply.github.com> Date: Wed, 15 Nov 2023 20:49:31 +0700 Subject: [PATCH] feat: user balance --- src/handler/user/user.router.ts | 19 +++++++++++++++++ src/handler/user/user.service.ts | 36 +++++++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/src/handler/user/user.router.ts b/src/handler/user/user.router.ts index 06eb191..4ec5612 100644 --- a/src/handler/user/user.router.ts +++ b/src/handler/user/user.router.ts @@ -49,3 +49,22 @@ UserRouter.post('/login', async (request: Request, response: Response) => { return response.status(500).json(error.message); } }) + +UserRouter.get('/balance/:username', async (request: Request, response: Response) => { + try { + const responseString = await UserServices.getBalance(request.params.username); + console.log(responseString); + return response.status(200).json(responseString); + } catch (error: any) { + return response.status(500).json(error.message); + } +}) + +UserRouter.post('/balance', async (request: Request, response: Response) => { + try { + const responseString = await UserServices.topup(request.body.username, request.body.topupBalance); + 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 76edeb4..1ed8480 100644 --- a/src/handler/user/user.service.ts +++ b/src/handler/user/user.service.ts @@ -63,4 +63,38 @@ export async function login(username : string, password : string) { }); const responseString = (password === result?.password) ? "success" : "failed"; return responseString; -} \ No newline at end of file +} + +export async function getBalance(username : string) { + console.log(username); + const balance = await db.user.findFirst({ + where : { + username : username + }, + select : { + saldo : true + } + }); + console.log("balance", balance); + return balance?.saldo; +} + +export async function topup(username : string, topupBalance : number) { + let responseString = ""; + try{ + const result : queryResult = await db.user.update({ + where: { + username : username + }, + data: { + saldo : { + increment : topupBalance + } + } + }); + responseString = "success"; + }catch (err) { + responseString = "failed"; + } + return responseString; +} -- GitLab