time, status, error history, running sessions, sessions history, private page with key, added

This commit is contained in:
2023-04-03 12:37:34 +03:00
parent 654907f1de
commit 1e0d1002d7
10 changed files with 268 additions and 4 deletions
+108 -1
View File
@@ -1,6 +1,7 @@
const { MongoClient } = require("mongodb")
const { database_url, database_name } = require('../../config')
const crypto = require("crypto")
const time = require('../modules/time')
let max_database_connection_timeout = 1000
const client = new MongoClient(database_url, {
@@ -38,6 +39,15 @@ const get_titles_for_language = async (start, count, language) => {
return (!titles.length) ? null : titles
}
const get_private_title_with_key = async (key) => {
var db = await get_db()
if (!db) {
return null
}
var titles = await db.collection('private_title').find({key:key}).toArray()
return (!titles.length) ? null : titles[0]
}
const get_free_session_servers = async (title) => {
var db = await get_db()
if (!db) {
@@ -122,6 +132,95 @@ const get_session_websocket_url = async (session_id) => {
return session.websocket_url
}
const get_statuses = async () => {
var db = await get_db()
if (!db) {
return null
}
var statuses = await db.collection('status').find().toArray()
return (!statuses.length) ? null : statuses
}
const get_all_session_servers = async () => {
var db = await get_db()
if (!db) {
return null
}
var servers = await db.collection('session_server').find().toArray()
if (!servers.length) {
return null
}
return servers
}
const add_error = async (error_message) => {
var db = await get_db()
if (!db) {
return false
}
var error_collection = db.collection('error')
await error_collection.insertOne({error_message:error_message, time: time.get_date_time()})
return true
}
const get_errors = async () => {
var db = await get_db()
if (!db) {
return null
}
var errors = await db.collection('error').find().toArray()
return (!errors.length) ? null : errors
}
const get_all_active_sessions = async () => {
var db = await get_db()
if (!db) {
return null
}
var active_sessions = await db.collection('active_session').find().toArray()
if (!active_sessions.length) {
return null
}
return active_sessions
}
const add_session_to_history = async (server_url, session_id, websocket_url) => {
var db = await get_db()
if (!db) {
return false
}
var session_history = db.collection('session_history')
await session_history.insertOne({
server_url: server_url,
session_id: session_id,
websocket_url: websocket_url,
time: time.get_date_time()
})
return true
}
const get_all_session_history = async () => {
var db = await get_db()
if (!db) {
return null
}
var session_history = await db.collection('session_history').find().toArray()
if (!session_history.length) {
return null
}
return session_history
}
module.exports = {
get_titles,
get_free_session_servers,
@@ -129,5 +228,13 @@ module.exports = {
generate_session_id,
remove_active_session,
get_session_websocket_url,
get_titles_for_language
get_titles_for_language,
get_private_title_with_key,
get_statuses,
get_all_session_servers,
add_error,
get_errors,
get_all_active_sessions,
add_session_to_history,
get_all_session_history
}