| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- 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,
- })
- })
|