Files
eg-api/handlers/courses/index.js

39 lines
1.0 KiB
JavaScript

const {createResponse} = require('../../helpers');
const {parseAndValidateBody} = require('../../validators');
const courseSchema = require('./schema');
const {COURSES_TABLE} = require('../../constants');
const db = require('../../services/db');
const get = async (event, context, callback) => {
const courses = await db.scan(COURSES_TABLE);
return createResponse(200, {
courses: courses
});
};
const post = async (event, context, callback) => {
const course = await parseAndValidateBody(courseSchema, event.body);
const createCourseResult = await db.create(COURSES_TABLE, course);
return createResponse(200, {
course: createCourseResult
});
};
module.exports.default = async (event, context, callback) => {
try {
if (event.httpMethod === "GET") {
return get(event, context, callback);
}
if (event.httpMethod === "POST") {
return post(event, context, callback);
}
} catch (err) {
const statusCode = (err && err.statusCode) || 500;
return createResponse(statusCode, err.message || err);
}
};