4.1.3
This commit is contained in:
73
controllers/panel/moderation/overallStatsController.js
Normal file
73
controllers/panel/moderation/overallStatsController.js
Normal file
@@ -0,0 +1,73 @@
|
||||
const UserModel = require('../../../models/UserModel')
|
||||
const PostModel = require('../../../models/PostModel')
|
||||
const CommentModel = require('../../../models/CommentModel')
|
||||
const AdvertisingCommentModel = require('../../../models/AdvertisingCommentModel')
|
||||
const CourseCommentModel = require('../../../models/CourseComentModel')
|
||||
const AdvertisingModel = require('../../../models/AdvertisingModel')
|
||||
const ProjectModel = require('../../../models/ProjectModel')
|
||||
const CourseModel = require('../../../models/CourseModel')
|
||||
const AcademyContentModel = require('../../../models/AcademyContentModel')
|
||||
const ShopModel = require('../../../models/ShopModel')
|
||||
const ShopProductListingModel = require('../../../models/ShopProductListingModel')
|
||||
const TicketModel = require('../../../models/TicketModel')
|
||||
const StoryModel = require('../../../models/StoryModel')
|
||||
|
||||
// عین moderationStatsController ولی برخلاف اون (که فقط موارد در انتظار/تایید موقت رو
|
||||
// میشمره)، اینجا مجموع کلِ هر مدل از ابتدای راهاندازی سایته — برای بخش «آمار کلی»
|
||||
// بالای داشبورد
|
||||
const getOverallStats = async (req, res, next) => {
|
||||
try {
|
||||
const token = req.header('Authorization')?.split(' ')[1]
|
||||
if (!token) return res.status(401).send('Access Denied')
|
||||
|
||||
const [
|
||||
users,
|
||||
posts,
|
||||
comments,
|
||||
vitrineComments,
|
||||
academyComments,
|
||||
billboards,
|
||||
projects,
|
||||
courses,
|
||||
academyVideos,
|
||||
shops,
|
||||
shopProducts,
|
||||
tickets,
|
||||
stories,
|
||||
] = await Promise.all([
|
||||
UserModel.countDocuments({}),
|
||||
PostModel.countDocuments({}),
|
||||
CommentModel.countDocuments({}),
|
||||
AdvertisingCommentModel.countDocuments({}),
|
||||
CourseCommentModel.countDocuments({}),
|
||||
AdvertisingModel.countDocuments({}),
|
||||
ProjectModel.countDocuments({}),
|
||||
CourseModel.countDocuments({}),
|
||||
AcademyContentModel.countDocuments({}),
|
||||
ShopModel.countDocuments({}),
|
||||
ShopProductListingModel.countDocuments({}),
|
||||
TicketModel.countDocuments({}),
|
||||
StoryModel.countDocuments({}),
|
||||
])
|
||||
|
||||
res.status(200).json({
|
||||
users,
|
||||
posts,
|
||||
comments,
|
||||
vitrineComments,
|
||||
academyComments,
|
||||
billboards,
|
||||
projects,
|
||||
courses,
|
||||
academyVideos,
|
||||
shops,
|
||||
shopProducts,
|
||||
tickets,
|
||||
stories,
|
||||
})
|
||||
} catch (error) {
|
||||
next(error)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { getOverallStats }
|
||||
Reference in New Issue
Block a user