♻️ 重构本地数据库-scripts模块
This commit is contained in:
parent
98d44e8ab4
commit
9b71b28e46
@ -1,13 +1,14 @@
|
|||||||
const localShellJson = require('../config/shell.json')
|
const localShellJson = require('../config/shell.json')
|
||||||
const { readScriptList, writeScriptList } = require('../utils/storage')
|
|
||||||
const { randomStr } = require('../utils/tools')
|
const { randomStr } = require('../utils/tools')
|
||||||
|
const { ScriptsDB } = require('../utils/db-class')
|
||||||
|
const scriptsDB = new ScriptsDB().getInstance()
|
||||||
|
|
||||||
let localShell = JSON.parse(JSON.stringify(localShellJson)).map((item) => {
|
let localShell = JSON.parse(JSON.stringify(localShellJson)).map((item) => {
|
||||||
return { ...item, id: randomStr(10), index: '--', description: item.description + '|内置脚本' }
|
return { ...item, id: randomStr(10), index: '--', description: item.description + '|内置脚本' }
|
||||||
})
|
})
|
||||||
|
|
||||||
async function getScriptList({ res }) {
|
async function getScriptList({ res }) {
|
||||||
let data = await readScriptList()
|
let data = await scriptsDB.findAsync({})
|
||||||
data = data.map(item => {
|
data = data.map(item => {
|
||||||
return { ...item, id: item._id }
|
return { ...item, id: item._id }
|
||||||
})
|
})
|
||||||
@ -24,10 +25,8 @@ const addScript = async ({ res, request }) => {
|
|||||||
let { body: { name, description, command, index } } = request
|
let { body: { name, description, command, index } } = request
|
||||||
if (!name || !command) return res.fail({ data: false, msg: '参数错误' })
|
if (!name || !command) return res.fail({ data: false, msg: '参数错误' })
|
||||||
index = Number(index) || 0
|
index = Number(index) || 0
|
||||||
let scriptsList = await readScriptList()
|
|
||||||
let record = { name, description, command, index }
|
let record = { name, description, command, index }
|
||||||
scriptsList.push(record)
|
await scriptsDB.insertAsync(record)
|
||||||
await writeScriptList(scriptsList)
|
|
||||||
res.success({ data: '添加成功' })
|
res.success({ data: '添加成功' })
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,23 +34,13 @@ const updateScriptList = async ({ res, request }) => {
|
|||||||
let { params: { id } } = request
|
let { params: { id } } = request
|
||||||
let { body: { name, description, command, index } } = request
|
let { body: { name, description, command, index } } = request
|
||||||
if (!name || !command) return res.fail({ data: false, msg: '参数错误' })
|
if (!name || !command) return res.fail({ data: false, msg: '参数错误' })
|
||||||
let scriptsList = await readScriptList()
|
await scriptsDB.updateAsync({ _id: id }, { name, description, command, index })
|
||||||
let idx = scriptsList.findIndex(item => item._id === id)
|
|
||||||
if (idx === -1) return res.fail({ data: false, msg: `脚本ID${ id }不存在` })
|
|
||||||
const { _id } = scriptsList[idx]
|
|
||||||
let record = Object.assign({ _id }, { name, description, command, index })
|
|
||||||
scriptsList.splice(idx, 1, record)
|
|
||||||
await writeScriptList(scriptsList)
|
|
||||||
res.success({ data: '修改成功' })
|
res.success({ data: '修改成功' })
|
||||||
}
|
}
|
||||||
|
|
||||||
const removeScript = async ({ res, request }) => {
|
const removeScript = async ({ res, request }) => {
|
||||||
let { params: { id } } = request
|
let { params: { id } } = request
|
||||||
let scriptsList = await readScriptList()
|
await scriptsDB.removeAsync({ _id: id })
|
||||||
let idx = scriptsList.findIndex(item => item._id === id)
|
|
||||||
if (idx === -1) return res.fail({ msg: '脚本ID不存在' })
|
|
||||||
scriptsList.splice(idx, 1)
|
|
||||||
await writeScriptList(scriptsList)
|
|
||||||
res.success({ data: '移除成功' })
|
res.success({ data: '移除成功' })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
const { KeyDB, SshRecordDB, NotifyDB, NotifyConfigDB, ScriptsDB, OnekeyDB } = require('./db-class')
|
const { KeyDB, SshRecordDB, ScriptsDB, OnekeyDB } = require('./db-class')
|
||||||
|
|
||||||
const readKey = async () => {
|
const readKey = async () => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
@ -64,55 +64,6 @@ const writeSSHRecord = async (record = []) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// const getNotifySwByType = async (type) => {
|
|
||||||
// if (!type) throw Error('missing params: type')
|
|
||||||
// try {
|
|
||||||
// let notifyList = await readNotifyList()
|
|
||||||
// let { sw } = notifyList.find((item) => item.type === type)
|
|
||||||
// return sw
|
|
||||||
// } catch (error) {
|
|
||||||
// consola.error(`通知类型[${ type }]不存在`)
|
|
||||||
// return false
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
const readScriptList = async () => {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
const scriptsDB = new ScriptsDB().getInstance()
|
|
||||||
scriptsDB.find({}, (err, docs) => {
|
|
||||||
if (err) {
|
|
||||||
consola.error('读取scripts list错误: ', err)
|
|
||||||
reject(err)
|
|
||||||
} else {
|
|
||||||
resolve(docs)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const writeScriptList = async (list = []) => {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
const scriptsDB = new ScriptsDB().getInstance()
|
|
||||||
scriptsDB.remove({}, { multi: true }, (err) => {
|
|
||||||
if (err) {
|
|
||||||
consola.error('清空scripts list出错:', err)
|
|
||||||
reject(err)
|
|
||||||
} else {
|
|
||||||
scriptsDB.compactDatafile()
|
|
||||||
scriptsDB.insert(list, (err, newDocs) => {
|
|
||||||
if (err) {
|
|
||||||
consola.error('写入新的group list出错:', err)
|
|
||||||
reject(err)
|
|
||||||
} else {
|
|
||||||
scriptsDB.compactDatafile()
|
|
||||||
resolve(newDocs)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const readOneKeyRecord = async () => {
|
const readOneKeyRecord = async () => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const onekeyDB = new OnekeyDB().getInstance()
|
const onekeyDB = new OnekeyDB().getInstance()
|
||||||
@ -161,6 +112,5 @@ const deleteOneKeyRecord = async (ids =[]) => {
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
readSSHRecord, writeSSHRecord,
|
readSSHRecord, writeSSHRecord,
|
||||||
readKey, writeKey,
|
readKey, writeKey,
|
||||||
readScriptList, writeScriptList,
|
|
||||||
readOneKeyRecord, writeOneKeyRecord, deleteOneKeyRecord
|
readOneKeyRecord, writeOneKeyRecord, deleteOneKeyRecord
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ const useStore = defineStore({
|
|||||||
localScriptList: [],
|
localScriptList: [],
|
||||||
HostStatusSocket: null,
|
HostStatusSocket: null,
|
||||||
user: localStorage.getItem('user') || null,
|
user: localStorage.getItem('user') || null,
|
||||||
token: sessionStorage.getItem('token') || localStorage.getItem('token') || null,
|
token: localStorage.getItem('token') || sessionStorage.getItem('token') || null,
|
||||||
title: '',
|
title: '',
|
||||||
isDark: false,
|
isDark: false,
|
||||||
menuCollapse: localStorage.getItem('menuCollapse') === 'true',
|
menuCollapse: localStorage.getItem('menuCollapse') === 'true',
|
||||||
|
@ -142,6 +142,7 @@ onMounted(async () => {
|
|||||||
const { data } = await $api.getPubPem()
|
const { data } = await $api.getPubPem()
|
||||||
if (!data) return (notKey.value = true)
|
if (!data) return (notKey.value = true)
|
||||||
localStorage.setItem('publicKey', data)
|
localStorage.setItem('publicKey', data)
|
||||||
|
$store.removeJwtToken()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user