Compare commits

...

9 Commits

Author SHA1 Message Date
Fred Boniface 648c72fa34 Migrate pis.services to new logger
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-09-28 12:11:10 +01:00
Fred Boniface d9e2445141 Mingrate mail.services to new logger
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-09-28 12:09:33 +01:00
Fred Boniface 0576f431dc Mingrate list.services to new logger
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-09-28 12:05:48 +01:00
Fred Boniface c57375f734 Mingrate kube.services to new logger
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-09-28 12:03:46 +01:00
Fred Boniface 61648602bd Disable APIv1 Route registrations
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-09-28 11:53:56 +01:00
Fred Boniface 83aca0da47 Remove Axios from package.json
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-09-28 11:42:58 +01:00
Fred Boniface e38946d4df Change issue.services from Axios to Fetch
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-09-28 11:41:48 +01:00
Fred Boniface d395b65512 Migrate issue.services to new logger
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-09-28 11:37:09 +01:00
Fred Boniface 7a6dc186f3 Fix package.json
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-09-28 11:34:21 +01:00
10 changed files with 35 additions and 143 deletions

18
app.js
View File

@ -82,17 +82,17 @@ app.use("/api/v2/user", user2Rtr); // API Version 2
app.use("/misc", miscRtr); // Non public-api endpoints (Stats, Issue, etc.) app.use("/misc", miscRtr); // Non public-api endpoints (Stats, Issue, etc.)
// Unauthenticated Routes // Unauthenticated Routes
app.use("/api/v1/list", listRtr); //app.use("/api/v1/list", listRtr); - Remove v1 List API - list.routes
app.use("/api/v1/ldb", ldbRtr); //app.use("/api/v1/ldb", ldbRtr); - Remove v1 LDB API
app.use("/api/v1/kube", kubeRtr); //app.use("/api/v1/kube", kubeRtr); - Remove v1 Kube API
app.use("/api/v1/find", findRtr); //app.use("/api/v1/find", findRtr); - Remove v1 Find API
app.use("/api/v1/issue", issueRtr); //app.use("/api/v1/issue", issueRtr); - Remove v1 Issue API
app.use("/api/v1/stats", statRtr); //app.use("/api/v1/stats", statRtr); - Remove v1 Stats API
app.use("/api/v1/register", regRtr); //app.use("/api/v1/register", regRtr); - Remove v1 Register API
// Authented Routes // Authented Routes
app.use("/api/v1/ldbs", authenticate, ldbsRtr); //app.use("/api/v1/ldbs", authenticate, ldbsRtr); - Remove v1 LDBS API
app.use("/api/v1/pis", authenticate, pisRtr); //app.use("/api/v1/pis", authenticate, pisRtr); - Remove v1 PIS API
app.use("/api/v1/auth/test", authenticate, (req, res) => app.use("/api/v1/auth/test", authenticate, (req, res) =>
res.status(200).json({ res.status(200).json({
status: "ok", status: "ok",

72
package-lock.json generated
View File

@ -9,7 +9,6 @@
"version": "1.2.0-dev", "version": "1.2.0-dev",
"license": "GPL-3.0-or-later", "license": "GPL-3.0-or-later",
"dependencies": { "dependencies": {
"axios": "^1.2.1",
"compression": "^1.7.4", "compression": "^1.7.4",
"cors": "^2.8.5", "cors": "^2.8.5",
"express": "^4.18.2", "express": "^4.18.2",
@ -2863,11 +2862,6 @@
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
}, },
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/atomic-sleep": { "node_modules/atomic-sleep": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
@ -2876,16 +2870,6 @@
"node": ">=8.0.0" "node": ">=8.0.0"
} }
}, },
"node_modules/axios": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz",
"integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==",
"dependencies": {
"follow-redirects": "^1.15.0",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/babel-jest": { "node_modules/babel-jest": {
"version": "29.7.0", "version": "29.7.0",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
@ -3391,17 +3375,6 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true "dev": true
}, },
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dependencies": {
"delayed-stream": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/commander": { "node_modules/commander": {
"version": "2.20.3", "version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
@ -3608,14 +3581,6 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/depd": { "node_modules/depd": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@ -4271,38 +4236,6 @@
"integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
"dev": true "dev": true
}, },
"node_modules/follow-redirects": {
"version": "1.15.2",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
"engines": {
"node": ">=4.0"
},
"peerDependenciesMeta": {
"debug": {
"optional": true
}
}
},
"node_modules/form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/forwarded": { "node_modules/forwarded": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@ -6455,11 +6388,6 @@
"node": ">= 0.10" "node": ">= 0.10"
} }
}, },
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"node_modules/punycode": { "node_modules/punycode": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",

View File

@ -8,7 +8,7 @@
}, },
"license": "GPL-3.0-or-later", "license": "GPL-3.0-or-later",
"author": "Fred Boniface", "author": "Fred Boniface",
"main": "express.js", "main": "app.js",
"scripts": { "scripts": {
"build": "tsc", "build": "tsc",
"run": "tsc && node dist/app.js", "run": "tsc && node dist/app.js",
@ -17,7 +17,6 @@
"format": "npx prettier -w ." "format": "npx prettier -w ."
}, },
"dependencies": { "dependencies": {
"axios": "^1.2.1",
"compression": "^1.7.4", "compression": "^1.7.4",
"cors": "^2.8.5", "cors": "^2.8.5",
"express": "^4.18.2", "express": "^4.18.2",

View File

@ -1,8 +0,0 @@
const express = require("express");
const router = express.Router();
// Controller Imports
// Routes
module.exports = router;

View File

@ -1,28 +0,0 @@
const express = require("express");
const router = express.Router();
/* Controller Imports */
// Live
// Timetable
// Ref
// User
/* Routes */
// Live
router.get("/live/station/:id/:type");
router.get("/live/train/:searchType/:id");
// Timetable
router.get("/timetable/train/:date/:searchType/:id");
// User
router.post("/user");
router.get("/user/:uuid");
router.delete("/user/:uuid");
module.exports = router;

View File

@ -1,6 +1,6 @@
/* eslint-disable no-useless-escape */ /* eslint-disable no-useless-escape */
const axios = require("axios"); //const axios = require("axios");
const log = require("../utils/logs.utils"); import { logger } from "../utils/logger.utils";
const issueLabels = { const issueLabels = {
bug: 120, bug: 120,
@ -11,7 +11,7 @@ const issueLabels = {
}; };
async function processor(data) { async function processor(data) {
log.out("issueService.processor: Issue received", "info"); logger.debug("issueService.processor: Issue received");
let out = {}; let out = {};
out.labels = [issueLabels[data?.label] || 0, issueLabels["web-user"]]; out.labels = [issueLabels[data?.label] || 0, issueLabels["web-user"]];
out.title = data?.subject.replace(/<[^>]+>|[\*\$]/g, ""); out.title = data?.subject.replace(/<[^>]+>|[\*\$]/g, "");
@ -26,15 +26,17 @@ async function sendToGitea(body) {
headers: { headers: {
Authorization: key, Authorization: key,
}, },
body: body,
}; };
var res = await axios.post(url, body, opts); //var res = await axios.post(url, body, opts);
const res = await fetch(url, opts);
/* Need to read the output from the POST and pass the result upwards to the /* Need to read the output from the POST and pass the result upwards to the
client.*/ client.*/
if (res.status == 201) { if (res.status == 201) {
log.out("issueService.sendToGitea: Issue sent to Gitea", "info"); logger.info("issueService.sendToGitea: Issue sent to Gitea");
return { status: res.status, message: "issue created" }; return { status: res.status, message: "issue created" };
} else { } else {
log.out(`issueService.sendToGitea: Fail to send issue: ${res.body}`, "err"); logger.error(res.body, "issueService.sendToGitea: Fail to send issue");
return { status: res.status, message: "issue not created" }; return { status: res.status, message: "issue not created" };
} }
} }

View File

@ -1,13 +1,14 @@
const testing = require("../services/mail.services"); const testing = require("../services/mail.services");
const log = require("../utils/logs.utils");
import { logger } from "../utils/logger.utils";
async function getAlive() { async function getAlive() {
log.out("kubeServices.getAlive: alive hook checked", "info"); logger.trace("kubeServices.getAlive: alive hook checked")
return { code: 200, state: { state: "alive", noise: "twit-twoo" } }; return { code: 200, state: { state: "alive", noise: "twit-twoo" } };
} }
async function getReady() { async function getReady() {
log.out("kubeServices.getReady: ready hook checked", "info"); logger.trace("kubeServices.getReady: ready hook checked");
testing.send({ testing.send({
to: "fred@fjla.uk", to: "fred@fjla.uk",
subject: "OwlBoard Test", subject: "OwlBoard Test",

View File

@ -1,15 +1,16 @@
const log = require("../utils/logs.utils"); // Log Helper
const db = require("../services/dbAccess.services"); const db = require("../services/dbAccess.services");
import { logger } from "../utils/logger.utils";
async function getStations() { async function getStations() {
var out = db.query("stations"); var out = db.query("stations");
log.out("listServices.getStations: Fetching stations list", "info"); logger.debug("listServices.getStations: Fetching stations list");
return await out; return await out;
} }
async function getCorpus() { async function getCorpus() {
var out = db.query("corpus"); var out = db.query("corpus");
log.out("listServices.getCorpus: Fetching CORPUS list", "info"); logger.debug("listServices.getCorpus: Fetching CORPUS list");
return await out; return await out;
} }

View File

@ -1,5 +1,5 @@
const log = require("../utils/logs.utils"); const mail = require("nodemailer");
const mail = require("nodemailer"); //>> Probs wrong import { logger } from "../utils/logger.utils";
const fromAddr = process.env.OWL_EML_FROM; const fromAddr = process.env.OWL_EML_FROM;
const smtpUser = process.env.OWL_EML_USER; const smtpUser = process.env.OWL_EML_USER;
@ -20,15 +20,15 @@ let transporter = mail.createTransport({
/* 'message' is an object containing string values for: /* 'message' is an object containing string values for:
*to, cc, bcc, *subject, *txt, html. * denotes required */ *to, cc, bcc, *subject, *txt, html. * denotes required */
async function send(message) { async function send(message) {
log.out("mailServices.send: Message send request received", "info"); logger.debug("mailServices.send: Message send request received");
message.from = fromAddr; message.from = fromAddr;
try { try {
var res = await transporter.sendMail(message); var res = await transporter.sendMail(message);
} catch (err) { } catch (err) {
log.out(`mailServices.send: Message send failed: ${err}`, "err"); logger.error(err, "mailServices.send: Message send failed");
return false; return false;
} }
log.out(`mailServices.send: SMTP Response: ${res.response}`); logger.debug(res.response, "mailServices.send: SMTP Response");
return true; return true;
} }

View File

@ -1,17 +1,14 @@
// Finds PIS Codes using DB Lookups // Finds PIS Codes using DB Lookups
const db = require("../services/dbAccess.services"); const db = require("../services/dbAccess.services");
const log = require("../utils/logs.utils");
const clean = require("../utils/sanitizer.utils"); const clean = require("../utils/sanitizer.utils");
import { logger } from "../utils/logger.utils";
const supported = ["GW", "UK"]; const supported = ["GW", "UK"];
async function findPisByOrigDest(start, end) { async function findPisByOrigDest(start, end) {
log.out( logger.debug(`pisServices.findPisByOrigDest: Searching for Orig: ${start}, Dest: ${end}`);
"pisServices.findPisByOrigDest: Searching for PIS for Orig: " +
`${start}, Dest: ${end}`,
"dbug"
);
const firstCrs = clean.cleanApiEndpointTxt(start.toLowerCase()); const firstCrs = clean.cleanApiEndpointTxt(start.toLowerCase());
const lastCrs = clean.cleanApiEndpointTxt(end.toLowerCase()); const lastCrs = clean.cleanApiEndpointTxt(end.toLowerCase());
const query = { const query = {
@ -33,7 +30,7 @@ async function findPisByOrigDest(start, end) {
} }
async function findPisByCode(code) { async function findPisByCode(code) {
log.out(`pisServices.findPisByCode: Searching for PIS code: ${code}`, "dbug"); logger.debug(`pisServices.findPisByCode: Searching for PIS code: ${code}`);
const cleanCode = clean.removeNonNumeric(code); const cleanCode = clean.removeNonNumeric(code);
const query = { const query = {
code: parseInt(cleanCode), code: parseInt(cleanCode),