| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | 
							- const handleError = require('../utils/handleError')
 
- const response = require('../utils/responseHandler')
 
- const userModel = require('../model/user.model')
 
- const { validate } = require('../utils/validation')
 
- const { notifWA2 } = require('../utils/notifFunction')
 
- const axios = require('../utils/axios')
 
- const { addDokumen } = require('../utils/dokumenFunction')
 
- const jwt = require('jsonwebtoken')
 
- const { TEMPLATE_VERIFIKASI } = require('../utils/constanta')
 
- 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',
 
-     // nama: 'string',
 
-     // email: 'email',
 
-     // no_hp: 'string',
 
-     // alamat: 'string',
 
-     is_private: { type: 'string', enum: ['true', 'false'] },
 
-   })
 
-   if (!isValid) return
 
-   const pt = await axios.get(
 
-     `https://api.kemdikbud.go.id:8243/pddikti/1.2/pt/${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,
 
-   })
 
- })
 
 
  |