v1.6.2/admin dashboard
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
/* eslint-disable promise/no-nesting */
|
||||
const admin = require('firebase-admin');
|
||||
const Logger = require('../Logger');
|
||||
const mLogger = new Logger('admin', 'partyDashboard');
|
||||
|
||||
module.exports = async (req, res) => {
|
||||
mLogger.start();
|
||||
|
||||
var partyData = await admin
|
||||
.firestore()
|
||||
.collection('rooms')
|
||||
.get()
|
||||
.then((roomSnapshot) => {
|
||||
const docData = [];
|
||||
roomSnapshot.docs.forEach((doc) => {
|
||||
docData.push({
|
||||
id: doc.id,
|
||||
createTime: doc.createTime.toDate().toUTCString(),
|
||||
updateTime: doc.updateTime.toDate().toUTCString(),
|
||||
source: doc.data().player.source,
|
||||
onCall: doc.data().hasOwnProperty('conference'),
|
||||
showName: doc.data().player.showName || '',
|
||||
time: doc.data().player.time || 0,
|
||||
status: doc.data().player.status || '',
|
||||
});
|
||||
});
|
||||
return docData;
|
||||
})
|
||||
.catch((err) => {
|
||||
mLogger.error('FAILED TO RESOLVE PARTIES', err);
|
||||
res.status(500).send({ message: 'Unable to get all parties', error: err });
|
||||
});
|
||||
|
||||
await partyData.forEach((party) => {
|
||||
const messageCount = admin
|
||||
.firestore()
|
||||
.collection('rooms')
|
||||
.doc(party.id)
|
||||
.collection('messages')
|
||||
.get()
|
||||
.then((snap) => snap.size);
|
||||
const userCount = admin
|
||||
.firestore()
|
||||
.collection('rooms')
|
||||
.doc(party.id)
|
||||
.collection('users')
|
||||
.get()
|
||||
.then((snap) => snap.size);
|
||||
party.messageCount = messageCount || 0;
|
||||
party.userCount = userCount || 0;
|
||||
});
|
||||
|
||||
mLogger.success('GOT ALL PARTIES', { parties: partyData.length });
|
||||
return res.status(200).send({ partyData });
|
||||
};
|
||||
Reference in New Issue
Block a user