const db = require(".."); const Rank = db.Rank; const Op = db.Sequelize.Op; // Create and Save a new Rank exports.create = (req, res) => { // Validate if (!req.body) { res.status(400).send({ message: "Body content can not be empty!" }); return; } const ranks = [] if (Array.isArray(req.body)) { ranks.push(...req.body) } else { ranks.push(req.body) } // Save const promises = ranks.map(rank => { return Rank.create(rank) }); // Create const successes = [] const failures = [] Promise.allSettled(promises) .then(data => { if (data.every(result => result.status === 'fulfilled')) { res.status(201).send({ message: "All ranks 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 Ranks.", failures: failures, successes: successes, }); return; } res.status(207).send({ message: "Some Ranks were created successfully.", successes: successes, failures: failures, }) }) .catch(err => { res.status(500).send({ message: err.message || "Some error occurred while creating the Rank.", }); }); };