UNPKG

node-prisma-structure

Version:

A Node.js API structure using Prisma ORM for scalable and modular development. This package includes a complete authentication API (signup, login, logout, password reset, and token-based authentication) and provides a well-organized directory structure fo

62 lines (57 loc) 2.46 kB
const isCheckDisposableEmail = require('is-check-disposable-email'); const { sendResponse } = require('../middleware/node_prisma.headerValidator'); const { prisma } = require('../modules/v1/prismaClient'); const uniqueCheck = { userCheckEmail: async (req, res, next) => { let { body } = req; try { if (isCheckDisposableEmail(body?.email)) { return sendResponse(req, res, 201, 'error', { keyword: "can_not_use_disposable_email", components: { email: body?.email } }); } let userData = await prisma.tbl_user.findFirst({ where: { email: body?.email, is_active: true, is_delete: false, } }); if (userData) { return sendResponse(req, res, 201, 'error', { keyword: 'text_email_already_exist', components: { key: body?.email } }); } else { next(); } } catch (error) { console.error('error in userCheckEmail --->> ', error); return sendResponse(req, res, 201, 'error', { keyword: 'text_email_already_exist', components: { key: body?.email } }); } }, userCheckEmailForEdit: async (req, res, next) => { let { body } = req; let { user_type, user_id } = req.loginUser; try { if (isCheckDisposableEmail(body?.email)) { return sendResponse(req, res, 201, 'error', { keyword: "can_not_use_disposable_email", components: { email: body?.email } }); } let userData = await prisma.tbl_user.findFirst({ where: { id: { not: user_id }, email: body?.email, is_active: true, is_delete: false, is_verify: true, } }); if (userData) { return sendResponse(req, res, 201, 'error', { keyword: 'text_email_already_exist', components: { key: body?.email } }); } else { next(); } } catch (error) { console.error('error in userCheckEmailForEdit --->> ', error); return sendResponse(req, res, 201, 'error', { keyword: 'text_email_already_exist', components: { key: body?.email } }); } }, } module.exports = uniqueCheck;