time, status, error history, running sessions, sessions history, private page with key, added
This commit is contained in:
+108
-1
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user