36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
const uuid = require('uuid')
|
|
|
|
const db = require('./db')
|
|
|
|
function createHardwareCredential (userID, credentialData) {
|
|
const sql = `INSERT INTO hardware_credentials (id, user_id, data) VALUES ($1, $2, $3)`
|
|
return db.none(sql, [uuid.v4(), userID, credentialData])
|
|
}
|
|
|
|
function getHardwareCredentials () {
|
|
const sql = `SELECT * FROM hardware_credentials`
|
|
return db.any(sql)
|
|
}
|
|
|
|
function getHardwareCredentialsByUserId (userID) {
|
|
const sql = `SELECT * FROM hardware_credentials WHERE user_id=$1`
|
|
return db.any(sql, [userID])
|
|
}
|
|
|
|
function getUserByUserHandle (userHandle) {
|
|
const sql = `SELECT users.id, users.username, users.role FROM users INNER JOIN hardware_credentials hc ON users.id=hc.user_id WHERE data->>'userHandle'=$1::jsonb::text`
|
|
return db.oneOrNone(sql, [userHandle])
|
|
}
|
|
|
|
function updateHardwareCredential (credential) {
|
|
const sql = `UPDATE hardware_credentials SET last_used=now(), data=$1 WHERE id=$2`
|
|
return db.none(sql, [credential.data, credential.id])
|
|
}
|
|
|
|
module.exports = {
|
|
createHardwareCredential,
|
|
getHardwareCredentials,
|
|
getHardwareCredentialsByUserId,
|
|
getUserByUserHandle,
|
|
updateHardwareCredential
|
|
}
|