Skip to content

Commit ba4915c

Browse files
DHAMODHARABALAJI RDHAMODHARABALAJI R
authored andcommitted
order-to-dynamodb
1 parent 97be5c9 commit ba4915c

File tree

2 files changed

+96
-58
lines changed

2 files changed

+96
-58
lines changed

order-manager/src/handlers/createOrder.js

Lines changed: 54 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,67 @@ const Order = require("../models/orderModel");
44
// const { sendToQueue } = require("../utils/sqs");
55
const { v4: uuidv4 } = require("uuid");
66

7+
const AWS = require('aws-sdk');
8+
9+
const dynamodb = new AWS.DynamoDB.DocumentClient();
10+
const ordersTable = "OrdersTable";
11+
12+
713
exports.handler = async (event) => {
14+
try {
15+
16+
console.log('Environment:', process.env);
17+
18+
const res = await dynamodb.get({
19+
TableName: ordersTable,
20+
Key: { "id": "3" }
21+
}).promise();
22+
23+
console.log("res from get item:", res);
24+
console.log("item from res: ", res.Item);
25+
26+
const newCount = res.Item.count + 1;
27+
28+
const res2 = await dynamodb.put({
29+
TableName: ordersTable,
30+
Item: {
31+
"id": "3",
32+
"count": newCount
33+
}
34+
}).promise();
35+
36+
console.log("res2 after update: ", res2);
37+
38+
39+
// await connectDB();
840

9-
// console.log('Environment:', process.env);
41+
// const { customerName, items } = JSON.parse(event.body);
1042

11-
await connectDB();
43+
// const totalAmount = items.reduce((sum, item) => sum + item.price * item.quantity, 0);
1244

13-
const { customerName, items } = JSON.parse(event.body);
14-
15-
const totalAmount = items.reduce((sum, item) => sum + item.price * item.quantity, 0);
16-
17-
const order = new Order({ orderId: uuidv4(), customerName, items, totalAmount });
18-
await order.save();
45+
// const order = new Order({ orderId: uuidv4(), customerName, items, totalAmount });
46+
// await order.save();
1947

20-
console.log('order-created:', order);
48+
// console.log('order-created:', order);
2149

22-
// await setCache(`order:${order.orderId}`, order);
50+
// await setCache(`order:${order.orderId}`, order);
2351

24-
// console.log('cache-set:', order);
52+
// console.log('cache-set:', order);
2553

26-
// await sendToQueue({ orderId: order.orderId, status: "Pending" });
54+
// await sendToQueue({ orderId: order.orderId, status: "Pending" });
2755

28-
return {
29-
statusCode: 201,
30-
body: JSON.stringify({ message: "Order created", orderId: order.orderId }),
31-
};
56+
return {
57+
statusCode: 201,
58+
body: JSON.stringify({ message: "Order created", orderId: order.orderId }),
59+
};
60+
} catch (e) {
61+
console.log(e);
62+
return {
63+
statusCode: 500,
64+
body: JSON.stringify({
65+
event: event,
66+
exception: e.toString()
67+
})
68+
};
69+
}
3270
};

order-manager/template.yaml

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Transform: AWS::Serverless-2016-10-31
44
Globals:
55

66
Function:
7-
Timeout: 3
7+
Timeout: 10
88

99
Parameters:
1010

@@ -32,10 +32,10 @@ Resources:
3232
Name: OrderServiceAPI
3333
StageName: v1
3434

35-
OrderQueue:
36-
Type: AWS::SQS::Queue
37-
Properties:
38-
QueueName: OrderQueue
35+
# OrderQueue:
36+
# Type: AWS::SQS::Queue
37+
# Properties:
38+
# QueueName: OrderQueue
3939

4040
CreateOrderFunction:
4141
Type: AWS::Serverless::Function
@@ -56,12 +56,12 @@ Resources:
5656
Variables:
5757
HOSTING_ENV: !Ref HOSTINGENV
5858
DB_URI: ""
59-
REDIS_HOST: ""
60-
SQS_URL: !Ref OrderQueue
61-
MONGODB_SECRET_ARN: !Sub "arn:aws:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:mongodb/credentials"
62-
VpcConfig:
63-
SecurityGroupIds: !Ref SecurityGroupIds
64-
SubnetIds: !Ref SubnetIds
59+
# REDIS_HOST: ""
60+
# SQS_URL: !Ref OrderQueue
61+
# MONGODB_SECRET_ARN: !Sub "arn:aws:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:mongodb/credentials"
62+
# VpcConfig:
63+
# SecurityGroupIds: !Ref SecurityGroupIds
64+
# SubnetIds: !Ref SubnetIds
6565
Events:
6666
ApiEvent:
6767
Type: Api
@@ -70,37 +70,37 @@ Resources:
7070
Method: post
7171
RestApiId: !Ref OrderApi
7272

73-
GetMyOrdersFunction:
74-
Type: AWS::Serverless::Function
75-
Properties:
76-
CodeUri: src/
77-
Handler: handlers/getMyOrders.handler
78-
Runtime: nodejs22.x
79-
MemorySize: 128
80-
Timeout: 10
81-
Policies:
82-
- AWSLambdaVPCAccessExecutionRole
83-
- AmazonDynamoDBFullAccess
84-
- AWSLambdaSQSQueueExecutionRole
85-
- AWSLambdaBasicExecutionRole
86-
- AWSSecretsManagerGetSecretValuePolicy:
87-
SecretArn: !Sub "arn:aws:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:mongodb/credentials-*"
88-
Environment:
89-
Variables:
90-
HOSTING_ENV: !Ref HOSTINGENV
91-
DB_URI: ""
92-
REDIS_HOST: ""
93-
MONGODB_SECRET_ARN: !Sub "arn:aws:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:mongodb/credentials"
94-
VpcConfig:
95-
SecurityGroupIds: !Ref SecurityGroupIds
96-
SubnetIds: !Ref SubnetIds
97-
Events:
98-
ApiEvent:
99-
Type: Api
100-
Properties:
101-
Path: /myorders
102-
Method: post
103-
RestApiId: !Ref OrderApi
73+
# GetMyOrdersFunction:
74+
# Type: AWS::Serverless::Function
75+
# Properties:
76+
# CodeUri: src/
77+
# Handler: handlers/getMyOrders.handler
78+
# Runtime: nodejs22.x
79+
# MemorySize: 128
80+
# Timeout: 10
81+
# Policies:
82+
# - AWSLambdaVPCAccessExecutionRole
83+
# - AmazonDynamoDBFullAccess
84+
# - AWSLambdaSQSQueueExecutionRole
85+
# - AWSLambdaBasicExecutionRole
86+
# - AWSSecretsManagerGetSecretValuePolicy:
87+
# SecretArn: !Sub "arn:aws:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:mongodb/credentials-*"
88+
# Environment:
89+
# Variables:
90+
# HOSTING_ENV: !Ref HOSTINGENV
91+
# DB_URI: ""
92+
# REDIS_HOST: ""
93+
# MONGODB_SECRET_ARN: !Sub "arn:aws:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:mongodb/credentials"
94+
# VpcConfig:
95+
# SecurityGroupIds: !Ref SecurityGroupIds
96+
# SubnetIds: !Ref SubnetIds
97+
# Events:
98+
# ApiEvent:
99+
# Type: Api
100+
# Properties:
101+
# Path: /myorders
102+
# Method: post
103+
# RestApiId: !Ref OrderApi
104104

105105

106106

0 commit comments

Comments
 (0)