♻️ 重构本地数据库-onekey模块
This commit is contained in:
parent
9b71b28e46
commit
90ee38ff44
@ -1,7 +1,8 @@
|
|||||||
const { readOneKeyRecord, deleteOneKeyRecord } = require('../utils/storage')
|
const { OnekeyDB } = require('../utils/db-class')
|
||||||
|
const onekeyDB = new OnekeyDB().getInstance()
|
||||||
|
|
||||||
async function getOnekeyRecord({ res }) {
|
async function getOnekeyRecord({ res }) {
|
||||||
let data = await readOneKeyRecord()
|
let data = await onekeyDB.findAsync({})
|
||||||
data = data.map(item => {
|
data = data.map(item => {
|
||||||
return { ...item, id: item._id }
|
return { ...item, id: item._id }
|
||||||
})
|
})
|
||||||
@ -11,14 +12,11 @@ async function getOnekeyRecord({ res }) {
|
|||||||
|
|
||||||
const removeOnekeyRecord = async ({ res, request }) => {
|
const removeOnekeyRecord = async ({ res, request }) => {
|
||||||
let { body: { ids } } = request
|
let { body: { ids } } = request
|
||||||
let onekeyRecord = await readOneKeyRecord()
|
|
||||||
if (ids === 'ALL') {
|
if (ids === 'ALL') {
|
||||||
ids = onekeyRecord.map(item => item._id)
|
await onekeyDB.removeAsync({}, { multi: true })
|
||||||
await deleteOneKeyRecord(ids)
|
|
||||||
res.success({ data: '移除全部成功' })
|
res.success({ data: '移除全部成功' })
|
||||||
} else {
|
} else {
|
||||||
if (!onekeyRecord.some(item => ids.includes(item._id))) return res.fail({ msg: '批量指令记录ID不存在' })
|
await onekeyDB.removeAsync({ _id: { $in: ids } })
|
||||||
await deleteOneKeyRecord(ids)
|
|
||||||
res.success({ data: '移除成功' })
|
res.success({ data: '移除成功' })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
const { Server } = require('socket.io')
|
const { Server } = require('socket.io')
|
||||||
const { Client: SSHClient } = require('ssh2')
|
const { Client: SSHClient } = require('ssh2')
|
||||||
const { asyncSendNotice } = require('../utils/notify')
|
const { asyncSendNotice } = require('../utils/notify')
|
||||||
const { readSSHRecord, writeOneKeyRecord } = require('../utils/storage')
|
const { readSSHRecord } = require('../utils/storage')
|
||||||
const { verifyAuthSync } = require('../utils/verify-auth')
|
const { verifyAuthSync } = require('../utils/verify-auth')
|
||||||
const { shellThrottle } = require('../utils/tools')
|
const { shellThrottle } = require('../utils/tools')
|
||||||
const { AESDecryptAsync } = require('../utils/encrypt')
|
const { AESDecryptAsync } = require('../utils/encrypt')
|
||||||
const { isAllowedIp } = require('../utils/tools')
|
const { isAllowedIp } = require('../utils/tools')
|
||||||
const { HostListDB } = require('../utils/db-class')
|
const { HostListDB, OnekeyDB } = require('../utils/db-class')
|
||||||
const hostListDB = new HostListDB().getInstance()
|
const hostListDB = new HostListDB().getInstance()
|
||||||
|
const onekeyDB = new OnekeyDB().getInstance()
|
||||||
|
|
||||||
const execStatusEnum = {
|
const execStatusEnum = {
|
||||||
connecting: '连接中',
|
connecting: '连接中',
|
||||||
@ -207,7 +208,7 @@ module.exports = (httpServer) => {
|
|||||||
item.status = execStatusEnum.socketInterrupt
|
item.status = execStatusEnum.socketInterrupt
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
await writeOneKeyRecord(execResult)
|
await onekeyDB.insertAsync(execResult)
|
||||||
isExecuting = false
|
isExecuting = false
|
||||||
execResult = []
|
execResult = []
|
||||||
execClient = []
|
execClient = []
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
const { KeyDB, SshRecordDB, ScriptsDB, OnekeyDB } = require('./db-class')
|
const { KeyDB, SshRecordDB, OnekeyDB } = require('./db-class')
|
||||||
|
|
||||||
const readKey = async () => {
|
const readKey = async () => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
@ -64,53 +64,7 @@ const writeSSHRecord = async (record = []) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const readOneKeyRecord = async () => {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
const onekeyDB = new OnekeyDB().getInstance()
|
|
||||||
onekeyDB.find({}, (err, docs) => {
|
|
||||||
if (err) {
|
|
||||||
consola.error('读取onekey record错误: ', err)
|
|
||||||
reject(err)
|
|
||||||
} else {
|
|
||||||
onekeyDB.compactDatafile()
|
|
||||||
resolve(docs)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const writeOneKeyRecord = async (records =[]) => {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
const onekeyDB = new OnekeyDB().getInstance()
|
|
||||||
onekeyDB.insert(records, (err, newDocs) => {
|
|
||||||
if (err) {
|
|
||||||
consola.error('写入新的onekey记录出错:', err)
|
|
||||||
reject(err)
|
|
||||||
} else {
|
|
||||||
onekeyDB.compactDatafile()
|
|
||||||
resolve(newDocs)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const deleteOneKeyRecord = async (ids =[]) => {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
const onekeyDB = new OnekeyDB().getInstance()
|
|
||||||
onekeyDB.remove({ _id: { $in: ids } }, { multi: true }, function (err, numRemoved) {
|
|
||||||
if (err) {
|
|
||||||
consola.error('Error deleting onekey record(s):', err)
|
|
||||||
reject(err)
|
|
||||||
} else {
|
|
||||||
onekeyDB.compactDatafile()
|
|
||||||
resolve(numRemoved)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
readSSHRecord, writeSSHRecord,
|
readSSHRecord, writeSSHRecord,
|
||||||
readKey, writeKey,
|
readKey, writeKey
|
||||||
readOneKeyRecord, writeOneKeyRecord, deleteOneKeyRecord
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user