Files
mercado.clube67.com/backend/plugins/config.js
T

44 lines
1.0 KiB
JavaScript

'use strict'
const { execute, queryOne, query } = require('../database/postgres')
class PluginConfigStore {
constructor(pluginId) {
this.pluginId = pluginId
}
async get(key) {
const row = await queryOne(
'SELECT value FROM plugin_configs WHERE plugin_id = $1 AND key = $2',
[this.pluginId, key]
)
return row ? row.value : null
}
async set(key, value) {
const val = value === null ? null : String(value)
await execute(
`INSERT INTO plugin_configs (plugin_id, key, value) VALUES ($1, $2, $3)
ON CONFLICT (plugin_id, key) DO UPDATE SET value = EXCLUDED.value`,
[this.pluginId, key, val]
)
}
async getAll() {
const rows = await query(
'SELECT key, value FROM plugin_configs WHERE plugin_id = $1',
[this.pluginId]
)
return Object.fromEntries(rows.map((r) => [r.key, r.value]))
}
async delete(key) {
await execute(
'DELETE FROM plugin_configs WHERE plugin_id = $1 AND key = $2',
[this.pluginId, key]
)
}
}
module.exports = PluginConfigStore