From 69318a2dad19bd77e14aad32e0378b9e605d414a Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Wed, 3 Apr 2024 20:03:31 +0000 Subject: [PATCH] update backend interfaces --- src/backends/backends.js | 37 +++++++++++++++++++------------------ src/backends/localdb.js | 14 +++++++------- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/src/backends/backends.js b/src/backends/backends.js index 07fc53c..5eb0f66 100644 --- a/src/backends/backends.js +++ b/src/backends/backends.js @@ -31,7 +31,7 @@ export default async () => { * Interface for all backend types. Contains only two methods for opening and closing a session with the backend. * Users will recieve tokens from all backends when first authenticating and will delete tokens when logging out. */ -export class BACKEND { +class BACKEND { /** * Opens a session with the backend and creates session tokens if needed * @param {Object} credentials object containing username and password fields @@ -59,24 +59,10 @@ export class BACKEND { } /** - * Interface for proxmox api backends. + * Interface for backend types that store/interact with user & group data. + * Not all backends need to implement all interface methods. */ -export class PVE_BACKEND extends BACKEND {} - -/** - * Interface for user database backends. - */ -export class DB_BACKEND extends BACKEND { - addUser (username, config = null) {} - getUser (username) {} - setUser (username, config) {} - deluser (username) {} -} - -/** - * Interface for user auth backends. - */ -export class AUTH_BACKEND extends BACKEND { +class USER_BACKEND extends BACKEND { addUser (username, attributes, params = null) {} getUser (username, params = null) {} setUser (username, attributes, params = null) {} @@ -90,3 +76,18 @@ export class AUTH_BACKEND extends BACKEND { addUserToGroup (username, groupname, params = null) {} delUserFromGroup (username, groupname, params = null) {} } + +/** + * Interface for proxmox api backends. + */ +export class PVE_BACKEND extends BACKEND {} + +/** + * Interface for user database backends. + */ +export class DB_BACKEND extends USER_BACKEND {} + +/** + * Interface for user auth backends. + */ +export class AUTH_BACKEND extends USER_BACKEND {} diff --git a/src/backends/localdb.js b/src/backends/localdb.js index 52b46aa..f7c2717 100644 --- a/src/backends/localdb.js +++ b/src/backends/localdb.js @@ -35,13 +35,13 @@ export default class LocalDB extends DB_BACKEND { writeFileSync(this.#path, JSON.stringify(this.#data)); } - addUser (username, config = null) { - config = config || this.#defaultuser; - this.#data.users[username] = config; + addUser (username, attributes, params = null) { + attributes = attributes || this.#defaultuser; + this.#data.users[username] = attributes; this.#save(); } - getUser (username) { + getUser (username, params = null) { if (this.#data.users[username]) { return this.#data.users[username]; } @@ -50,9 +50,9 @@ export default class LocalDB extends DB_BACKEND { } } - setUser (username, config) { + setUser (username, attributes, params = null) { if (this.#data.users[username]) { - this.#data.users[username] = config; + this.#data.users[username] = attributes; this.#save(); return true; } @@ -61,7 +61,7 @@ export default class LocalDB extends DB_BACKEND { } } - delUser (username) { + delUser (username, params = null) { if (this.#data.users[username]) { delete this.#data.users[username]; this.#save();