mail_address_ctrl.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. const db = require('./db');
  2. module.exports = {
  3. get_all: (req, res, next) => {
  4. return req.person.getMailAddresses({
  5. order: [ 'type' ]
  6. })
  7. .then((mailAddresses) => res.json(mailAddresses))
  8. .catch((err) => next(err));
  9. },
  10. get_by_id: (req, res, next) => {
  11. return req.person.getMailAddresses({
  12. where: {
  13. id: req.params.mail_address_id
  14. }
  15. })
  16. .then((mailAddresses) => {
  17. if (mailAddresses.length === 0) {
  18. throw { status: 404, message: 'Requested MailAddress not found' };
  19. }
  20. return res.json(mailAddresses[0]);
  21. })
  22. .catch((err) => next(err));
  23. },
  24. create: (req, res, next) => {
  25. const data = {
  26. address: req.body.address || '',
  27. type: req.body.type || 'home'
  28. };
  29. return req.person.createMailAddress(data)
  30. .then((mailAddress) => res.json(mailAddress))
  31. .catch((err) => next(err));
  32. },
  33. update_by_id: (req, res, next) => {
  34. return req.person.getMailAddresses({
  35. where: {
  36. id: req.params.mail_address_id
  37. }
  38. })
  39. .then((mailAddresses) => {
  40. if (mailAddresses.length === 0) {
  41. throw { status: 404, message: 'Requested MailAddress not found' };
  42. }
  43. Object.assign(mailAddresses[0], req.body);
  44. return mailAddresses[0].save();
  45. })
  46. .then((mailAddress) => res.json(mailAddress))
  47. .catch((err) => next(err));
  48. },
  49. delete_by_id: (req, res, next) => {
  50. return req.person.getMailAddresses({
  51. where: {
  52. id: req.params.mail_address_id
  53. }
  54. })
  55. .then((mailAddresses) => {
  56. if (mailAddresses.length === 0) {
  57. throw { status: 404, message: 'Requested MailAddress not found' };
  58. }
  59. return mailAddresses[0].destroy();
  60. })
  61. .then(() => res.status(200).end())
  62. .catch((err) => next(err));
  63. }
  64. };