benfluleck/HelloBooks

View on GitHub
server/src/controllers/notifications.js

Summary

Maintainability
A
0 mins
Test Coverage
import models from '../models';
import pagination from '../controllers/helpers/pagination';


const { Notifications, Books, User } = models;

export default {
  /**  @description displays admin notifications
     *
     * @param {object} req HTTP request object
     *
     * @param {object} res HTTP response object
     *
     * @returns {object} allnotififications - returns all notifications
     */
  displayNotification(req, res) {
    const offset = req.query.offset || 0;
    const limit = req.query.limit || 3;
    return Notifications
      .findAndCountAll({
        include: [{
          model: Books,
          as: 'book',
          attributes: ['title'],
          paranoid: false
        },
        {
          model: User,
          as: 'user',
          attributes: ['username'],
        }
        ],
        order: [['createdAt', 'DESC']],
        limit,
        offset
      })
      .then((notifications) => {
        const allNotifications = {
          notifications: notifications.rows,
          pagination: pagination(offset, limit, notifications)
        };
        res.status(200).send(allNotifications);
      })
      .catch(error => res.status(500).send(error.message));
  },

};