diff --git a/src/resources/activity/activityControllers.js b/src/resources/activity/activityControllers.js index d92b8dfd5ee1f693d348fc62cd6c235ed82b9e1a..ba51d5d29c5c1b71e1ec837c24f1e5b933cef9a4 100644 --- a/src/resources/activity/activityControllers.js +++ b/src/resources/activity/activityControllers.js @@ -5,13 +5,18 @@ const { Attendance } = require('../attendance/attendanceModel') const { Comment } = require('../comment/commentModel') const { omit, pick } = require('lodash') -exports.default = crudControllers(Activity, [ +const defaultKeys = [ '_id', 'title', 'description', 'date', 'type', -]) + 'createdAt', + 'attendance', + 'comment', +] + +exports.default = crudControllers(Activity, defaultKeys) exports.default.createOne = async (req, res) => { try { @@ -69,16 +74,7 @@ exports.default.createOne = async (req, res) => { res .status(200) .json({ - data: pick(objActivity, [ - '_id', - 'title', - 'description', - 'date', - 'type', - 'createdAt', - 'attendance', - 'comment', - ]), + data: pick(objActivity, defaultKeys), }) .end() } catch (err) { @@ -90,7 +86,8 @@ exports.default.createOne = async (req, res) => { } return res.status(422).json({ messages }) } - return res.status(500).json({ message: err.message }).end() + console.error(err) + return res.status(500).json({ message: err.message }) } } @@ -112,9 +109,10 @@ exports.default.getOne = async (req, res) => { if (!activity) return res.status(404).json({ messages: ['No such activity.'] }) - return res.status(200).json({ data: activity }).end() + return res.status(200).json({ data: pick(activity, defaultKeys) }) } catch (err) { - return res.status(500).json({ message: err.message }).end() + console.error(err) + return res.status(500).json({ message: err.message }) } } @@ -123,19 +121,27 @@ exports.default.getMany = async (req, res) => { const activity = await Activity.find() .populate({ path: 'comment', - populate: { path: 'creator', select: '-_id fullName nickName' }, + select: '_id creator text createdAt', + }) + .populate({ + path: 'attendance', + select: '_id user state', }) .select('-__v -_id') .lean() .exec() - if (!activity) { - res.status(404).json({ message: 'Activity not found!' }).end() - } + if (!activity) + return res.status(404).json({ message: 'Activity not found!' }) - res.status(200).json({ data: activity }).end() + res.status(200).json({ + data: activity.map(function pickKeys(doc) { + return pick(doc, defaultKeys) + }), + }) } catch (err) { - res.status(500).json({ message: err.message }).end() + console.error(err) + res.status(500).json({ message: err.message }) } }