diff --git a/scripts/names.js b/scripts/names.js new file mode 100644 index 0000000..d2ef25a --- /dev/null +++ b/scripts/names.js @@ -0,0 +1,41 @@ +let express = require('express'); require('dotenv').config(); let app = express(); +const bodyParser = require(`body-parser`); + +class ServerForNames { + #paths = { + "API": { + "name": "/name" + } + } + + /* Echo. + + PARAMETERS (object): The name parameters. + returns: (object) the formatted repeat response + */ + parse(PARAMETERS) { + let RESPONSE = {"name": [PARAMETERS["first"], PARAMETERS["last"]].join(` `)}; + return (RESPONSE); + } + + /* Create the response. + + REQUEST (object): The request object. + RESPONSE (object): The response object. + */ + respond(REQUEST, RESPONSE) { + RESPONSE.json(this.parse(REQUEST.query)); + } + + constructor() { + app.use(bodyParser.urlencoded({extended: false})); + + [`get`, `post`].forEach((METHOD) => { + app.route(this.#paths[`API`][`name`])[METHOD]((REQUEST, RESPONSE, next) => {this.respond(REQUEST, RESPONSE);}); + }); + } +} + +new ServerForNames(); + +module.exports = app; diff --git a/server.js b/server.js index 33c1f72..ff51ffb 100644 --- a/server.js +++ b/server.js @@ -4,7 +4,7 @@ * ***************************************************/ const bGround = require('fcc-express-bground'); -const myApp = require('./scripts/time_server'); +const myApp = require('./scripts/names'); const express = require('express'); const app = express();