3 var _ = require('lodash');
4 var async = require('async');
6 var htmlToText = require('html-to-text');
7 var formidable = require('formidable');
8 var path = require('path');
10 var config = require('../../config/environment');
11 var sequelize = require('../../models').sequelize;
12 var MailMessage = require('../../models').MailMessage;
13 var MailAttachment = require('../../models').MailAttachment;
14 var MailRoom = require('../../models').MailRoom;
15 var MailAccount = require('../../models').MailAccount;
16 var Contact = require('../../models').Contact;
18 // Get list of mail_messages
19 exports.index = function (req, res, next) {
21 order: 'createdAt DESC',
30 switch (req.user.role) {
32 params.where = req.query;
42 .then(function (mail_messages) {
43 return res.status(200).send(mail_messages);
45 .catch(function (err) {
46 return handleError(res, err, next);
50 // Get a single mailMessage
51 exports.show = function (req, res, next) {
53 .findById(req.params.id, {
61 .then(function (mailMessage) {
63 return res.sendStatus(404);
65 return res.send(mailMessage);
67 .catch(function (err) {
68 return handleError(res, err, next);
72 // Creates a new mailMessage in the DB.
73 exports.create = function (req, res, next) {
74 return sequelize.transaction().then(function (t) {
81 }).then(function (mailMessage) {
83 return res.status(201).send(mailMessage);
84 }).catch(function (err) {
87 return handleError(res, err);
92 // Updates an existing mailMessage in the DB.
93 exports.update = function (req, res, next) {
96 .findById(req.params.id, {
101 .then(function (mailMessage) {
103 return res.sendStatus(404);
105 var updated = _.merge(mailMessage, req.body);
108 return res.status(200).send(updated);
110 .catch(function (err) {
111 return handleError(res, err, next);
114 .catch(function (err) {
115 return handleError(res, err, next);
119 // Deletes a mailMessage from the DB.
120 exports.destroy = function (req, res, next) {
122 .findById(req.params.id)
123 .then(function (mailMessage) {
125 return res.sendStatus(404);
127 mailMessage.destroy()
129 return res.sendStatus(204);
131 .catch(function (err) {
132 return handleError(res, err, next);
135 .catch(function (err) {
136 return handleError(res, err, next);
140 // Deletes a mailMessage from the DB.
141 exports.bulkDelete = function (req, res, next) {
153 .then(function (mailMessage) {
155 return res.sendStatus(404);
157 mailMessage.destroy()
159 return res.sendStatus(204);
161 .catch(function (err) {
162 return handleError(res, err, next);
165 .catch(function (err) {
166 return handleError(res, err, next);
170 function handleError(res, err, next) {
171 return res.status(500).send(err);