Browse Source

add pengunjung

yazid138 3 years ago
parent
commit
2f1960f366
5 changed files with 73 additions and 0 deletions
  1. 37 0
      controller/pengunjung.controller.js
  2. 23 0
      model/pengunjung.model.js
  3. 1 0
      routes/v1/index.js
  4. 8 0
      routes/v1/pengunjung.routes.js
  5. 4 0
      tes.js

+ 37 - 0
controller/pengunjung.controller.js

@@ -0,0 +1,37 @@
+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 pengunjung = await pengunjungModel.find()
+
+  return response.success(res, {
+    message: 'data pengunjung berhasil dibuat',
+    data: pengunjung,
+  })
+})

+ 23 - 0
model/pengunjung.model.js

@@ -0,0 +1,23 @@
+const mongoose = require('mongoose')
+const user = require('./user.model')
+const { Schema, Types } = mongoose
+
+module.exports = mongoose.model(
+  'Pengunjung',
+  new Schema(
+    {
+      os: { type: String },
+      ipv4: { type: String },
+      location: {
+        country: { type: String },
+        region: { type: String },
+        city: { type: String },
+        lat: { type: Number },
+        lon: { type: Number },
+        timezone: { type: String },
+      },
+    },
+    { timestamps: true }
+  ),
+  'pengunjung'
+)

+ 1 - 0
routes/v1/index.js

@@ -22,5 +22,6 @@ router.use('/lembaga', auth, roleId([2020, 2023]), require('./lembaga.routes'))
 router.use('/graph', require('./graph.routes'))
 router.use('/log', require('./log.routes'))
 router.use('/auto', verify, require('./auto.routes'))
+router.use('/pengunjung', require('./pengunjung.routes'))
 
 module.exports = router

+ 8 - 0
routes/v1/pengunjung.routes.js

@@ -0,0 +1,8 @@
+const router = require('express').Router()
+const pengunjung = require('../../controller/pengunjung.controller')
+const auth = require('../../middleware/verifyToken')
+
+router.post('/create', pengunjung.create)
+router.get('/', auth, pengunjung.getPengunjung)
+
+module.exports = router

+ 4 - 0
tes.js

@@ -0,0 +1,4 @@
+const ip = require('ip')
+
+console.log(ip.address())
+console.log(process.platform)