Some basic call logging (timestamp, caller, callee)
This commit is contained in:
parent
7c7d96fbfd
commit
a1fdfbf8e0
18
index.js
18
index.js
|
@ -127,7 +127,7 @@ const dailyAnalytic = (tag) => { // This is a bit more complex, but it's just a
|
|||
});
|
||||
}
|
||||
|
||||
app.use((req,res,next) => {
|
||||
app.use((req, res, next) => {
|
||||
if (req.path.startsWith("/api/v1")) {
|
||||
addAnalytic("apiCalls");
|
||||
};
|
||||
|
@ -542,7 +542,7 @@ app.get("/api/v1/directory", (req, res) => {
|
|||
});
|
||||
|
||||
// Other public endpoints that need special handling
|
||||
discordInviteCache = {time: 0, url: ""};
|
||||
discordInviteCache = { time: 0, url: "" };
|
||||
|
||||
app.get("/discord", (req, res) => {
|
||||
// fetch from process.env.WIDGET_URL, get json body, redirect to body.instant_invite. Cache url for 5 minutes
|
||||
|
@ -577,14 +577,14 @@ app.get("/analytics", (req, res) => {
|
|||
return;
|
||||
}
|
||||
// Find the latest date and add "current:true" to it
|
||||
var latest = {tag_date: "1970-01-01", count: 0};
|
||||
var latest = { tag_date: "1970-01-01", count: 0 };
|
||||
daily.forEach((entry) => {
|
||||
if (entry.tag_date > latest.tag_date) {
|
||||
latest = entry;
|
||||
}
|
||||
});
|
||||
latest.current = true;
|
||||
res.json({total, daily});
|
||||
res.json({ total, daily });
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -622,6 +622,14 @@ app.get("/api/healthcheck", (req, res) => {
|
|||
});
|
||||
});
|
||||
|
||||
// logCall function (caller, callee)
|
||||
const logCall = (caller, callee) => {
|
||||
db.run('INSERT INTO callLogs (caller, callee, timestamp) VALUES (?, ?, ?)',
|
||||
[caller, callee, Math.floor(Date.now() / 1000)],
|
||||
(err) => {
|
||||
if (err) console.error('Error logging call:', err);
|
||||
});
|
||||
}
|
||||
|
||||
// Query to get a route
|
||||
app.get('/api/v1/route/:apiKey/:ani/:number', (req, res) => {
|
||||
|
@ -643,6 +651,7 @@ app.get('/api/v1/route/:apiKey/:ani/:number', (req, res) => {
|
|||
// Check if the ANI is within the block range
|
||||
// If it is, return `local`
|
||||
console.log(`New Call: ${ani} -> ${number}`);
|
||||
logCall(ani, number);
|
||||
// incriment estCallsMade analytics
|
||||
addAnalytic("estCallsMade");
|
||||
dailyAnalytic("dailyCallsMade");
|
||||
|
@ -677,6 +686,7 @@ app.get('/api/v1', (req, res) => { // Backwards compatibility with TandmX cause
|
|||
// Check if the ANI is within the block range
|
||||
// If it is, return `local`
|
||||
console.log(`New Call: ${ani} -> ${number}`);
|
||||
logCall(ani, number);
|
||||
addAnalytic("estCallsMade");
|
||||
dailyAnalytic("dailyCallsMade");
|
||||
if (ani >= row.block_start && ani <= row.block_start + row.block_length) {
|
||||
|
|
6
migrations/006_gen_callLogs_table.sql
Normal file
6
migrations/006_gen_callLogs_table.sql
Normal file
|
@ -0,0 +1,6 @@
|
|||
CREATE TABLE callLogs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
timestamp TEXT NOT NULL,
|
||||
caller TEXT NOT NULL,
|
||||
callee TEXT NOT NULL
|
||||
);
|
Loading…
Reference in a new issue