| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | const handleError = require('../../utils/v1/handleError')const response = require('../../utils/responseHandler')const userModel = require('../../model/user.model')const { validate } = require('../../utils/v1/validation')const { notifWA2 } = require('../../utils/v1/notifFunction')const { addDokumen } = require('../../utils/dokumenFunction')const jwt = require('jsonwebtoken')const { TEMPLATE_VERIFIKASI, TRUE, FALSE } = require('../../utils/constanta')const pddiktiService = require('../../services/v2/pddikti.service')exports.addUserPublic = handleError(async (req, res) => {  const { no_laporan, pt_id, nama, email, no_hp, alamat, is_private, isVerify } = req.body  const isValid = validate(res, req.body, {    no_laporan: 'string',    pt_id: 'string',    is_private: { type: 'string', enum: [TRUE, FALSE] },  })  if (!isValid) return  const pt = await pddiktiService.getPT(pt_id)  if (pt.length === 0)    return response.error(res, {      message: 'pt_id tidak ditemukan',    })  let foto_id = null  const foto = req.file  if (foto) {    foto_id = await addDokumen(foto)  }  let no_hp2 = null  let no_verifikasi = null  if (no_hp) {    no_hp2 = no_hp.substring(0, 1) === '0' ? '62' + no_hp.substring(1) : no_hp    no_verifikasi = Math.floor(Math.random() * 1000000)  }  let level = 1  if (    no_laporan &&    pt_id &&    nama &&    email &&    no_hp &&    alamat &&    is_private &&    foto_id  ) {    level = 3  }  const user = await userModel.create({    nama,    email,    no_hp,    alamat,    isPublic: true,    isPrivate: is_private === TRUE,    foto: foto_id,    no_verifikasi,    verified: false,  })  let notif = null  if (isVerify !== FALSE && no_hp) {    notifWA2(      TEMPLATE_VERIFIKASI,      { nama: nama || 'rahasia', no_hp: no_hp2 },      [        { key: '1', value: 'pt', value_text: pt[0].nama },        { key: '3', value: 'no_verifikasi', value_text: no_verifikasi },        { key: '2', value: 'no_laporan', value_text: no_laporan },      ]    ).catch()  }  const accessToken = jwt.sign(    {      _id: user._id,      no_laporan,      level,    },    process.env.SRU51,    {      expiresIn: '30m',    }  )  data = {    token: `Bearer ${accessToken}`,  }  return response.success(res, {    data,    message: 'Berhasil menambah user',  })})exports.get = handleError((req, res) => {  const user = req.user  return response.success(res, {    message: 'Berhasil mengambil data user',    data: user,  })})
 |