Skip to content

Commit

Permalink
JSAEM2-33 fixed: request changes for family backend (#32)
Browse files Browse the repository at this point in the history
* JSAEM2-33 fixed: request changes for family backend

* JSAEM2-33 fixed: correct message
  • Loading branch information
MichaelCTH authored and ikarasz committed Jan 9, 2020
1 parent 78cedad commit e5381c4
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 32 deletions.
48 changes: 21 additions & 27 deletions routes/index.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,14 @@
const express = require('express');
const jwt = require('jsonwebtoken');
const mongoose = require('mongoose');
const nodeMailerReal = require('nodemailer');
const nodeMailerMock = require('nodemailer-mock');
const { verifyToken } = require('../Utils/Auth');
const Families = require('../Models/Families');
const Users = require('../Models/Users');
const Transactions = require('../Models/Transaction');
const mailer = require('../Utils/Mailer');

const router = express.Router();

let nodeMailer = nodeMailerReal;
if (process.env.MODE && process.env.MODE === 'TEST') {
nodeMailer = nodeMailerMock;
}

router.get('/heartbeat', (req, res) => {
if (mongoose.connection.readyState === 1) {
return res.sendStatus(200);
Expand Down Expand Up @@ -76,25 +70,31 @@ router.post('/family', verifyToken, async (req, res) => {

const { members } = req.body;
if (!members) {
return res.sendStatus(400);
return res.status(400).json({
code: 400,
message: 'Please provide a valid list of members',
});
}

if (members.length === 0) {
return res.status(400).json({ code: 400, message: 'The member list cannot be empty' });
}

const memberList = members.split(',').map((id) => {
const memberList = members.map((id) => {
try {
return mongoose.Types.ObjectId(id);
} catch (err) {
return null;
}
}).filter((i) => i);

if (memberList.length === 0) {
return res.sendStatus(400);
}

const filteredMembers = await Users.find({ _id: { $in: memberList } });

if (filteredMembers.length === 0) {
return res.sendStatus(400);
return res.status(400).json({
code: 400,
message: 'The member list does not contain any valid users',
});
}

const newFamily = new Families({
Expand All @@ -104,25 +104,19 @@ router.post('/family', verifyToken, async (req, res) => {

newFamily.save((err) => {
if (err) {
return res.sendStatus(500);
return res.status(500).json({
code: 500,
message: 'Unexpected error occurred, please try it later',
});
}

const mailer = nodeMailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASS,
},
});

mailer.sendMail({
to: filteredMembers.map((user) => user.email),
subject: 'New Family Group From Money Honey',
body: '',
}, () => res.sendStatus(200));
return null;
}, () => {});

return res.sendStatus(200);
});
return null;
});
Expand Down
10 changes: 5 additions & 5 deletions routes/route.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ describe('Users Route', () => {
const res = await request(app)
.post('/family')
.set('Authorization', token)
.send({ members: '' });
.send({ members: [] });
expect(res.statusCode).toEqual(400);
});

Expand All @@ -247,7 +247,7 @@ describe('Users Route', () => {
const res = await request(app)
.post('/family')
.set('Authorization', token)
.send({ members: '123,123' });
.send({ members: ['123', '123'] });
expect(res.statusCode).toEqual(400);
});

Expand All @@ -256,7 +256,7 @@ describe('Users Route', () => {
const res = await request(app)
.post('/family')
.set('Authorization', token)
.send({ members: '507f1f77bcf86cd799439011,507f1f77bcf86cd799439011' });
.send({ members: ['507f1f77bcf86cd799439011', '507f1f77bcf86cd799439011'] });
expect(res.statusCode).toEqual(400);
});

Expand All @@ -267,7 +267,7 @@ describe('Users Route', () => {
const res = await request(app)
.post('/family')
.set('Authorization', token)
.send({ members: mikeID });
.send({ members: [mikeID] });
expect(res.statusCode).toEqual(500);
await testDBInit();
}, 500);
Expand All @@ -278,7 +278,7 @@ describe('Users Route', () => {
const res = await request(app)
.post('/family')
.set('Authorization', token)
.send({ members: mikeID });
.send({ members: [mikeID] });
expect(res.statusCode).toEqual(200);
});

Expand Down

0 comments on commit e5381c4

Please sign in to comment.