generated from azures04/Base-REST-API
Add MariaDB integration and repositories
Introduce DB support and repos: add modules/database.js (connection pool + runDDL) and SQL DDL files (data/ddl/*) for servers, users, providers, identities and credentials. Add repository layers: users, servers, providers, identities, credentials. Update server.js to run DDL at startup. Update .env.example with DB settings and bump dependencies in package.json/package-lock.json (add mariadb, bump dotenv/helmet/path-to-regexp/zod and dev tool upgrades). Error handling and logging included for DDL and repo operations.
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
const { pool } = require("../modules/database")
|
||||
const { DefaultError } = require("../errors/errors")
|
||||
|
||||
async function findByUserId(userId) {
|
||||
try {
|
||||
const sql = "SELECT* FROM credentials WHERE userId = ?"
|
||||
const rows = await pool.query(sql, [userId])
|
||||
return rows[0] || null
|
||||
} catch (error) {
|
||||
throw new DefaultError(500, "Internal Server Error", error)
|
||||
}
|
||||
}
|
||||
|
||||
async function create(userId, hashedPassword) {
|
||||
try {
|
||||
const sql = "INSERT INTO credentials (userId, hashedPassword) VALUES (?, ?)"
|
||||
const rows = await pool.query(sql, [userId, hashedPassword])
|
||||
return rows[0] || null
|
||||
} catch (error) {
|
||||
throw new DefaultError(500, "Internal Server Error", error)
|
||||
}
|
||||
}
|
||||
|
||||
async function updatePassword(userId, hashedPassword) {
|
||||
try {
|
||||
const sql = "UPDATE credentials SET hashedPassword = ? WHERE userId = ?"
|
||||
const rows = await pool.query(sql, [hashedPassword, userId])
|
||||
return rows.affectedRows > 0
|
||||
} catch (error) {
|
||||
throw new DefaultError(500, "Internal Server Error", error)
|
||||
}
|
||||
}
|
||||
|
||||
async function remove(id) {
|
||||
try {
|
||||
const sql = "DELETE FROM credentials WHERE userId = ?"
|
||||
const rows = await pool.query(sql, [id])
|
||||
return rows.affectedRows > 0
|
||||
} catch (error) {
|
||||
throw new DefaultError(500, "Internal Server Error", error)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
create,
|
||||
remove,
|
||||
findByUserId,
|
||||
updatePassword,
|
||||
}
|
||||
Reference in New Issue
Block a user