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') exports.addUserPublic = handleError(async (req, res) => { const { no_laporan, pt_id, nama, email, no_hp, alamat, is_private } = req.body const no_hp2 = no_hp.substring(0, 1) === '0' ? '62' + no_hp.substring(1) : no_hp 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', }) const foto = req.file if (!foto) { return response.error(res, { message: 'foto harus ada', }) } const foto_id = await addDokumen(foto) const no_verifikasi = Math.floor(Math.random() * 1000000) const user = await userModel.create({ nama, email, no_hp, alamat, isPublic: true, isPrivate: is_private === 'true', foto: foto_id, no_verifikasi, verified: false, }) await notifWA2( '37a9ccba-e1bc-4d02-86e0-3be4c718af2a', { nama, 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 }, ] ) const accessToken = jwt.sign( { _id: user._id, no_laporan }, process.env.SECRET, { expiresIn: '30m', } ) const data = { token: `Bearer ${accessToken}`, } return response.success(res, { data: 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, }) })