v1.4.3/fix restore admin on join
This commit is contained in:
@@ -23,6 +23,7 @@ module.exports = async (req, res) => {
|
|||||||
player: bodydata.player,
|
player: bodydata.player,
|
||||||
createdAt: new Date(),
|
createdAt: new Date(),
|
||||||
updatedAt: new Date(),
|
updatedAt: new Date(),
|
||||||
|
adminUid: bodydata.uid,
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
res.status(500).send({ message: 'Unable to start party.' });
|
res.status(500).send({ message: 'Unable to start party.' });
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
const admin = require('firebase-admin');
|
const admin = require('firebase-admin');
|
||||||
|
const { firestore } = require('firebase-admin');
|
||||||
|
|
||||||
module.exports = async (req, res) => {
|
module.exports = async (req, res) => {
|
||||||
const bodydata = JSON.parse(req.body);
|
const bodydata = JSON.parse(req.body);
|
||||||
console.log('Requested Join - UID - ', bodydata.uid, '\n\tRoom - ', bodydata.partyName);
|
console.log('Requested Join - UID - ', bodydata.uid, '\n\tRoom - ', bodydata.partyName);
|
||||||
// GET ROOM EXISTS, ROOM SOURCE, & ROOM PIN
|
// GET ROOM EXISTS, ROOM SOURCE, & ROOM PIN
|
||||||
const [exists, roomSource, roomPin] = await admin
|
const [exists, roomSource, roomPin, adminUid] = await admin
|
||||||
.firestore()
|
.firestore()
|
||||||
.collection('rooms')
|
.collection('rooms')
|
||||||
.doc(bodydata.partyName)
|
.doc(bodydata.partyName)
|
||||||
@@ -13,6 +14,7 @@ module.exports = async (req, res) => {
|
|||||||
roomSnap.exists,
|
roomSnap.exists,
|
||||||
roomSnap.exists ? roomSnap.data().player.source : '',
|
roomSnap.exists ? roomSnap.data().player.source : '',
|
||||||
roomSnap.exists ? roomSnap.data().pin : '',
|
roomSnap.exists ? roomSnap.data().pin : '',
|
||||||
|
roomSnap.exists ? roomSnap.data().adminUid : '',
|
||||||
])
|
])
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.error(
|
console.error(
|
||||||
@@ -22,6 +24,18 @@ module.exports = async (req, res) => {
|
|||||||
});
|
});
|
||||||
if (exists && roomPin !== bodydata.partyPin)
|
if (exists && roomPin !== bodydata.partyPin)
|
||||||
return res.status(401).send({ message: 'Incorrect party pin' });
|
return res.status(401).send({ message: 'Incorrect party pin' });
|
||||||
|
if (adminUid === bodydata.uid) {
|
||||||
|
await admin
|
||||||
|
.firestore()
|
||||||
|
.collection('rooms')
|
||||||
|
.doc(bodydata.partyName)
|
||||||
|
.collection('users')
|
||||||
|
.doc(bodydata.uid)
|
||||||
|
.set({
|
||||||
|
admin: true,
|
||||||
|
name: bodydata.userName,
|
||||||
|
});
|
||||||
|
}
|
||||||
// GET IF USER EXISTS AND IS ADMIN
|
// GET IF USER EXISTS AND IS ADMIN
|
||||||
const [userExists, userAdmin, userName] = await admin
|
const [userExists, userAdmin, userName] = await admin
|
||||||
.firestore()
|
.firestore()
|
||||||
|
|||||||
Reference in New Issue
Block a user