This commit is contained in:
seb
2026-07-31 07:22:34 +02:00
parent 02bca8e236
commit bbd69e8c7c
29 changed files with 144 additions and 87 deletions

View File

@@ -1,12 +1,11 @@
import sql from 'mssql';
import { CREATE } from '../../sql/category.js';
export default function create(pool) {
return async ({ parentId, sort }) => {
const result = await pool
.request()
.input('parentId', sql.Int, parentId)
.input('sort', sql.Int, sort)
.input('parentId', parentId)
.input('sort', sort)
.query(CREATE);
return result.recordset[0].id;

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { DELETE } from '../../sql/category.js';
export default function del(pool) {
return async (id) => {
await pool
.request()
.input('id', sql.Int, id)
.input('id', id)
.query(DELETE);
};
}

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { GET_TREE } from '../../sql/category.js';
export default function getTree(pool) {
return async (rootId) => {
const result = await pool
.request()
.input('rootId', sql.Int, rootId)
.input('rootId', rootId)
.query(GET_TREE);
return result.recordset;

View File

@@ -1,12 +1,11 @@
import sql from 'mssql';
import { UPDATE_PARENT_ID } from '../../sql/category.js';
export default function updateParentId(pool) {
return async (id, parentId) => {
await pool
.request()
.input('id', sql.Int, id)
.input('parentId', sql.Int, parentId)
.input('id', id)
.input('parentId', parentId)
.query(UPDATE_PARENT_ID);
};
}

View File

@@ -1,6 +1,6 @@
import sql from 'mssql';
import { CREATE } from '../../sql/company.js';
import { CREATE as CREATE_CATEGORY } from '../../sql/category.js';
import { ADD as ADD_COMPANYUSER } from '../../sql/companyuser.js';
import getByName from './getByName.js';
import langEnsure from '../lang/ensure.js';
import taxEnsure from '../tax/ensure.js';
@@ -11,8 +11,8 @@ export default function create(pool) {
const ensureLang = langEnsure(pool);
const ensureTax = taxEnsure(pool);
return async ({ iso639, name, taxrate, reducedtaxrate }) => {
const tx = new sql.Transaction(pool);
return async ({ iso639, name, taxrate, reducedtaxrate, authId }) => {
const tx = pool.transaction();
await tx.begin();
try {
@@ -27,25 +27,32 @@ export default function create(pool) {
const taxfreerateId = await ensureTax(0, tx);
const category = await request(pool, tx)
.input('parentId', sql.Int, null)
.input('sort', sql.Int, 0)
.input('parentId', null)
.input('sort', 0)
.query(CREATE_CATEGORY);
const rootCategoryId = category.recordset[0].id;
const result = await request(pool, tx)
.input('name', sql.NVarChar(255), name)
.input('rootCategoryId', sql.Int, rootCategoryId)
.input('languageId', sql.Int, languageId)
.input('taxrate', sql.Int, taxrateId)
.input('reducedtaxrate', sql.Int, reducedtaxrateId)
.input('taxfreerate', sql.Int, taxfreerateId)
.input('name', name)
.input('rootCategoryId', rootCategoryId)
.input('languageId', languageId)
.input('taxrate', taxrateId)
.input('reducedtaxrate', reducedtaxrateId)
.input('taxfreerate', taxfreerateId)
.query(CREATE);
const companyId = result.recordset[0].id;
await request(pool, tx)
.input('companyId', companyId)
.input('authId', authId)
.query(ADD_COMPANYUSER);
await tx.commit();
return {
id: result.recordset[0].id,
id: companyId,
rootCategoryId,
languageId,
taxrateId,

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { DELETE } from '../../sql/company.js';
export default function del(pool) {
return async (companyId) => {
await pool
.request()
.input('companyId', sql.Int, companyId)
.input('companyId', companyId)
.query(DELETE);
};
}

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { GET_BY_ID } from '../../sql/company.js';
import request from '../request.js';
export default function getById(pool) {
return async (id, tx) => {
const result = await request(pool, tx)
.input('id', sql.Int, id)
.input('id', id)
.query(GET_BY_ID);
return result.recordset[0];

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { GET_BY_NAME } from '../../sql/company.js';
import request from '../request.js';
export default function getByName(pool) {
return async (name, tx) => {
const result = await request(pool, tx)
.input('name', sql.NVarChar(255), name)
.input('name', name)
.query(GET_BY_NAME);
return result.recordset[0];

View File

@@ -1,8 +1,11 @@
import { LIST } from '../../sql/company.js';
export default function list(pool) {
return async () => {
const result = await pool.request().query(LIST);
return async (authId) => {
const result = await pool
.request()
.input('authId', authId)
.query(LIST);
return result.recordset;
};
}

View File

@@ -1,4 +1,3 @@
import sql from 'mssql';
import { UPDATE } from '../../sql/company.js';
import getById from './getById.js';
import getByName from './getByName.js';
@@ -13,7 +12,7 @@ export default function update(pool) {
const ensureTax = taxEnsure(pool);
return async (id, { iso639, name, taxrate, reducedtaxrate }) => {
const tx = new sql.Transaction(pool);
const tx = pool.transaction();
await tx.begin();
try {
@@ -34,11 +33,11 @@ export default function update(pool) {
const reducedtaxrateId = await ensureTax(reducedtaxrate, tx);
await request(pool, tx)
.input('id', sql.Int, id)
.input('name', sql.NVarChar(255), name)
.input('languageId', sql.Int, languageId)
.input('taxrate', sql.Int, taxrateId)
.input('reducedtaxrate', sql.Int, reducedtaxrateId)
.input('id', id)
.input('name', name)
.input('languageId', languageId)
.input('taxrate', taxrateId)
.input('reducedtaxrate', reducedtaxrateId)
.query(UPDATE);
await tx.commit();

View File

@@ -1,12 +1,11 @@
import sql from 'mssql';
import { ADD } from '../../sql/companyuser.js';
export default function add(pool) {
return async (companyId, authId) => {
const result = await pool
.request()
.input('companyId', sql.Int, companyId)
.input('authId', sql.Int, authId)
.input('companyId', companyId)
.input('authId', authId)
.query(ADD);
return result.recordset[0].id;

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { DELETE } from '../../sql/companyuser.js';
export default function del(pool) {
return async (id) => {
await pool
.request()
.input('id', sql.Int, id)
.input('id', id)
.query(DELETE);
};
}

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { GET_BY_EMAIL } from '../../sql/companyuser.js';
export default function getByEmail(pool) {
return async (email) => {
const result = await pool
.request()
.input('email', sql.NVarChar(320), email)
.input('email', email)
.query(GET_BY_EMAIL);
return result.recordset.map((row) => row.id);

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { ADD } from '../../sql/google_auth.js';
export default function add(pool) {
return async (email) => {
const result = await pool
.request()
.input('email', sql.NVarChar(320), email)
.input('email', email)
.query(ADD);
return result.recordset[0].id;

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { GET_BY_EMAIL } from '../../sql/google_auth.js';
export default function getByEmail(pool) {
return async (email) => {
const result = await pool
.request()
.input('email', sql.NVarChar(320), email)
.input('email', email)
.query(GET_BY_EMAIL);
return result.recordset[0];

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { REMOVE_ALLOWED_EMAIL } from '../../sql/google_auth.js';
export default function removeAllowedEmail(pool) {
return async (email) => {
await pool
.request()
.input('email', sql.NVarChar(320), email)
.input('email', email)
.query(REMOVE_ALLOWED_EMAIL);
};
}

View File

@@ -1,12 +1,11 @@
import sql from 'mssql';
import { SET_SELECTED_COMPANY } from '../../sql/google_auth.js';
export default function setSelectedCompany(pool) {
return async (id, companyId) => {
await pool
.request()
.input('id', sql.Int, id)
.input('companyId', sql.Int, companyId)
.input('id', id)
.input('companyId', companyId)
.query(SET_SELECTED_COMPANY);
};
}

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { CREATE } from '../../sql/language.js';
import request from '../request.js';
export default function create(pool) {
return async (iso639, tx) => {
const result = await request(pool, tx)
.input('iso639', sql.NVarChar(10), iso639)
.input('iso639', iso639)
.query(CREATE);
return result.recordset[0].id;

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { DELETE } from '../../sql/language.js';
export default function del(pool) {
return async (id) => {
await pool
.request()
.input('id', sql.Int, id)
.input('id', id)
.query(DELETE);
};
}

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { GET_BY_ISO639 } from '../../sql/language.js';
import request from '../request.js';
export default function getByIso639(pool) {
return async (iso639, tx) => {
const result = await request(pool, tx)
.input('iso639', sql.NVarChar(10), iso639)
.input('iso639', iso639)
.query(GET_BY_ISO639);
return result.recordset[0];

View File

@@ -1,5 +1,3 @@
import sql from 'mssql';
export default function request(pool, tx) {
return tx ? new sql.Request(tx) : pool.request();
return (tx ?? pool).request();
}

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { CREATE } from '../../sql/tax.js';
import request from '../request.js';
export default function create(pool) {
return async (rate, tx) => {
const result = await request(pool, tx)
.input('rate', sql.Decimal(18, 4), rate)
.input('rate', rate)
.query(CREATE);
return result.recordset[0].id;

View File

@@ -1,11 +1,10 @@
import sql from 'mssql';
import { GET_BY_RATE } from '../../sql/tax.js';
import request from '../request.js';
export default function getByRate(pool) {
return async (rate, tx) => {
const result = await request(pool, tx)
.input('rate', sql.Decimal(18, 4), rate)
.input('rate', rate)
.query(GET_BY_RATE);
return result.recordset[0];