33 lines
1.1 KiB
JavaScript
33 lines
1.1 KiB
JavaScript
const admin = require("firebase-admin");
|
|
const Logger = require("../Logger");
|
|
const mLogger = new Logger("admin", "sendMessage");
|
|
|
|
module.exports = async (req, res) => {
|
|
mLogger.start();
|
|
const { selectedParties, newMessage } = JSON.parse(req.body);
|
|
if (selectedParties && newMessage && selectedParties.length > 0) {
|
|
if (newMessage.text && newMessage.time && newMessage.uid) {
|
|
newMessage.time = new Date();
|
|
await selectedParties.map(async (partyId) => {
|
|
await admin
|
|
.firestore()
|
|
.collection("rooms")
|
|
.doc(partyId)
|
|
.collection("messages")
|
|
.add(newMessage)
|
|
.catch((err) => {
|
|
mLogger.error("FAILED TO SEND MESSAGE", { partyId, err });
|
|
});
|
|
});
|
|
mLogger.success("SENT MESSAGES", { newMessage, selectedParties });
|
|
res.status(200).send({ message: "SENT MESSAGES" });
|
|
} else {
|
|
mLogger.error("MESSAGE NOT VALID");
|
|
res.status(500).send({ message: "Message is missing fields" });
|
|
}
|
|
} else {
|
|
mLogger.error("VALUES NOT RECEIVED");
|
|
res.status(500).send({ message: "Values not received" });
|
|
}
|
|
};
|