refactor to include both get and post in one function

This commit is contained in:
Ben Ramey
2018-09-20 06:59:22 -05:00
parent 4e114f8de4
commit ac254986b1
4 changed files with 40 additions and 37 deletions

View File

@@ -1,16 +0,0 @@
const {createResponse} = require('../../helpers');
const db = require('../../services/db');
const {COURSES_TABLE} = require('../../constants');
module.exports.default = async () => {
try {
const courses = await db.scan(COURSES_TABLE);
return createResponse(200, {
courses: courses
})
} catch (err) {
const statusCode = (err && err.statusCode) || 500;
return createResponse(statusCode, err.message || err);
}
};

38
handlers/courses/index.js Normal file
View File

@@ -0,0 +1,38 @@
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);
}
};

View File

@@ -1,16 +0,0 @@
const {createResponse} = require('../../helpers');
const {parseAndValidateBody} = require('../../validators');
const courseSchema = require('./schema');
const {COURSES_TABLE} = require('../../constants');
const db = require('../../services/db');
module.exports.default = async (event, context, callback) => {
try {
const course = await parseAndValidateBody(courseSchema, event.body);
const createCourseResult = await db.create(COURSES_TABLE, course);
return createResponse(200, {course: createCourseResult});
} catch (err) {
const statusCode = (err && err.statusCode) || 500;
return createResponse(statusCode, err.message || err);
}
};

View File

@@ -66,16 +66,13 @@ provider:
# - exclude-me-dir/**
functions:
courses-get:
handler: handlers/courses/get.default
courses:
handler: handlers/courses.default
events:
- http:
path: courses
method: get
cors: true
courses-post:
handler: handlers/courses/post.default
events:
- http:
path: courses
method: post