const logs = require('../utils/logs.utils'); const crypt = require('crypto'); const db = require('../services/dbAccess.services'); const fs = require('fs/promises'); const minify = require('../utils/minify.utils'); // Checks users registration key against issued keys async function isAuthed(uuid: string) { // Needs testing const q = {uuid: uuid}; const res = await db.query('users', q); logs.out('authUtils.checkUser: DB Query answer: ' + JSON.stringify(res[0]), 'dbug'); const authorized = res && res[0] && res[0].domain; if (authorized) db.userAtime(uuid); return authorized; } // Checks whether a registration request key is valid async function checkRequest(key: string) { const collection = 'registrations'; const query = {uuid: key}; const res = await db.query(collection, query); logs.out('authUtils.checkRequest: DB Query result: ' + JSON.stringify(res), 'dbug'); const result = res.length > 0 && res[0].time ? { result: true, domain: res[0].domain } : { result: false }; return result; } // Creates an API key for a user async function generateKey() { // Needs testing & moving to 'register.utils' return crypt.randomUUID(); } async function generateConfirmationEmail(eml: string, uuid: string) { try { const htmlTpl = await fs.readFile('mail-templates/register.html', 'utf-8'); const htmlStr = htmlTpl.replace(/>>ACCESSCODE<>ACCESSCODE<