@@ -1,10 +1,11 @@
|
||||
const log = require('../utils/log.utils'); // Log Helper
|
||||
/* global process */
|
||||
const log = require('../utils/log.utils'); // Log Helper
|
||||
|
||||
const dbUser = process.env.OWL_DB_USER || "owl"
|
||||
const dbPass = process.env.OWL_DB_PASS || "twittwoo"
|
||||
const dbName = process.env.OWL_DB_NAME || "owlboard"
|
||||
const dbPort = process.env.OWL_DB_PORT || 27017
|
||||
const dbHost = process.env.OWL_DB_HOST || "localhost"
|
||||
const dbUser = process.env.OWL_DB_USER || 'owl';
|
||||
const dbPass = process.env.OWL_DB_PASS || 'twittwoo';
|
||||
const dbName = process.env.OWL_DB_NAME || 'owlboard';
|
||||
const dbPort = process.env.OWL_DB_PORT || 27017;
|
||||
const dbHost = process.env.OWL_DB_HOST || 'localhost';
|
||||
const uri = `mongodb://${dbUser}:${dbPass}@${dbHost}:${dbPort}`;
|
||||
|
||||
const { MongoClient } = require('mongodb');
|
||||
@@ -13,27 +14,70 @@ const client = new MongoClient(uri);
|
||||
const db = client.db(dbName);
|
||||
|
||||
async function query(collection, query){
|
||||
await client.connect();
|
||||
log.out(`dbAccess.query: Connecting to collection: '${collection}'`, "info")
|
||||
var qcoll = db.collection(collection);
|
||||
var qcursor = qcoll.find(query)
|
||||
qcursor.project({_id: 0})
|
||||
log.out(`dbAccess.query: Running Query: ${JSON.stringify(query)}`, "info")
|
||||
increment(collection)
|
||||
return (await qcursor.toArray());
|
||||
await client.connect();
|
||||
log.out(`dbAccess.query: Connecting to collection: '${collection}'`, 'info');
|
||||
var qcoll = db.collection(collection);
|
||||
var qcursor = qcoll.find(query);
|
||||
qcursor.project({_id: 0});
|
||||
log.out(`dbAccess.query: Running Query: ${JSON.stringify(query)}`, 'info');
|
||||
increment(collection);
|
||||
return (await qcursor.toArray());
|
||||
}
|
||||
|
||||
async function increment(target) {
|
||||
log.out(`dbAccess.increment: Incrementing counter for: ${target}`, "info")
|
||||
await client.connect();
|
||||
let col = db.collection("meta");
|
||||
let update = {}
|
||||
update[target] = 1
|
||||
col.updateOne({target: "counters"}, {$inc:update})
|
||||
return;
|
||||
log.out(`dbAccess.increment: Incrementing counter for: ${target}`, 'info');
|
||||
await client.connect();
|
||||
let col = db.collection('meta');
|
||||
let update = {};
|
||||
update[target] = 1;
|
||||
col.updateOne({target: 'counters'}, {$inc:update});
|
||||
}
|
||||
|
||||
async function addUser(uuid, domain) { // Needs testing
|
||||
log.out('dbAccess.addUser: Adding user to database');
|
||||
let doc = {uuid: uuid, domain: domain, atime: new Date};
|
||||
await client.connect();
|
||||
let col = db.collection('users');
|
||||
let res = await col.insertOne(doc);
|
||||
if (res.insertedId) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
async function addRegReq(uuid, domain) { // Needs testing
|
||||
log.out('dbAccess.addRegReq: Adding registration request');
|
||||
let doc = {uuid: uuid, time: new Date, domain: domain};
|
||||
await client.connect();
|
||||
let col = db.collection('registrations');
|
||||
let res = col.insertOne(doc);
|
||||
return res;
|
||||
}
|
||||
|
||||
async function userAtime(uuid) { // Needs testing
|
||||
log.out('dbAccess.userAtime: Updating access time for user');
|
||||
let q = {uuid: uuid};
|
||||
let n = {$set: {uuid: uuid, atime: new Date}};
|
||||
await client.connect();
|
||||
let col = db.collection('users');
|
||||
let res = col.updateOne(q, n, {upsert: true});
|
||||
return res;
|
||||
}
|
||||
|
||||
// Deletes one single registration request entry from the DB
|
||||
async function delRegReq(uuid) {
|
||||
log.out('dbAccess.delRegReq: Deleting a Registration Request');
|
||||
let collection = 'registrations';
|
||||
await client.connect();
|
||||
let col = db.collection(collection);
|
||||
col.deleteOne({uuid: uuid});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
query,
|
||||
increment
|
||||
}
|
||||
query,
|
||||
increment, // Probqbly doesn't need exporting? - It does, ldbServices needs to increment when the API is hit!
|
||||
addUser,
|
||||
userAtime,
|
||||
addRegReq,
|
||||
delRegReq
|
||||
};
|
||||
@@ -2,58 +2,58 @@
|
||||
|
||||
const log = require('../utils/log.utils'); // Log Helper
|
||||
const db = require('../services/dbAccess.services');
|
||||
const san = require('../utils/sanitizer.utils')
|
||||
const san = require('../utils/sanitizer.utils');
|
||||
|
||||
// DB Query: query(collection, query)
|
||||
|
||||
// Define collection as all queries are for the "corpus" collection.
|
||||
const col = "corpus"
|
||||
const col = 'corpus';
|
||||
|
||||
async function name(id){
|
||||
log.out(`findServices.name: Finding station name: ${id}`, "info")
|
||||
var name = san.cleanApiEndpointTxt(id.toUpperCase())
|
||||
query = {NLCDESC: name}
|
||||
//var data = await db.query(col,query)
|
||||
return await db.query(col,query)
|
||||
log.out(`findServices.name: Finding station name: ${id}`, 'info');
|
||||
var name = san.cleanApiEndpointTxt(id.toUpperCase());
|
||||
let query = {NLCDESC: name};
|
||||
//var data = await db.query(col,query)
|
||||
return await db.query(col,query);
|
||||
}
|
||||
|
||||
async function crs(id){
|
||||
log.out(`findServices.crs: Finding crs: ${id}`, "info")
|
||||
var crs = san.cleanApiEndpointTxt(id.toUpperCase())
|
||||
query = {'3ALPHA': crs}
|
||||
//var data = await db.query(col,query)
|
||||
return await db.query(col,query)
|
||||
log.out(`findServices.crs: Finding crs: ${id}`, 'info');
|
||||
var crs = san.cleanApiEndpointTxt(id.toUpperCase());
|
||||
let query = {'3ALPHA': crs};
|
||||
//var data = await db.query(col,query)
|
||||
return await db.query(col,query);
|
||||
}
|
||||
|
||||
async function nlc(id){
|
||||
log.out(`findServices.nlc: Finding nlc: ${id}`, "info")
|
||||
var nlc = san.cleanApiEndpointNum(id)
|
||||
query = {NLC: parseInt(nlc)}
|
||||
log.out(`findServices.nlc: NLC Converted to int: ${query}`, "info")
|
||||
//var data = await db.query(col,query)
|
||||
return await db.query(col,query)
|
||||
log.out(`findServices.nlc: Finding nlc: ${id}`, 'info');
|
||||
var nlc = san.cleanApiEndpointNum(id);
|
||||
let query = {NLC: parseInt(nlc)};
|
||||
log.out(`findServices.nlc: NLC Converted to int: ${query}`, 'info');
|
||||
//var data = await db.query(col,query)
|
||||
return await db.query(col,query);
|
||||
}
|
||||
|
||||
async function tiploc(id){
|
||||
log.out(`findServices.tiploc: Finding tiploc: ${id}`, "info")
|
||||
var tiploc = san.cleanApiEndpointTxt(id.toUpperCase())
|
||||
query = {TIPLOC: tiploc}
|
||||
//var data = await db.query(col,query)
|
||||
return await db.query(col,query)
|
||||
log.out(`findServices.tiploc: Finding tiploc: ${id}`, 'info');
|
||||
var tiploc = san.cleanApiEndpointTxt(id.toUpperCase());
|
||||
let query = {TIPLOC: tiploc};
|
||||
//var data = await db.query(col,query)
|
||||
return await db.query(col,query);
|
||||
}
|
||||
|
||||
async function stanox(id){
|
||||
log.out(`findServices.stanox: Finding stanox: ${id}`, "info")
|
||||
var stanox = san.cleanApiEndpointNum(id)
|
||||
query = {STANOX: String(stanox)}
|
||||
//var data = await db.query(col,query)
|
||||
return await db.query(col,query)
|
||||
log.out(`findServices.stanox: Finding stanox: ${id}`, 'info');
|
||||
var stanox = san.cleanApiEndpointNum(id);
|
||||
let query = {STANOX: String(stanox)};
|
||||
//var data = await db.query(col,query)
|
||||
return await db.query(col,query);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
name,
|
||||
crs,
|
||||
nlc,
|
||||
tiploc,
|
||||
stanox
|
||||
}
|
||||
name,
|
||||
crs,
|
||||
nlc,
|
||||
tiploc,
|
||||
stanox
|
||||
};
|
||||
@@ -1,33 +1,35 @@
|
||||
const axios = require('axios')
|
||||
const log = require('../utils/log.utils')
|
||||
/* eslint-disable no-useless-escape */
|
||||
/* global process */
|
||||
const axios = require('axios');
|
||||
const log = require('../utils/log.utils');
|
||||
|
||||
async function processor(data) {
|
||||
log.out(`issueService.processor: Issue received`, "info")
|
||||
let out = {}
|
||||
out.title = data.subject.replace(/<[^>]+>|[\*\$]/g, '');
|
||||
out.body = data.msg.replace(/<[^>]+>|[\*\$]/g, '')
|
||||
return await sendToGitea(out);
|
||||
log.out('issueService.processor: Issue received', 'info');
|
||||
let out = {};
|
||||
out.title = data.subject.replace(/<[^>]+>|[\*\$]/g, '');
|
||||
out.body = data.msg.replace(/<[^>]+>|[\*\$]/g, '');
|
||||
return await sendToGitea(out);
|
||||
}
|
||||
|
||||
async function sendToGitea(body) {
|
||||
let key = process.env.OWL_GIT_ISSUEBOT
|
||||
let url = process.env.OWL_GIT_APIENDPOINT
|
||||
let opts = {
|
||||
headers: {
|
||||
Authorization: key
|
||||
}
|
||||
}
|
||||
var res = await axios.post(url, body, opts)
|
||||
// Need to read the output from the POST and pass the result upwards to the client.
|
||||
if (res.status == 201) {
|
||||
log.out("issueService.sendToGitea: Issue sent to Gitea", "info")
|
||||
return {status: res.status,message:"issue created"}
|
||||
} else {
|
||||
log.out(`issueService.sendToGitea: Failed to send issue to Gitea: ${res.body}`, "err")
|
||||
return {status: res.status,message:"issue not created"}
|
||||
let key = process.env.OWL_GIT_ISSUEBOT;
|
||||
let url = process.env.OWL_GIT_APIENDPOINT;
|
||||
let opts = {
|
||||
headers: {
|
||||
Authorization: key
|
||||
}
|
||||
};
|
||||
var res = await axios.post(url, body, opts);
|
||||
// Need to read the output from the POST and pass the result upwards to the client.
|
||||
if (res.status == 201) {
|
||||
log.out('issueService.sendToGitea: Issue sent to Gitea', 'info');
|
||||
return {status: res.status,message:'issue created'};
|
||||
} else {
|
||||
log.out(`issueService.sendToGitea: Failed to send issue to Gitea: ${res.body}`, 'err');
|
||||
return {status: res.status,message:'issue not created'};
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
processor
|
||||
}
|
||||
processor
|
||||
};
|
||||
@@ -1,20 +1,28 @@
|
||||
const testing = require('../services/mail.services');
|
||||
const log = require('../utils/log.utils');
|
||||
|
||||
async function getAlive(){
|
||||
log.out(`kubeServices.getAlive: alive hook checked`, "info")
|
||||
return {code: 200, state: {state: "alive",noise: "twit-twoo"}}
|
||||
log.out('kubeServices.getAlive: alive hook checked', 'info');
|
||||
return {code: 200, state: {state: 'alive',noise: 'twit-twoo'}};
|
||||
}
|
||||
|
||||
async function getReady(){
|
||||
log.out(`kubeServices.getReady: ready hook checked`, "info")
|
||||
return "not_implemented";
|
||||
};
|
||||
log.out('kubeServices.getReady: ready hook checked', 'info');
|
||||
testing.send({
|
||||
to: 'fred@fjla.uk',
|
||||
subject: 'OwlBoard Test',
|
||||
txt: 'This is a test message from OwlBoard (testing)'
|
||||
});
|
||||
return 'not_implemented';
|
||||
}
|
||||
|
||||
async function getTime(){
|
||||
var now = new Date()
|
||||
return {responseGenerated: now}
|
||||
var now = new Date();
|
||||
return {responseGenerated: now};
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getAlive,
|
||||
getReady,
|
||||
getTime
|
||||
}
|
||||
getAlive,
|
||||
getReady,
|
||||
getTime
|
||||
};
|
||||
@@ -1,46 +1,67 @@
|
||||
/* global process */
|
||||
// Parse and return an LDB Request
|
||||
|
||||
const log = require('../utils/log.utils'); // Log Helper
|
||||
const ldb = require('ldbs-json')
|
||||
const util = require('../utils/ldb.utils')
|
||||
const san = require('../utils/sanitizer.utils')
|
||||
const db = require('../services/dbAccess.services')
|
||||
const ldb = require('ldbs-json');
|
||||
const util = require('../utils/ldb.utils');
|
||||
const san = require('../utils/sanitizer.utils');
|
||||
const db = require('../services/dbAccess.services');
|
||||
|
||||
const ldbKey = process.env.OWL_LDB_KEY
|
||||
const ldbsvKey = process.env.OWL_LDB_SVKEY
|
||||
const ldbKey = process.env.OWL_LDB_KEY;
|
||||
const ldbsvKey = process.env.OWL_LDB_SVKEY;
|
||||
|
||||
async function get(body, id){
|
||||
var cleanId = san.cleanApiEndpointTxt(id);
|
||||
var obj = await util.checkCrs(cleanId);
|
||||
try {
|
||||
var crs = obj[0]['3ALPHA'];
|
||||
log.out(`ldbService.get: Determined CRS for lookup to be: ${crs}`, "info");
|
||||
var data = arrDepBoard(crs);
|
||||
db.increment("ldbws");
|
||||
await data;
|
||||
} catch (err) {
|
||||
log.out(`ldbService.get: Error, Unable to find CRS: ${err}`, "info")
|
||||
var data = {ERROR:'NOT_FOUND',description:'The entered station was not found. Please check and try again.'};
|
||||
async function get(id, staff=false){
|
||||
const cleanId = san.cleanApiEndpointTxt(id);
|
||||
const obj = await util.checkCrs(cleanId);
|
||||
try {
|
||||
const crs = obj[0]['3ALPHA'];
|
||||
log.out(`ldbService.get: Determined CRS for lookup to be: ${crs}`, 'info');
|
||||
if (staff) {
|
||||
const data = arrDepBoardStaff(crs);
|
||||
db.increment('ldbsvws');
|
||||
return await data;
|
||||
} else {
|
||||
const data = arrDepBoard(crs);
|
||||
db.increment('ldbws');
|
||||
return await data;
|
||||
}
|
||||
return data;
|
||||
} catch (err) {
|
||||
log.out(`ldbService.get: Error, Unable to find CRS: ${err}`, 'info');
|
||||
return {ERROR:'NOT_FOUND',description:'The entered station was not found. Please check and try again.'};
|
||||
}
|
||||
}
|
||||
|
||||
async function arrDepBoard(CRS){
|
||||
log.out(`ldbService.arrDepBoard: Trying to fetch ArrDep Board for ${CRS}`, "info")
|
||||
try {
|
||||
var options = {
|
||||
numRows: 10,
|
||||
crs: CRS.toUpperCase()
|
||||
}
|
||||
var api = new ldb(ldbKey,false)
|
||||
var reply = api.call("GetArrDepBoardWithDetails", options, false, false)
|
||||
return await reply
|
||||
} catch (err) {
|
||||
log.out(`ldbService.arrDepBoard: Lookup Failed for: ${CRS}`, "warn")
|
||||
return {GetStationBoardResult: "not available", Reason: `The CRS code ${CRS} is not valid`, Why: `Sometimes a station will have more than one CRS - for example Filton Abbey Wood has FIT and FAW however schedules are only available when looking up with FIT - this is how the National Rail Enquiries systems work.`};
|
||||
}
|
||||
};
|
||||
log.out(`ldbService.arrDepBoard: Trying to fetch ArrDep Board for ${CRS}`, 'info');
|
||||
try {
|
||||
const options = {
|
||||
numRows: 10,
|
||||
crs: CRS.toUpperCase()
|
||||
};
|
||||
const api = new ldb(ldbKey,false);
|
||||
return await api.call('GetArrDepBoardWithDetails', options, false, false);
|
||||
} catch (err) {
|
||||
log.out(`ldbService.arrDepBoard: Lookup Failed for: ${CRS}`, 'warn');
|
||||
return {GetStationBoardResult: 'not available', Reason: `The CRS code ${CRS} is not valid`, Why: 'Sometimes a station will have more than one CRS - for example Filton Abbey Wood has FIT and FAW however schedules are only available when looking up with FIT - this is how the National Rail Enquiries systems work.'};
|
||||
}
|
||||
}
|
||||
|
||||
async function arrDepBoardStaff(CRS) {
|
||||
log.out(`ldbService.arrDepBoardStaff: Trying to fetch ArrDep Board for ${CRS}`, 'dbug');
|
||||
try {
|
||||
const options = {
|
||||
numRows: 25,
|
||||
crs: CRS.toUpperCase(),
|
||||
getNonPassengerServices: true
|
||||
};
|
||||
const api = new ldb(ldbsvKey,true);
|
||||
return await api.call('GetArrDepBoardWithDetails', options, false, false);
|
||||
} catch (err) {
|
||||
log.out(`ldbService.arrDepBoardStaff: Lookup Failed for: ${CRS}, "warn`);
|
||||
return {GetStationBoardResult: 'not available', Reason: `The CRS code ${CRS} is not valid`, Why: 'Sometimes a station will have more than one CRS - for example Filton Abbey Wood has FIT and FAW however schedules are only available when looking up with FIT - this is how the National Rail Enquiries systems work.'};
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
get
|
||||
}
|
||||
get
|
||||
};
|
||||
@@ -1,20 +1,19 @@
|
||||
const log = require('../utils/log.utils'); // Log Helper
|
||||
const db = require('../services/dbAccess.services')
|
||||
const os = require('os')
|
||||
const db = require('../services/dbAccess.services');
|
||||
|
||||
async function getStations(){
|
||||
var out = db.query("stations")
|
||||
log.out(`listServices.getStations: Fetching stations list`, "info")
|
||||
return await out;
|
||||
var out = db.query('stations');
|
||||
log.out('listServices.getStations: Fetching stations list', 'info');
|
||||
return await out;
|
||||
}
|
||||
|
||||
async function getCorpus(){
|
||||
var out = db.query("corpus")
|
||||
log.out(`listServices.getCorpus: Fetching CORPUS list`, "info")
|
||||
return await out;
|
||||
var out = db.query('corpus');
|
||||
log.out('listServices.getCorpus: Fetching CORPUS list', 'info');
|
||||
return await out;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getStations,
|
||||
getCorpus
|
||||
}
|
||||
getStations,
|
||||
getCorpus
|
||||
};
|
||||
@@ -1,7 +1,36 @@
|
||||
const log = require('../utils/log.utils')
|
||||
const mail = require('some-mail-module')
|
||||
/* global process */
|
||||
const log = require('../utils/log.utils');
|
||||
const mail = require('nodemailer'); //>> Probs wrong
|
||||
|
||||
async function sendTest() {
|
||||
// Send test mail message
|
||||
return;
|
||||
}
|
||||
const fromAddr = process.env.OWL_EML_FROM;
|
||||
const smtpUser = process.env.OWL_EML_USER;
|
||||
const smtpPass = process.env.OWL_EML_PASS;
|
||||
const smtpHost = process.env.OWL_EML_HOST;
|
||||
const smtpPort = process.env.OWL_EML_PORT;
|
||||
|
||||
let transporter = mail.createTransport({
|
||||
host: smtpHost,
|
||||
port: smtpPort,
|
||||
secure: false, // Must be false for STARTTLS on port 587
|
||||
auth: {
|
||||
user: smtpUser,
|
||||
pass: smtpPass
|
||||
}
|
||||
});
|
||||
|
||||
async function send(message){ // message is an object containing strings for: *to, cc, bcc, *subject, *txt, html (* denotes required)
|
||||
log.out('mailServices.send: Message send request received', 'info');
|
||||
message.from = fromAddr;
|
||||
try {
|
||||
var res = await transporter.sendMail(message);
|
||||
} catch(err) {
|
||||
log.out(`mailServices.send: Message send failed: ${err}`, 'err');
|
||||
return false;
|
||||
}
|
||||
log.out(`mailServices.send: SMTP Response: ${res.response}`);
|
||||
return true;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
send
|
||||
};
|
||||
34
src/services/pis.services.js
Normal file
34
src/services/pis.services.js
Normal file
@@ -0,0 +1,34 @@
|
||||
// Finds PIS Codes using DB Lookups
|
||||
|
||||
const db = require('../services/dbAccess.services');
|
||||
const log = require('../utils/log.utils');
|
||||
const clean = require('../utils/sanitizer.utils');
|
||||
|
||||
async function findPisByOrigDest(start,end) {
|
||||
log.out(`pisServices.findPisByOrigDest: Searching for PIS for Orig: ${start}, Dest: ${end}`, 'dbug');
|
||||
const firstCrs = clean.cleanApiEndpointTxt(start.toLowerCase());
|
||||
const lastCrs = clean.cleanApiEndpointTxt(end.toLowerCase());
|
||||
const query = {
|
||||
stops: {
|
||||
$all: [
|
||||
{ $elemMatch: { $eq: firstCrs } },
|
||||
{ $elemMatch: { $eq: lastCrs } }
|
||||
]
|
||||
},
|
||||
$expr: {
|
||||
$and: [
|
||||
{ $eq: [{ $arrayElemAt: [ '$stops', -1 ] }, lastCrs] },
|
||||
{ $eq: [{ $arrayElemAt: [ '$stops', 0 ] }, firstCrs] }
|
||||
]
|
||||
}
|
||||
};
|
||||
//const oldQuery = {$and:[{$expr:{$eq:[{$first:"$stops"},firstCrs]}},{$expr:{$eq:[{$last:"$stops"},lastCrs]}}]}
|
||||
const search = db.query('pis', query);
|
||||
return search;
|
||||
}
|
||||
|
||||
// Hopefully at some point, I will also be able to implement a find PIS code by headcode option.
|
||||
|
||||
module.exports = {
|
||||
findPisByOrigDest
|
||||
};
|
||||
51
src/services/registration.services.js
Normal file
51
src/services/registration.services.js
Normal file
@@ -0,0 +1,51 @@
|
||||
const log = require('../utils/log.utils');
|
||||
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');
|
||||
|
||||
async function createRegKey(body) {
|
||||
log.out('registerServices.createRegKey: Incoming request', 'INFO');
|
||||
const domain = await clean.getDomainFromEmail(body.email); // The function should validate the email
|
||||
log.out(`registerServices: New registration request from domain: ${domain}`, 'info');
|
||||
if (domains.includes(domain)) {
|
||||
log.out(`registerServices.createRegKey: Key from valid domain: ${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');
|
||||
log.out('registerServices.createRegKey: Error generating registration email', 'err');
|
||||
log.out(err, 'err');
|
||||
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]};
|
||||
}
|
||||
|
||||
async function regUser(req) { // Add input validation
|
||||
log.out(`Read UUID: ${req.uuid}`, 'dbug');
|
||||
log.out(`registrationServices.regUser: Checking validity of : ${req.uuid}`, 'info');
|
||||
const res = await auth.checkRequest(req.uuid);
|
||||
log.out(`registrationServices.regUser: checkRequest returned: ${JSON.stringify(res)}`, 'info');
|
||||
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]};
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
regUser,
|
||||
createRegKey
|
||||
};
|
||||
@@ -1,24 +1,25 @@
|
||||
const log = require('../utils/log.utils'); // Log Helper
|
||||
const db = require('../services/dbAccess.services')
|
||||
const os = require('os')
|
||||
const vers = require('../configs/version.configs')
|
||||
const db = require('../services/dbAccess.services');
|
||||
const os = require('os');
|
||||
const vers = require('../configs/version.configs');
|
||||
|
||||
async function hits(){
|
||||
log.out("statsServices.hits: Statistics Requested", "info")
|
||||
var dat = db.query("meta", {target: "counters"});
|
||||
var ver = db.query("meta", {target: "versions"});
|
||||
log.out(`statsServices.hits: fetched server meta`, "info")
|
||||
let out = {};
|
||||
out.host = os.hostname();
|
||||
out.mode = process.env.NODE_ENV;
|
||||
out.verBkend = vers.app;
|
||||
out.verApi = vers.api;
|
||||
out.dat = await dat;
|
||||
out.ver = await ver;
|
||||
log.out(`statsServices.hits: Sending Data: ${JSON.stringify(out)}`, "info")
|
||||
return out;
|
||||
log.out('statsServices.hits: Statistics Requested', 'info');
|
||||
var dat = db.query('meta', {target: 'counters'});
|
||||
var ver = db.query('meta', {target: 'versions'});
|
||||
log.out('statsServices.hits: fetched server meta', 'info');
|
||||
let out = {};
|
||||
out.host = os.hostname();
|
||||
// eslint-disable-next-line no-undef
|
||||
out.mode = process.env.NODE_ENV;
|
||||
out.verBkend = vers.app;
|
||||
out.verApi = vers.api;
|
||||
out.dat = await dat;
|
||||
out.ver = await ver;
|
||||
log.out(`statsServices.hits: Sending Data: ${JSON.stringify(out)}`, 'info');
|
||||
return out;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
hits
|
||||
}
|
||||
hits
|
||||
};
|
||||
Reference in New Issue
Block a user