const db = require(".."); const Member = db.Member; const Op = db.Sequelize.Op; // Create and Save a new Member exports.create = (req, res) => { // Validate if (!req.body) { res.status(400).send({ message: "Body content can not be empty!" }); return; } // Create const members = [] if (Array.isArray(req.body)) { members.push(...req.body) } else { members.push(req.body) } // Save const promises = members.map(member => { return Member.create(member) .then(memberObj => { if (req.body.rankId) { db.Rank.findByPk(req.body.rankId) .then(rank => { memberObj.setRank(rank) }) } if (req.body.statusId) { db.MemberStatus.findByPk(req.body.statusId) .then(status => { memberObj.setStatus(status) }) } return memberObj }) }); // Create const successes = [] const failures = [] Promise.allSettled(promises) .then(data => { if (data.every(result => result.status === 'fulfilled')) { res.status(201).send({ message: "All members were created successfully.", successes: data.map(result => result.value), failures: [], }) return; } data.forEach(result => { if (result.status === 'fulfilled') { successes.push(result.value) } else { failures.push(result.reason.errors) } }) if (successes.length === 0) { res.status(500).send({ message: "Failed to create any Members.", failures: failures, successes: successes, }); return; } res.status(207).send({ message: "Some Members were created successfully.", successes: successes, failures: failures, }) }) .catch(err => { res.status(500).send({ message: err.message || "Some error occurred while creating the Member.", }); }); }; // Retrieve all Members from the database. exports.findAll = (req, res) => { Member.findAll() .then(data => { res.send(data); }) .catch(err => { res.status(500).send({ message: err.message || "Some error occurred while retrieving members." }); }); };