v0.5.17: owner_email в companies + универсальный парсер токенов + jwt.decode fallback

This commit is contained in:
2026-06-03 15:17:56 +03:00
parent 0b3f1ab445
commit 878e46287b
6 changed files with 58 additions and 22 deletions
+5 -4
View File
@@ -3,13 +3,14 @@ const { validate, overlaps } = require('./validators');
// ── Companies ──
async function getOrCreateCompany(clientId, companyName) {
// Атомарный upsert — исключает дубли компаний при параллельных запросах
async function getOrCreateCompany(clientId, companyName, ownerEmail) {
// Атомарный upsert — исключает дубли компаний при параллельных запросах.
// ownerEmail сохраняется только при INSERT (не перезаписывается при UPDATE).
const res = await pool.query(
`INSERT INTO companies (client_id, name) VALUES ($1, $2)
`INSERT INTO companies (client_id, name, owner_email) VALUES ($1, $2, $3)
ON CONFLICT (client_id) DO UPDATE SET name = COALESCE(companies.name, EXCLUDED.name)
RETURNING *`,
[clientId, companyName || clientId]
[clientId, companyName || clientId, ownerEmail || null]
);
return res.rows[0];
}