| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | 
							- const pengunjungModel = require('../model/pengunjung.model')
 
- const handleError = require('../utils/handleError')
 
- const response = require('../utils/responseHandler')
 
- const { validate } = require('../utils/validation')
 
- exports.create = handleError(async (req, res) => {
 
-   const { os, ipv4, location } = req.body
 
-   const isValid = validate(res, req.body, {
 
-     os: 'string',
 
-     ipv4: 'string',
 
-     location: {
 
-       $$type: 'object',
 
-       country: 'string',
 
-       region: 'string',
 
-       city: 'string',
 
-       lat: 'number',
 
-       lon: 'number',
 
-       timezone: 'string',
 
-     },
 
-   })
 
-   if (!isValid) return
 
-   await pengunjungModel.create({ os, ipv4, location })
 
-   return response.success(res, {
 
-     message: 'data pengunjung berhasil dibuat',
 
-   })
 
- })
 
- exports.getPengunjung = handleError(async (req, res) => {
 
-   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',
 
-     data: pengunjung,
 
-   })
 
- })
 
 
  |