♻️ 重构本地数据库-log模块

This commit is contained in:
chaos-zhu 2024-10-22 22:02:05 +08:00
parent 5437486eba
commit dafb2cc5c9
3 changed files with 9 additions and 114 deletions

View File

@ -1,9 +1,10 @@
const { readLog } = require('../utils/storage')
const { LogDB } = require('../utils/db-class')
const logDB = new LogDB().getInstance()
let whiteList = process.env.ALLOWED_IPS ? process.env.ALLOWED_IPS.split(',') : []
async function getLog({ res }) {
let list = await readLog()
let list = await logDB.findAsync({})
list = list.map(item => {
return { ...item, id: item._id }
})

View File

@ -1,9 +1,11 @@
const jwt = require('jsonwebtoken')
const axios = require('axios')
const { asyncSendNotice } = require('../utils/notify')
const { readKey, writeKey, writeLog } = require('../utils/storage')
const { readKey, writeKey } = require('../utils/storage')
const { RSADecryptAsync, AESEncryptAsync, SHA1Encrypt } = require('../utils/encrypt')
const { getNetIPInfo } = require('../utils/tools')
const { LogDB } = require('../utils/db-class')
const logDB = new LogDB().getInstance()
const getpublicKey = async ({ res }) => {
let { publicKey: data } = await readKey()
@ -86,7 +88,7 @@ const beforeLoginHandler = async (clientIp, jwtExpires) => {
// 邮件登录通知
asyncSendNotice('login', '登录提醒', `地点:${ country + city }\nIP: ${ ip }`)
await writeLog({ ip, country, city, date: Date.now(), type: 'login' })
await logDB.insertAsync({ ip, country, city, date: Date.now(), type: 'login' })
return token
}

View File

@ -1,4 +1,4 @@
const { KeyDB, HostListDB, SshRecordDB, NotifyDB, NotifyConfigDB, ScriptsDB, GroupDB, OnekeyDB, LogDB } = require('./db-class')
const { KeyDB, SshRecordDB, NotifyDB, NotifyConfigDB, ScriptsDB, OnekeyDB } = require('./db-class')
const readKey = async () => {
return new Promise((resolve, reject) => {
@ -64,44 +64,6 @@ const writeSSHRecord = async (record = []) => {
})
}
// const readHostList = async () => {
// return new Promise((resolve, reject) => {
// const hostListDB = new HostListDB().getInstance()
// hostListDB.find({}, (err, docs) => {
// if (err) {
// consola.error('读取host-list-db错误:', err)
// reject(err)
// } else {
// resolve(docs)
// }
// })
// })
// }
// const writeHostList = async (record = []) => {
// return new Promise((resolve, reject) => {
// const hostListDB = new HostListDB().getInstance()
// hostListDB.remove({}, { multi: true }, (err) => {
// if (err) {
// consola.error('清空HostList出错:', err)
// reject(err)
// } else {
// hostListDB.compactDatafile()
// // 插入新的数据列表
// hostListDB.insert(record, (err, newDocs) => {
// if (err) {
// consola.error('写入新的HostList出错:', err)
// reject(err)
// } else {
// hostListDB.compactDatafile()
// resolve(newDocs)
// }
// })
// }
// })
// })
// }
const readNotifyConfig = async () => {
return new Promise((resolve, reject) => {
const notifyConfigDB = new NotifyConfigDB().getInstance()
@ -178,43 +140,6 @@ const writeNotifyList = async (notifyList) => {
})
}
// const readGroupList = async () => {
// return new Promise((resolve, reject) => {
// const groupDB = new GroupDB().getInstance()
// groupDB.find({}, (err, docs) => {
// if (err) {
// consola.error('读取group list错误: ', err)
// reject(err)
// } else {
// resolve(docs)
// }
// })
// })
// }
// const writeGroupList = async (list = []) => {
// return new Promise((resolve, reject) => {
// const groupDB = new GroupDB().getInstance()
// groupDB.remove({}, { multi: true }, (err) => {
// if (err) {
// consola.error('清空group list出错:', err)
// reject(err)
// } else {
// groupDB.compactDatafile()
// groupDB.insert(list, (err, newDocs) => {
// if (err) {
// consola.error('写入新的group list出错:', err)
// reject(err)
// } else {
// groupDB.compactDatafile()
// resolve(newDocs)
// }
// })
// }
// })
// })
// }
const readScriptList = async () => {
return new Promise((resolve, reject) => {
const scriptsDB = new ScriptsDB().getInstance()
@ -297,44 +222,11 @@ const deleteOneKeyRecord = async (ids =[]) => {
})
}
const readLog = async () => {
return new Promise((resolve, reject) => {
const logDB = new LogDB().getInstance()
logDB.find({}, (err, docs) => {
if (err) {
consola.error('读取log DB错误: ', err)
reject(err)
} else {
logDB.compactDatafile()
resolve(docs)
}
})
})
}
const writeLog = async (records = {}) => {
return new Promise((resolve, reject) => {
const logDB = new LogDB().getInstance()
logDB.insert(records, (err, newDocs) => {
if (err) {
consola.error('写入新的onekey记录出错:', err)
reject(err)
} else {
logDB.compactDatafile()
resolve(newDocs)
}
})
})
}
module.exports = {
readSSHRecord, writeSSHRecord,
// readHostList, writeHostList,
readKey, writeKey,
readNotifyList, writeNotifyList,
readNotifyConfig, writeNotifyConfig, getNotifySwByType,
// readGroupList, writeGroupList,
readScriptList, writeScriptList,
readOneKeyRecord, writeOneKeyRecord, deleteOneKeyRecord,
readLog, writeLog
readOneKeyRecord, writeOneKeyRecord, deleteOneKeyRecord
}