Skip to content

Commit 403a10b

Browse files
committed
feature: guestbook lambda handler 구현
1 parent f87496e commit 403a10b

File tree

5 files changed

+56
-2
lines changed

5 files changed

+56
-2
lines changed

api-guestbook/bin/index.mjs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { handler } from "../src/index.mjs";
2+
import dotenv from "dotenv";
3+
4+
dotenv.config({ path: "../.env" });
5+
6+
// @ts-ignore
7+
const response = await handler({
8+
httpMethod: "GET",
9+
queryStringParameters: { take: "5" },
10+
body: null,
11+
});
12+
13+
console.log("Response:", response);

api-guestbook/package.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"name": "api-guestbook",
3+
"version": "1.0.0",
4+
"main": "index.js",
5+
"license": "MIT",
6+
"scripts": {
7+
"dev": "node bin/index.mjs"
8+
},
9+
"dependencies": {
10+
"uuid": "^11.1.0"
11+
},
12+
"devDependencies": {
13+
"dotenv": "^16.5.0"
14+
}
15+
}

api-guestbook/src/index.mjs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { BaseResponse } from "./base/BaseResponse.mjs";
2+
import { GuestbookController } from "./controllers/GuestbookController.mjs";
3+
import { GuestbookRepository } from "./repository/GuestbookRepository.mjs";
4+
5+
/**
6+
* @param {import("aws-lambda").APIGatewayEvent} event
7+
* @returns {Promise<import("aws-lambda").APIGatewayProxyResult>}
8+
*/
9+
export const handler = async (event) => {
10+
const guestbookRepository = new GuestbookRepository();
11+
const guestbookController = new GuestbookController(event, guestbookRepository);
12+
13+
switch (event.httpMethod) {
14+
case "GET":
15+
return guestbookController.readGuestbook();
16+
case "POST":
17+
return guestbookController.createGuestbook();
18+
case "DELETE":
19+
return guestbookController.deleteGuestbook();
20+
default:
21+
return BaseResponse.from(405, {
22+
message: `Method Not Allowed : ${event.httpMethod}`,
23+
allowedMethods: ["GET", "POST", "DELETE"],
24+
});
25+
}
26+
};

api-guestbook/src/repository/GuestbookRepository.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export class GuestbookRepository {
66
static GUESTBOOK_TABLE = process.env.GUESTBOOK_TABLE;
77

88
constructor() {
9-
const client = new DynamoDBClient();
9+
const client = new DynamoDBClient({ region: process.env.AWS_REGION });
1010
this.documentClient = DynamoDBDocumentClient.from(client);
1111
}
1212

yarn.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3527,7 +3527,7 @@ diff-sequences@^29.6.3:
35273527

35283528
dotenv@^16.5.0:
35293529
version "16.5.0"
3530-
resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz"
3530+
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.5.0.tgz#092b49f25f808f020050051d1ff258e404c78692"
35313531
integrity sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==
35323532

35333533

0 commit comments

Comments
 (0)