From bff9ba25417d48b242af34b4ded77b3392f72728 Mon Sep 17 00:00:00 2001 From: DewanaGustavus <76590469+DewanaGustavus@users.noreply.github.com> Date: Wed, 15 Nov 2023 00:00:14 +0700 Subject: [PATCH] feat: CORS and endpoint naming fix --- package-lock.json | 31 +++++++++++++++++++++++++++++++ package.json | 2 ++ src/handler/user/user.router.ts | 14 +++++++------- src/handler/user/user.service.ts | 5 +++-- src/index.ts | 18 +++++++----------- 5 files changed, 50 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0f188a0..de6b3c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,9 +11,11 @@ "dependencies": { "@prisma/client": "^5.5.2", "@types/express": "^4.17.20", + "cors": "^2.8.5", "express": "^4.18.2" }, "devDependencies": { + "@types/cors": "^2.8.16", "@types/node": "^20.8.10", "nodemon": "^3.0.1", "prisma": "^5.5.2", @@ -131,6 +133,15 @@ "@types/node": "*" } }, + "node_modules/@types/cors": { + "version": "2.8.16", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.16.tgz", + "integrity": "sha512-Trx5or1Nyg1Fq138PCuWqoApzvoSLWzZ25ORBiHMbbUT42g578lH1GT4TwYDbiUOLFuDsCkfLneT2105fsFWGg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/express": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", @@ -409,6 +420,18 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -934,6 +957,14 @@ "node": ">=0.10.0" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", diff --git a/package.json b/package.json index 9cefdbf..0034c3d 100644 --- a/package.json +++ b/package.json @@ -23,9 +23,11 @@ "dependencies": { "@prisma/client": "^5.5.2", "@types/express": "^4.17.20", + "cors": "^2.8.5", "express": "^4.18.2" }, "devDependencies": { + "@types/cors": "^2.8.16", "@types/node": "^20.8.10", "nodemon": "^3.0.1", "prisma": "^5.5.2", diff --git a/src/handler/user/user.router.ts b/src/handler/user/user.router.ts index f452f3f..06eb191 100644 --- a/src/handler/user/user.router.ts +++ b/src/handler/user/user.router.ts @@ -6,18 +6,18 @@ import * as UserServices from './user.service' export const UserRouter = express.Router() -UserRouter.post('/checkUsername', async (request: Request, response: Response) => { +UserRouter.post('/check-username', async (request: Request, response: Response) => { try { - const responseString= await UserServices.checkUsername(request.body.username); + const responseString = await UserServices.checkUsername(request.body.username); return response.status(200).json(responseString); } catch (error: any) { return response.status(500).json(error.message); } }) -UserRouter.post('/checkEmail', async (request: Request, response: Response) => { +UserRouter.post('/check-email', async (request: Request, response: Response) => { try { - const responseString= await UserServices.checkEmail(request.body.email); + const responseString = await UserServices.checkEmail(request.body.email); return response.status(200).json(responseString); } catch (error: any) { return response.status(500).json(error.message); @@ -34,16 +34,16 @@ UserRouter.post('/register', async (request: Request, response: Response) => { password : request.body.password, saldo : 0, }; - const responseString= await UserServices.register(user); + const responseString = await UserServices.register(user); return response.status(200).json(responseString); } catch (error: any) { return response.status(500).json(error.message); } }) -UserRouter.post('/validateLogin', async (request: Request, response: Response) => { +UserRouter.post('/login', async (request: Request, response: Response) => { try { - const responseString= await UserServices.validateLogin(request.body.username, request.body.password); + const responseString = await UserServices.login(request.body.username, request.body.password); 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 0907573..d76009c 100644 --- a/src/handler/user/user.service.ts +++ b/src/handler/user/user.service.ts @@ -24,7 +24,7 @@ export async function checkEmail(email : string) { } export async function register(user : User) { - let responseString = "success"; + let responseString = ""; try { const result : User = await db.user.create({ data : { @@ -34,6 +34,7 @@ export async function register(user : User) { password : user.password, } }) + responseString = "success"; }catch (err) { const usernameAvailable = await checkUsername(user.username); const emailAvailable = await checkEmail(user.email); @@ -48,7 +49,7 @@ export async function register(user : User) { return responseString; } -export async function validateLogin(username : string, password : string) { +export async function login(username : string, password : string) { const result : queryResult = await db.user.findFirst({ where: { username : username diff --git a/src/index.ts b/src/index.ts index b8d1840..bc78ca9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,25 +1,21 @@ import express, {Express, Request, Response} from "express"; import { HistoryRouter } from "./handler/history/history.router"; import { UserRouter } from "./handler/user/user.router"; +import cors from "cors"; const app = express(); const port = 5000; app.use(express.json()); +app.use(cors()); +// logger +app.use((req, res, next) => { + console.log(`${req.method} ${req.url}`); + next(); +}); app.use('/history', HistoryRouter); app.use('/user', UserRouter); -app.get("/", (req, res) => { - res.send("test get home"); -}) - -app.get("/test", (req, res) => { - res.send("test get"); -}) - -app.post("/test", (req, res) => { - res.send("ganti dong"); -}) app.listen(port, () =>{ console.log(`listening on port ${port}`); -- GitLab