From b6dcc613addaa872305a97e5b838533b757dc19b Mon Sep 17 00:00:00 2001 From: Jack Psaras Date: Thu, 19 Oct 2023 13:45:58 -0400 Subject: [PATCH] created new working api and lambda func --- lambdafuncs/createcourse.js | 23 ----------- lambdafuncs/lambda_func_createcourse.py | 54 +++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 23 deletions(-) delete mode 100644 lambdafuncs/createcourse.js create mode 100644 lambdafuncs/lambda_func_createcourse.py diff --git a/lambdafuncs/createcourse.js b/lambdafuncs/createcourse.js deleted file mode 100644 index 9db87e5..0000000 --- a/lambdafuncs/createcourse.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -console.log('Loading function'); - -export const handler = function(event, context, callback) { - // Parse the input for the class, days, professor, and major property values - let className = event.class === undefined ? 'Unknown Class' : event.class; - let classDays = event.days === undefined ? 'Unknown Days' : event.days; - let professor = event.professor === undefined ? 'Unknown Professor' : event.professor; - let major = event.major === undefined ? 'Unknown Major' : event.major; - - // Construct the "Class Added" message - let classAddedMessage = `Class Added: ${className}, taught by Professor ${professor}.`; - classAddedMessage += ` This class is scheduled for ${classDays} and the major is ${major}.`; - - // Log the message to CloudWatch - console.log(classAddedMessage); - - // Return the "Class Added" message to the caller as a JSON object - callback(null, { - "message": classAddedMessage - }); -}; \ No newline at end of file diff --git a/lambdafuncs/lambda_func_createcourse.py b/lambdafuncs/lambda_func_createcourse.py new file mode 100644 index 0000000..3e21293 --- /dev/null +++ b/lambdafuncs/lambda_func_createcourse.py @@ -0,0 +1,54 @@ +import json +import boto3 + +# Initialize the DynamoDB client +dynamodb = boto3.client('dynamodb') + +# DynamoDB table name +table_name = 'course_createDB' + +def lambda_handler(event, context): + # Extract the JSON data from the POST request + try: + course_data = event + except Exception as e: + return { + 'statusCode': 400, + 'body': json.dumps({'error': 'Invalid JSON format in the request body'}) + } + + # Check if the required fields are present in the request + if 'name' not in course_data or 'professor' not in course_data or 'days' not in course_data or 'time' not in course_data or 'seats' not in course_data or 'location' not in course_data: + return { + 'statusCode': 401, + 'body': json.dumps({'error': 'Required fields are missing in the request body'}) + } + + # Create an item for the DynamoDB table + item = { + 'name': {'S': course_data['name']}, + 'professor': {'S': course_data['professor']}, + 'days': {'S': course_data['days']}, + 'time': {'S': course_data['time']}, + 'seats': {'S': course_data['seats']}, + 'location': {'S': course_data['location']} + } + + for key, value in course_data.items(): + item[key] = {'S' if isinstance(value, str) else 'N': str(value)} + + # Put the item into the DynamoDB table + try: + dynamodb.put_item( + TableName=table_name, + Item=item + ) + return { + 'statusCode': 200, + 'body': json.dumps({'message': 'Course added successfully'}) + } + except Exception as e: + return { + 'statusCode': 500, + 'body': json.dumps({'error': str(e)}) + }