23 lines
1.1 KiB
JavaScript
23 lines
1.1 KiB
JavaScript
import { FIND_BY_PAIRINGPIN as MSSQL_FIND } from '../../providers/mssql/queries/posterminal.js';
|
|
import { FIND_BY_PAIRINGPIN as SQLITE_FIND } from '../../providers/sqlite3/queries/posterminal.js';
|
|
import makeRunner from '../runner.js';
|
|
|
|
export default function findByPairingpin(provider) {
|
|
const sql = provider?.dialect === 'sqlite3' ? SQLITE_FIND : MSSQL_FIND;
|
|
|
|
/**
|
|
* Finds a posterminal by its pairingpin.
|
|
*
|
|
* @param {string} pairingpin - The pairing pin to search for.
|
|
* @param {object} [tx] - Optional transaction to run within.
|
|
* @returns {Promise<{id: number, companyId: number, name: string, token: string|null, pairingpin: string|null, pairedAt: string|null, clientserial: string|null, maxknowntombstoneid: number|null, rootCategoryId: number|null, syncRootArticles: boolean|number, lastseenAt: string|null, updatedAt: string}|null>} The posterminal, or null if not found.
|
|
*/
|
|
return async (pairingpin, tx) => {
|
|
if (!pairingpin) return null;
|
|
const result = await makeRunner(provider, tx).query(sql, {
|
|
pairingpin: String(pairingpin).trim(),
|
|
});
|
|
return result.rows[0] || null;
|
|
};
|
|
}
|