const auth = require("../utils/auth.utils"); const db = require("./dbAccess.services"); const mail = require("./mail.services"); const clean = require("../utils/sanitizer.utils"); const domains = require("../configs/domains.configs"); const errors = require("../configs/errorCodes.configs"); import { logger } from "../utils/logger.utils"; async function createRegKey(body) { logger.debug("registerServices.createRegKey: Incoming request"); if (body.email) { const domain = await clean.getDomainFromEmail(body.email); logger.info(`registerServices: Registration request from: ${domain}`); if (domains.includes(domain)) { logger.debug(`registerServices.createRegKey: Key from valid: ${domain}`); const uuid = await auth.generateKey(); db.addRegReq(uuid, domain); const message = await auth.generateConfirmationEmail(body.email, uuid); if (!message) { const err = new Error("Message generation error"); logger.error( err, "registerServices.createRegKey: Error generating email" ); return 500; } if ((await mail.send(message)) == true) { return { status: 201, message: "email sent" }; } return { status: 500, errorCode: 950, errorMsg: errors[950] }; } return { status: 403, errorCode: 702, errorMsg: errors[702] }; } else { return { status: 400, errorCode: 901, errorMsg: errors[902] }; } } async function regUser(req) { // Add input validation logger.trace(`Read UUID: ${req.uuid}`); const res = await auth.checkRequest(req.uuid); logger.debug(res, "registrationServices"); if (res.result) { const uuid = await auth.generateKey(); const apiKey = await db.addUser(uuid, res.domain); if (apiKey) { db.delRegReq(req.uuid); return { status: 201, message: "User added", api_key: uuid }; } } return { status: 401, errorCode: 703, errorMsg: errors[703] }; } async function getUser(uuid) { try { const filter = { uuid: uuid, }; const res = await db.query("users", filter, false); if (res.length) { return res; } else { return { status: 404, errorCode: 400, errorMsg: errors[400] }; } } catch (err) { console.log(err); return { status: 500, errorCode: 951, errorMsg: errors[951] }; } } module.exports = { regUser, createRegKey, getUser, };