Skip to content
This repository was archived by the owner on Mar 27, 2025. It is now read-only.

Commit 6d31591

Browse files
committed
Refactor environment variable handling to use ENV_NAME consistently across stacks and lambdas
1 parent b9d3d8b commit 6d31591

File tree

8 files changed

+64
-18
lines changed

8 files changed

+64
-18
lines changed

lib/auth-stack.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export class AuthStack extends cdk.Stack {
3535
architecture: lambda.Architecture.ARM_64,
3636
environment: {
3737
JWT_SECRET: 'Abhi2199@321#',
38-
envName,
38+
ENV_NAME: envName,
3939
},
4040
logRetention: RetentionDays.ONE_DAY,
4141
bundling: {
@@ -58,7 +58,7 @@ export class AuthStack extends cdk.Stack {
5858
architecture: lambda.Architecture.ARM_64,
5959
environment: {
6060
JWT_SECRET: 'Abhi2199@321#',
61-
envName,
61+
ENV_NAME: envName,
6262
},
6363
logRetention: RetentionDays.ONE_DAY,
6464
bundling: {
@@ -81,7 +81,7 @@ export class AuthStack extends cdk.Stack {
8181
architecture: lambda.Architecture.ARM_64,
8282
environment: {
8383
JWT_SECRET: 'Abhi2199@321#',
84-
envName,
84+
ENV_NAME: envName,
8585
},
8686
logRetention: RetentionDays.ONE_DAY,
8787
bundling: {
@@ -123,7 +123,7 @@ export class AuthStack extends cdk.Stack {
123123
},
124124
environment: {
125125
JWT_SECRET: 'Abhi2199@321#',
126-
envName,
126+
ENV_NAME: envName,
127127
},
128128
memorySize: 512 //bcrypt comparison is expensive
129129
});
@@ -143,7 +143,7 @@ export class AuthStack extends cdk.Stack {
143143
architecture: lambda.Architecture.ARM_64,
144144
environment: {
145145
JWT_SECRET: 'Abhi2199@321#',
146-
envName,
146+
ENV_NAME: envName,
147147
},
148148
logRetention: RetentionDays.ONE_DAY,
149149
bundling: {

lib/order-stack.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ export class OrderStack extends cdk.Stack {
4848
functionName: getResourceName(envName, 'createOrder'),
4949
architecture: lambda.Architecture.ARM_64,
5050
logRetention: RetentionDays.ONE_DAY,
51+
environment: {
52+
ENV_NAME: envName,
53+
},
5154
bundling: {
5255
externalModules: ['aws-sdk']
5356
},
@@ -69,6 +72,9 @@ export class OrderStack extends cdk.Stack {
6972
functionName: getResourceName(envName, 'getOrder'),
7073
architecture: lambda.Architecture.ARM_64,
7174
logRetention: RetentionDays.ONE_DAY,
75+
environment: {
76+
ENV_NAME: envName,
77+
},
7278
bundling: {
7379
externalModules: ['aws-sdk']
7480
},
@@ -89,7 +95,9 @@ export class OrderStack extends cdk.Stack {
8995
handler: 'updateOrderHandler',
9096
functionName: getResourceName(envName, 'updateOrder'),
9197
architecture: lambda.Architecture.ARM_64,
92-
logRetention: RetentionDays.ONE_DAY,
98+
logRetention: RetentionDays.ONE_DAY, environment: {
99+
ENV_NAME: envName,
100+
},
93101
bundling: {
94102
externalModules: ['aws-sdk']
95103
},

lib/restaurant-stack.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ export class RestaurantStack extends cdk.Stack {
3939
functionName: getResourceName(envName, 'getMenu'),
4040
architecture: lambda.Architecture.ARM_64,
4141
logRetention: RetentionDays.ONE_DAY,
42+
environment: {
43+
ENV_NAME: envName,
44+
},
4245
bundling: {
4346
externalModules: ['aws-sdk']
4447
},
@@ -59,6 +62,9 @@ export class RestaurantStack extends cdk.Stack {
5962
functionName: getResourceName(envName, 'postMenu'),
6063
architecture: lambda.Architecture.ARM_64,
6164
logRetention: RetentionDays.ONE_DAY,
65+
environment: {
66+
ENV_NAME: envName,
67+
},
6268
bundling: {
6369
externalModules: ['aws-sdk']
6470
},
@@ -79,6 +85,9 @@ export class RestaurantStack extends cdk.Stack {
7985
functionName: getResourceName(envName, 'deleteMenuItem'),
8086
architecture: lambda.Architecture.ARM_64,
8187
logRetention: RetentionDays.ONE_DAY,
88+
environment: {
89+
ENV_NAME: envName,
90+
},
8291
bundling: {
8392
externalModules: ['aws-sdk']
8493
},
@@ -99,6 +108,9 @@ export class RestaurantStack extends cdk.Stack {
99108
functionName: getResourceName(envName, 'getRestaurantOrderDetails'),
100109
architecture: lambda.Architecture.ARM_64,
101110
logRetention: RetentionDays.ONE_DAY,
111+
environment: {
112+
ENV_NAME: envName,
113+
},
102114
bundling: {
103115
externalModules: ['aws-sdk']
104116
},

lib/s3-stack.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ export class S3Stack extends cdk.Stack {
5353
functionName: getResourceName(envName, 'getPreSignedS3URL'),
5454
architecture: lambda.Architecture.ARM_64,
5555
logRetention: RetentionDays.ONE_DAY,
56+
environment: {
57+
ENV_NAME: envName,
58+
},
5659
bundling: {
5760
externalModules: ['aws-sdk']
5861
},

src/lambdas/auth.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import bcrypt = require('bcryptjs');
44
import dynamoClient from '../utils/dynamoClient.js';
55
import jwt = require('jsonwebtoken');
66
import logger from '../utils/logger.js';
7+
import { getResourceName } from '../utils/getResourceName.js'
78

89
export const registerUserHandler = async (event: { [key: string]: any }) => {
910
// const { userId, password, name } = JSON.parse(event.body);
@@ -38,10 +39,11 @@ export const registerUserHandler = async (event: { [key: string]: any }) => {
3839
};
3940

4041
export const userLoginHandler = async (event: { [key: string]: any }) => {
42+
const envName = process.env.ENV_NAME!;
4143
logger.info('Authorizing user');
4244
const { userId, password } = JSON.parse(event.body);
4345
const getItemCommand = new GetItemCommand({
44-
TableName: 'users',
46+
TableName: getResourceName(envName, 'users'),
4547
Key: marshall({
4648
userId,
4749
}),
@@ -70,7 +72,7 @@ export const userLoginHandler = async (event: { [key: string]: any }) => {
7072
};
7173
}
7274
const putItemCommand = new PutItemCommand({
73-
TableName: 'users',
75+
TableName: getResourceName(envName, 'users'),
7476
Item: marshall({
7577
userId,
7678
}),
@@ -85,9 +87,10 @@ export const generateOTPHandler = async (event: { [key: string]: any }) => {
8587
const OTP = '123456'; //Math.floor(100000 + Math.random() * 900000).toString();
8688
const { userId } = JSON.parse(event.body);
8789
const expiration = Math.floor(Date.now() / 1000) + 5 * 60;
90+
const envName = process.env.ENV_NAME!;
8891

8992
const putItemCommand = new PutItemCommand({
90-
TableName: 'users',
93+
TableName: getResourceName(envName, 'users'),
9194
Item: marshall({
9295
userId,
9396
OTP,
@@ -160,8 +163,10 @@ export const userAuthorizerHandler = async (event: { [key: string]: any }) => {
160163

161164
export const restaurantLoginHandler = async (event: { [key: string]: any }) => {
162165
const { restaurantId, password, userId } = JSON.parse(event.body);
166+
const envName = process.env.ENV_NAME!;
167+
163168
const getItemCommand = new GetItemCommand({
164-
TableName: 'restaurants',
169+
TableName: getResourceName(envName, 'restaurants'),
165170
Key: marshall({ restaurantId }),
166171
});
167172

src/lambdas/orders.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import dynamoClient from '../utils/dynamoClient.js';
1515
import { marshall, unmarshall } from '@aws-sdk/util-dynamodb';
1616
import { customAlphabet } from 'nanoid';
1717
import { getRestaurantDetails } from './restaurant.js';
18+
import { getResourceName } from '../utils/getResourceName.js';
1819

1920
interface OrderItem {
2021
name: string;
@@ -113,8 +114,10 @@ export const postOrderHandler = async (event: { [key: string]: any }) => {
113114
isBilled: false,
114115
};
115116
console.log(order);
117+
const envName = process.env.ENV_NAME!;
118+
116119
const postOrder = new PutItemCommand({
117-
TableName: 'orders',
120+
TableName: getResourceName(envName, 'orders'),
118121
Item: marshall(order),
119122
});
120123
await dynamoClient.send(postOrder);
@@ -133,11 +136,12 @@ export const postOrderHandler = async (event: { [key: string]: any }) => {
133136

134137
export const getOrderHandler = async (event: { [key: string]: any }) => {
135138
const { restaurantId, resourceId } = event.queryStringParameters;
139+
const envName = process.env.ENV_NAME!;
136140

137141
try {
138142
const params: QueryCommandInput = {
139-
TableName: 'orders',
140-
IndexName: 'restaurantId-resourceId-index',
143+
TableName: getResourceName(envName, 'orders'),
144+
IndexName: getResourceName(envName, 'restaurantId-resourceId-index'),
141145
KeyConditionExpression: 'resourceId = :resourceId AND restaurantId = :restaurantId',
142146
FilterExpression: 'isBilled = :isBilled',
143147
ExpressionAttributeValues: marshall({
@@ -168,9 +172,10 @@ export const getOrderHandler = async (event: { [key: string]: any }) => {
168172
export const updateOrderHandler = async (event: { [key: string]: any }) => {
169173
const { itemId: updatedItemId, servedQuantity: updatedServedQuantity } = JSON.parse(event.body);
170174
const { restaurantId, orderId } = event.pathParameters;
175+
const envName = process.env.ENV_NAME!;
171176

172177
const getItemCommand = new GetItemCommand({
173-
TableName: 'orders',
178+
TableName: getResourceName(envName, 'orders'),
174179
Key: marshall({
175180
restaurantId,
176181
orderId,
@@ -208,7 +213,7 @@ export const updateOrderHandler = async (event: { [key: string]: any }) => {
208213

209214
// // Update the order in DynamoDB
210215
const updateParams: UpdateItemCommandInput = {
211-
TableName: 'orders',
216+
TableName: getResourceName(envName, 'orders'),
212217
Key: marshall({
213218
restaurantId: restaurantId,
214219
orderId: orderId,

src/lambdas/restaurant.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import dynamoClient from '../utils/dynamoClient.js';
1212
import logger from '../utils/logger.js';
1313
import { DeleteObjectsCommand } from '@aws-sdk/client-s3';
1414
import s3Client from '../utils/s3Client.js';
15+
import { getResourceName } from '../utils/getResourceName.js';
1516

1617
interface MenuItem {
1718
itemId: string;
@@ -79,8 +80,10 @@ export const postMenuHandler = async (event: { [key: string]: any }) => {
7980
export const getMenuHandler = async (event: { [key: string]: any }) => {
8081
const { restaurantId } = event.pathParameters;
8182
logger.info(`Fetching menu for ${restaurantId}`);
83+
const envName = process.env.ENV_NAME!;
84+
8285
const getRestaurantMenu = new QueryCommand({
83-
TableName: 'menu',
86+
TableName: getResourceName(envName, 'menu'),
8487
KeyConditionExpression: 'restaurantId = :restaurantId',
8588
ExpressionAttributeValues: {
8689
':restaurantId': { S: restaurantId },
@@ -172,8 +175,10 @@ export const getRestaurantOrderDetailsHandler = async (event: { [key: string]: a
172175
logger.info(`Fetching details for ${restaurantId}`);
173176
const today = new Date();
174177
today.setHours(0, 0, 0, 0);
178+
const envName = process.env.ENV_NAME!;
179+
175180
const getRestaurantOrders = new QueryCommand({
176-
TableName: 'orders',
181+
TableName: getResourceName(envName, 'orders'),
177182
KeyConditionExpression: 'restaurantId = :restaurantId',
178183
FilterExpression: 'isActive = :isActive',
179184
ExpressionAttributeValues: marshall({
@@ -189,8 +194,10 @@ export const getRestaurantOrderDetailsHandler = async (event: { [key: string]: a
189194
};
190195

191196
export const getRestaurantDetails = async (restaurantId: string) => {
197+
const envName = process.env.ENV_NAME!;
198+
192199
const getRestaurantDetails = new GetItemCommand({
193-
TableName: 'restaurants',
200+
TableName: getResourceName(envName, 'restaurants'),
194201
Key: marshall({ restaurantId }),
195202
ProjectionExpression: 'restaurantName, resourceName',
196203
});

src/utils/getResourceName.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export function getResourceName(envName: string, resourceName: string) {
2+
if (envName === 'prod') {
3+
return resourceName;
4+
}
5+
return `${envName}-${resourceName}`;
6+
}

0 commit comments

Comments
 (0)