diff --git a/apiFunctions.js b/apiFunctions.js index e69de29..3b5a636 100644 --- a/apiFunctions.js +++ b/apiFunctions.js @@ -0,0 +1,13 @@ +const write = require('./jsonRW.js'); + +module.exports = (app)=> { + app.post('/api/v1/members/register', (req, res) => { + let body = req.body; + if (body.userName==undefined||body.email==undefined||body.password==undefined){ + res.status(400).send("Invalid Post request") + return; + } + write.registerMember(body.userName,body.email,body.password); + res.status(200).send("User Registered."); + }); + } diff --git a/index.js b/index.js index a556e2e..95cdc12 100644 --- a/index.js +++ b/index.js @@ -1,10 +1,16 @@ -/** - * External libraries - */ -const - express = require('express'), - http = require('http'), - app = express(), - bodyParser = require('body-parser'), - // When running the server can pass in the PORT as an argument (environment variable) - port = process.env.PORT || 3000; +const express = require('express'); +const bodyParser = require('body-parser'); + +const routes = require('./apiFunctions.js'); +const port = process.env.PORT || 3000; //env port for heroku and similar services. + +let app = express(); + +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded({extended:false})); + +routes(app); + +app.listen(port, () => { + console.log(`Server is open on port ${port}`); +}); diff --git a/jsonRW.js b/jsonRW.js index e69de29..71c6701 100644 --- a/jsonRW.js +++ b/jsonRW.js @@ -0,0 +1,27 @@ +const fs = require('fs'); + +let registerMember = (userName,email,password)=>{ + let members = readMembers(); + let memberDetails ={ + id : (members.length)+1, + userName, + email, + password + } + members.push(memberDetails); + fs.writeFileSync('./config/members.json', JSON.stringify(members)); +} + +let readMembers = () => { + try { + let memberString = fs.readFileSync('./config/members.json'); + return JSON.parse(memberString); + } catch (e) { + return []; + } +}; + +module.exports ={ + registerMember, + readMembers +}