Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require('express')
- const mongoose = require('mongoose')
- const Action = require('../models/action')
- const Session = require('../models/session')
- const router = express.Router()
- router.get('/', (req, res, next) =>
- {
- Action.find()
- .select('-__v')
- .exec()
- .then(docs =>
- {
- const response =
- {
- count: docs.length,
- actions: docs.map(action =>
- {
- return {
- _id: action._id,
- visitorId: action.visitorId,
- sessionId: action.sessionId,
- actionTime: action.actionTime,
- actionType: action.actionType,
- request:
- {
- type: "GET",
- url: req.protocol + '://' + req.get('host') + '/actions/' + action._id,
- }
- }
- })
- }
- res.status(200).json(response)
- })
- .catch(e =>
- {
- res.status(500).json({ error: e })
- })
- })
- router.get('/:actionId', (req, res, next) =>
- {
- const id = req.params.actionId
- console.log(id)
- Action.findById(id)
- .select('-__v')
- .exec()
- .then(doc =>
- {
- console.log(doc)
- if(doc)
- {
- res.status(200).json(
- {
- action: doc,
- request:
- {
- type: 'GET',
- url: req.protocol + '://' + req.get('host') + '/actions/'
- }
- })
- }
- else
- {
- res.status(404).json({ message: 'No valid entry found for provided ID' })
- }
- }).catch(e =>
- {
- console.log(e)
- res.status(500).json({ error: e })
- })
- })
- router.post('/', (req, res, next) =>
- {
- const action = new Action(
- {
- _id: new mongoose.Types.ObjectId,
- visitorId: req.body.visitorId,
- sessionId: req.body.sessionId,
- actionTime: req.body.actionTime,
- actionType: req.body.actionType
- })
- action.save().then(result =>
- {
- res.status(201).json(
- {
- message: "Action created",
- createdAction:
- {
- _id: result._id,
- visitorId: result.visitorId,
- sessionId: result.sessionId,
- actionTime: result.actionTime,
- actionType: result.actionType,
- request:
- {
- type: 'POST',
- url: req.protocol + '://' + req.get('host') + '/actions/' + result._id
- }
- }
- })
- })
- .catch(e =>
- {
- console.log(e)
- res.status(500).json({ error: e })
- })
- })
- router.patch('/:actionId', (req, res, next) =>
- {
- const id = req.params.actionId
- const toUpdate = {}
- req.body.map((doc) => toUpdate[doc.propertyName] = doc.value)
- Action.update({ _id: id }, { $set: toUpdate }).exec().then((result) =>
- {
- res.status(200).json(
- {
- message: 'Action updated.',
- request:
- {
- type: 'GET',
- url: req.protocol + '://' + req.get('host') + req.originalUrl
- }
- })
- }).catch(e =>
- {
- res.status(500).json({ error: e })
- })
- })
- router.delete("/:actionId", (req, res, next) =>
- {
- Action.remove({ _id: req.params.actionId })
- .exec()
- .then(() =>
- {
- res.status(200).json(
- {
- message: "Action deleted"
- })
- })
- .catch(e =>
- {
- res.status(500).json({ error: e })
- })
- })
- router.get('/visitor/:visitorId', (req, res, next) =>
- {
- const id = req.params.visitorId
- Action.find({visitorId: id})
- .select('-__v')
- .populate('sessionId')
- .exec()
- .then(doc =>
- {
- if(doc.length<=0)
- {
- res.status(404).json({ message: 'No valid entry found for provided ID' })
- }
- else
- {
- res.status(200).json(
- {
- length: doc.length,
- actions: doc,
- request:
- {
- type: 'GET',
- url: req.protocol + '://' + req.get('host') + '/actions/visitor/' + id
- }
- })
- }
- }).catch(e =>
- {
- res.status(500).json({ error: e })
- })
- })
- module.exports = router
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement