kontak.controller.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. const auth = require('../../middleware/verifyToken')
  2. const kontakModel = require('../../model/kontak.model')
  3. const response = require('../../utils/responseHandler')
  4. const role = require('../../middleware/role')
  5. const checkData = require('../../middleware/checkData')
  6. const verifyOtp = require('../../middleware/verifyOTP')
  7. const { validation } = require('../../middleware/validation')
  8. const { PTB_PT } = require('../../utils/constanta')
  9. exports.getKontak = [
  10. auth,
  11. role(PTB_PT),
  12. checkData((req) => req.user, (user) => kontakModel.find({ 'lembaga.id': user.lembaga.id, 'role.id': PTB_PT }), 'kontak'),
  13. async (req, res) =>
  14. response.success(res, {
  15. status: 'success',
  16. message: 'Berhasil mendapatkan data kontak',
  17. data: req.data['kontak']
  18. })
  19. ]
  20. exports.addKontak = [
  21. auth,
  22. ...verifyOtp,
  23. async (req, res) => {
  24. const user = req.user
  25. const no_hp = req.no_hp
  26. try {
  27. if (!await kontakModel.findOne({ 'lembaga.id': user.lembaga.id })) {
  28. await kontakModel.create({
  29. nama: user.nama,
  30. no_hp,
  31. role: user.role,
  32. lembaga: user.lembaga,
  33. })
  34. return response.success(res, {
  35. status: 'success',
  36. message: 'Berhasil menambahkan kontak',
  37. })
  38. }
  39. await kontakModel.updateOne({ 'lembaga.id': user.lembaga.id }, { no_hp, })
  40. return response.success(res, {
  41. status: 'success',
  42. message: 'Berhasil mengubah kontak'
  43. })
  44. } catch (e) {
  45. return response.error(res, {
  46. message: e.message,
  47. code: e.response?.status || 500
  48. })
  49. }
  50. }
  51. ]