Тестовый коммит после удаления husky

This commit is contained in:
2025-03-05 01:02:09 +03:00
parent b0f7a64a96
commit d90e1b93a9
120 changed files with 8191 additions and 8530 deletions

View File

@@ -4,7 +4,7 @@ require('dotenv').config();
// Создаем пул соединений с базой данных
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
ssl: process.env.NODE_ENV === 'production' ? { rejectUnauthorized: false } : false
ssl: process.env.NODE_ENV === 'production' ? { rejectUnauthorized: false } : false,
});
// Проверяем подключение к базе данных
@@ -12,7 +12,7 @@ pool.query('SELECT NOW()', (err, res) => {
if (err) {
console.error('Ошибка подключения к базе данных:', err);
console.log('Переключение на временное хранилище данных в памяти...');
// Если не удалось подключиться к базе данных, используем временное хранилище
module.exports = createInMemoryStorage();
} else {
@@ -28,53 +28,53 @@ const query = (text, params) => {
// Экспортируем функции для работы с базой данных
module.exports = {
query,
pool
pool,
};
// Функция для создания временного хранилища данных в памяти
function createInMemoryStorage() {
console.log('Используется временное хранилище данных в памяти');
const users = [];
let userId = 1;
// Эмуляция функции query для работы с пользователями
const inMemoryQuery = async (text, params) => {
console.log('SQL query (in-memory):', text, 'Params:', params);
// Эмуляция запроса SELECT * FROM users WHERE address = $1
if (text.includes('SELECT * FROM users WHERE address = $1')) {
const address = params[0];
const user = users.find(u => u.address === address);
const user = users.find((u) => u.address === address);
return { rows: user ? [user] : [] };
}
// Эмуляция запроса SELECT * FROM users WHERE email = $1
if (text.includes('SELECT * FROM users WHERE email = $1')) {
const email = params[0];
const user = users.find(u => u.email === email);
const user = users.find((u) => u.email === email);
return { rows: user ? [user] : [] };
}
// Эмуляция запроса INSERT INTO users
if (text.includes('INSERT INTO users')) {
let newUser;
if (text.includes('address')) {
newUser = { id: userId++, address: params[0], created_at: new Date(), is_admin: false };
} else if (text.includes('email')) {
newUser = { id: userId++, email: params[0], created_at: new Date(), is_admin: false };
}
if (newUser) {
users.push(newUser);
return { rows: [newUser] };
}
}
return { rows: [] };
};
return {
query: inMemoryQuery,
pool: {
@@ -89,7 +89,42 @@ function createInMemoryStorage() {
} else {
return inMemoryQuery(text, params);
}
}
}
},
},
};
}
}
// Проверка и создание таблицы session, если она не существует
async function checkSessionTable() {
try {
const result = await pool.query(`
SELECT EXISTS (
SELECT FROM information_schema.tables
WHERE table_schema = 'public'
AND table_name = 'session'
);
`);
const tableExists = result.rows[0].exists;
if (!tableExists) {
console.log('Таблица session не существует, создаем...');
await pool.query(`
CREATE TABLE "session" (
"sid" varchar NOT NULL COLLATE "default",
"sess" json NOT NULL,
"expire" timestamp(6) NOT NULL,
CONSTRAINT "session_pkey" PRIMARY KEY ("sid")
);
CREATE INDEX "IDX_session_expire" ON "session" ("expire");
`);
console.log('Таблица session успешно создана');
} else {
console.log('Таблица session уже существует');
}
} catch (error) {
console.error('Ошибка при проверке/создании таблицы session:', error);
}
}