providerrefactor part1

This commit is contained in:
seb
2026-09-21 03:33:55 +02:00
parent 53a20c4353
commit 4ed6260e91
57 changed files with 1662 additions and 145 deletions

View File

@@ -1,6 +1,8 @@
import { ADD } from '../../providers/mssql/queries/google_auth.js';
import { ADD as MSSQL_ADD } from '../../providers/mssql/queries/google_auth.js';
import { ADD as SQLITE_ADD } from '../../providers/sqlite3/queries/google_auth.js';
export default function add(pool) {
export default function add(provider) {
const sql = provider.dialect === 'sqlite3' ? SQLITE_ADD : MSSQL_ADD;
/**
* Adds a new allowed Google auth email.
*
@@ -12,11 +14,7 @@ export default function add(pool) {
* // => 1
*/
return async (email) => {
const result = await pool
.request()
.input('email', email)
.query(ADD);
return result.recordset[0].id;
const result = await provider.query(sql, { email });
return result.rows[0]?.id ?? result.insertId;
};
}

View File

@@ -1,6 +1,8 @@
import { GET_BY_EMAIL } from '../../providers/mssql/queries/google_auth.js';
import { GET_BY_EMAIL as MSSQL_GET } from '../../providers/mssql/queries/google_auth.js';
import { GET_BY_EMAIL as SQLITE_GET } from '../../providers/sqlite3/queries/google_auth.js';
export default function getByEmail(pool) {
export default function getByEmail(provider) {
const sql = provider.dialect === 'sqlite3' ? SQLITE_GET : MSSQL_GET;
/**
* Returns a Google auth row by email.
*
@@ -12,11 +14,7 @@ export default function getByEmail(pool) {
* // => { id, email, ... }
*/
return async (email) => {
const result = await pool
.request()
.input('email', email)
.query(GET_BY_EMAIL);
return result.recordset[0];
const result = await provider.query(sql, { email });
return result.rows[0];
};
}

View File

@@ -1,6 +1,8 @@
import { GET_BY_ID } from '../../providers/mssql/queries/google_auth.js';
import { GET_BY_ID as MSSQL_GET } from '../../providers/mssql/queries/google_auth.js';
import { GET_BY_ID as SQLITE_GET } from '../../providers/sqlite3/queries/google_auth.js';
export default function getById(pool) {
export default function getById(provider) {
const sql = provider.dialect === 'sqlite3' ? SQLITE_GET : MSSQL_GET;
/**
* Returns a Google auth row by its id.
*
@@ -12,11 +14,7 @@ export default function getById(pool) {
* // => { id, email, ... }
*/
return async (googleAuthId) => {
const result = await pool
.request()
.input('googleAuthId', googleAuthId)
.query(GET_BY_ID);
return result.recordset[0];
const result = await provider.query(sql, { googleAuthId });
return result.rows[0];
};
}

View File

@@ -1,6 +1,8 @@
import { LIST_ALLOWED_EMAILS } from '../../providers/mssql/queries/google_auth.js';
import { LIST_ALLOWED_EMAILS as MSSQL_LIST } from '../../providers/mssql/queries/google_auth.js';
import { LIST_ALLOWED_EMAILS as SQLITE_LIST } from '../../providers/sqlite3/queries/google_auth.js';
export default function listAllowedEmails(pool) {
export default function listAllowedEmails(provider) {
const sql = provider.dialect === 'sqlite3' ? SQLITE_LIST : MSSQL_LIST;
/**
* Lists all allowed Google auth emails.
*
@@ -11,7 +13,7 @@ export default function listAllowedEmails(pool) {
* // => [{ id, email }]
*/
return async () => {
const result = await pool.request().query(LIST_ALLOWED_EMAILS);
return result.recordset;
const result = await provider.query(sql);
return result.rows;
};
}

View File

@@ -1,6 +1,8 @@
import { REMOVE_ALLOWED_EMAIL } from '../../providers/mssql/queries/google_auth.js';
import { REMOVE_ALLOWED_EMAIL as MSSQL_REMOVE } from '../../providers/mssql/queries/google_auth.js';
import { REMOVE_ALLOWED_EMAIL as SQLITE_REMOVE } from '../../providers/sqlite3/queries/google_auth.js';
export default function removeAllowedEmail(pool) {
export default function removeAllowedEmail(provider) {
const sql = provider.dialect === 'sqlite3' ? SQLITE_REMOVE : MSSQL_REMOVE;
/**
* Removes an allowed Google auth email.
*
@@ -11,9 +13,6 @@ export default function removeAllowedEmail(pool) {
* await store.google_auth.removeAllowedEmail('user@example.com');
*/
return async (email) => {
await pool
.request()
.input('email', email)
.query(REMOVE_ALLOWED_EMAIL);
await provider.query(sql, { email });
};
}

View File

@@ -1,6 +1,8 @@
import { SET_PROFILE } from '../../providers/mssql/queries/google_auth.js';
import { SET_PROFILE as MSSQL_SET } from '../../providers/mssql/queries/google_auth.js';
import { SET_PROFILE as SQLITE_SET } from '../../providers/sqlite3/queries/google_auth.js';
export default function setProfile(pool) {
export default function setProfile(provider) {
const sql = provider.dialect === 'sqlite3' ? SQLITE_SET : MSSQL_SET;
/**
* Updates the profile (picture, picture binary, sub) of a Google auth user.
*
@@ -23,15 +25,14 @@ export default function setProfile(pool) {
throw new Error('Invalid pictureBinary');
}
const result = await pool
.request()
.input('googleAuthId', googleAuthId)
.input('picture', picture)
.input('pictureBinary', pictureBinary)
.input('sub', sub)
.query(SET_PROFILE);
const result = await provider.query(sql, {
googleAuthId,
picture,
pictureBinary,
sub,
});
if (!result.rowsAffected[0]) {
if (!result.rowsAffected) {
throw new Error('User not found');
}
};

View File

@@ -1,6 +1,8 @@
import { SET_SELECTED_COMPANY } from '../../providers/mssql/queries/google_auth.js';
import { SET_SELECTED_COMPANY as MSSQL_SET } from '../../providers/mssql/queries/google_auth.js';
import { SET_SELECTED_COMPANY as SQLITE_SET } from '../../providers/sqlite3/queries/google_auth.js';
export default function setSelectedCompany(pool) {
export default function setSelectedCompany(provider) {
const sql = provider.dialect === 'sqlite3' ? SQLITE_SET : MSSQL_SET;
/**
* Sets the currently selected company for a Google auth user.
*
@@ -12,10 +14,6 @@ export default function setSelectedCompany(pool) {
* await store.google_auth.setSelectedCompany(42, 1);
*/
return async (googleAuthId, companyId) => {
await pool
.request()
.input('googleAuthId', googleAuthId)
.input('companyId', companyId)
.query(SET_SELECTED_COMPANY);
await provider.query(sql, { googleAuthId, companyId });
};
}