Skip to content
Snippets Groups Projects
Commit f7c3c401 authored by Rafael László's avatar Rafael László :speech_balloon:
Browse files

remove activity

parent b8b7aa0d
No related branches found
No related tags found
2 merge requests!20working endpoints and documentation,!4API Endpoints - benji
Pipeline #4662 passed
...@@ -5,7 +5,7 @@ const { Attendance } = require('../attendance/attendanceModel') ...@@ -5,7 +5,7 @@ const { Attendance } = require('../attendance/attendanceModel')
const { Comment } = require('../comment/commentModel') const { Comment } = require('../comment/commentModel')
const { omit, pick } = require('lodash') const { omit, pick } = require('lodash')
const defaultKeys = [ const pickedKeys = [
'_id', '_id',
'title', 'title',
'description', 'description',
...@@ -16,7 +16,7 @@ const defaultKeys = [ ...@@ -16,7 +16,7 @@ const defaultKeys = [
'comment', 'comment',
] ]
exports.default = crudControllers(Activity, defaultKeys) exports.default = crudControllers(Activity, pickedKeys)
exports.default.createOne = async (req, res) => { exports.default.createOne = async (req, res) => {
try { try {
...@@ -74,7 +74,7 @@ exports.default.createOne = async (req, res) => { ...@@ -74,7 +74,7 @@ exports.default.createOne = async (req, res) => {
res res
.status(200) .status(200)
.json({ .json({
data: pick(objActivity, defaultKeys), data: pick(objActivity, pickedKeys),
}) })
.end() .end()
} catch (err) { } catch (err) {
...@@ -102,14 +102,14 @@ exports.default.getOne = async (req, res) => { ...@@ -102,14 +102,14 @@ exports.default.getOne = async (req, res) => {
path: 'attendance', path: 'attendance',
select: '_id user state', select: '_id user state',
}) })
.select('-_id -__v') .select('-__v')
.lean() .lean()
.exec() .exec()
if (!activity) if (!activity)
return res.status(404).json({ messages: ['No such activity.'] }) return res.status(404).json({ messages: ['No such activity.'] })
return res.status(200).json({ data: pick(activity, defaultKeys) }) return res.status(200).json({ data: pick(activity, pickedKeys) })
} catch (err) { } catch (err) {
console.error(err) console.error(err)
return res.status(500).json({ message: err.message }) return res.status(500).json({ message: err.message })
...@@ -127,7 +127,7 @@ exports.default.getMany = async (req, res) => { ...@@ -127,7 +127,7 @@ exports.default.getMany = async (req, res) => {
path: 'attendance', path: 'attendance',
select: '_id user state', select: '_id user state',
}) })
.select('-__v -_id') .select('-__v')
.lean() .lean()
.exec() .exec()
...@@ -136,7 +136,7 @@ exports.default.getMany = async (req, res) => { ...@@ -136,7 +136,7 @@ exports.default.getMany = async (req, res) => {
res.status(200).json({ res.status(200).json({
data: activity.map(function pickKeys(doc) { data: activity.map(function pickKeys(doc) {
return pick(doc, defaultKeys) return pick(doc, pickedKeys)
}), }),
}) })
} catch (err) { } catch (err) {
...@@ -145,34 +145,42 @@ exports.default.getMany = async (req, res) => { ...@@ -145,34 +145,42 @@ exports.default.getMany = async (req, res) => {
} }
} }
//TODO req.user.role === 'mentor'
exports.default.removeOne = async (req, res) => { exports.default.removeOne = async (req, res) => {
//validate
try { try {
const activity = await Activity.findByIdAndDelete({ const activity = await Activity.findByIdAndDelete({
_id: req.params.id, _id: req.params.id,
}) })
.populate({ .populate({
path: 'comment', path: 'comment',
populate: { path: '_creator', select: '-_id fullName nickName' }, select: '_id creator text createdAt',
}) })
.select('-__v') .select('-__v')
.lean() .lean()
.exec() .exec()
if (!activity) { if (!activity) {
res.status(404).json({ message: 'Activity not found!' }).end() return res.status(404).json({ message: 'Activity not found!' }).end()
} }
await Attendance.deleteMany({
_id: activity.attendance.map(function getAttendanceIds(element) {
return element._id
}),
})
await Comment.deleteMany({ await Comment.deleteMany({
_id: activity.comment.map(function getCommentIds(element) { _id: activity.comment.map(function getCommentIds(element) {
return element._id return element._id
}), }),
}) })
res.status(200).json({ data: activity }).end() return res
.status(200)
.json({ data: pick(activity, pickedKeys) })
.end()
} catch (err) { } catch (err) {
res.status(500).json({ message: err.message }).end() console.error(err)
return res.status(500).json({ message: err.message }).end()
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment