|
|
@@ -28,10 +28,41 @@ exports.create = handleError(async (req, res) => {
|
|
|
})
|
|
|
|
|
|
exports.getPengunjung = handleError(async (req, res) => {
|
|
|
- const pengunjung = await pengunjungModel.find()
|
|
|
+ const { tahun } = req.query
|
|
|
+
|
|
|
+ let date = {}
|
|
|
+ if (tahun) {
|
|
|
+ date = {
|
|
|
+ $expr: {
|
|
|
+ $eq: [
|
|
|
+ { $year: '$createdAt' },
|
|
|
+ parseInt(tahun) || new Date().getFullYear(),
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const pengunjung = await pengunjungModel.aggregate([
|
|
|
+ { $match: date },
|
|
|
+ {
|
|
|
+ $group: {
|
|
|
+ _id: {
|
|
|
+ bulan: {
|
|
|
+ $month: '$createdAt',
|
|
|
+ },
|
|
|
+ tahun: {
|
|
|
+ $year: '$createdAt',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ jumlah_pengunjung: {
|
|
|
+ $sum: 1,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ])
|
|
|
|
|
|
return response.success(res, {
|
|
|
- message: 'data pengunjung berhasil dibuat',
|
|
|
+ message: 'data pengunjung',
|
|
|
data: pengunjung,
|
|
|
})
|
|
|
})
|