refactor to include both get and post in one function
This commit is contained in:
@@ -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
38
handlers/courses/index.js
Normal 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);
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -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);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -66,16 +66,13 @@ provider:
|
|||||||
# - exclude-me-dir/**
|
# - exclude-me-dir/**
|
||||||
|
|
||||||
functions:
|
functions:
|
||||||
courses-get:
|
courses:
|
||||||
handler: handlers/courses/get.default
|
handler: handlers/courses.default
|
||||||
events:
|
events:
|
||||||
- http:
|
- http:
|
||||||
path: courses
|
path: courses
|
||||||
method: get
|
method: get
|
||||||
cors: true
|
cors: true
|
||||||
courses-post:
|
|
||||||
handler: handlers/courses/post.default
|
|
||||||
events:
|
|
||||||
- http:
|
- http:
|
||||||
path: courses
|
path: courses
|
||||||
method: post
|
method: post
|
||||||
|
|||||||
Reference in New Issue
Block a user