3.1 KiB
3.1 KiB
Исправления ошибок в коде
Проблема: Несоответствие имен столбцов в таблице swipes
В коде обнаружены несоответствия в названиях столбцов при работе с таблицей swipes. Используются два разных варианта именования:
user_idиtarget_user_idswiper_idиswiped_id
Судя по ошибкам в консоли и анализу кода, корректными именами столбцов являются user_id и target_user_id.
Необходимые исправления
1. В файле profileService.ts - метод deleteProfile:
// Неверно:
await client.query('DELETE FROM swipes WHERE swiper_id = $1 OR swiped_id = $1', [userId]);
// Исправить на:
await client.query('DELETE FROM swipes WHERE user_id = $1 OR target_user_id = $1', [userId]);
2. В файле matchingService.ts - метод performSwipe:
// Неверно:
const reciprocalSwipe = await client.query(`
SELECT * FROM swipes
WHERE swiper_id = $1 AND swiped_id = $2 AND direction IN ('right', 'super')
`, [targetUserId, userId]);
// Исправить на:
const reciprocalSwipe = await client.query(`
SELECT * FROM swipes
WHERE user_id = $1 AND target_user_id = $2 AND direction IN ('right', 'super')
`, [targetUserId, userId]);
3. В файле matchingService.ts - метод getRecentLikes:
// Неверно (если используется метод mapEntityToSwipe):
private mapEntityToSwipe(entity: any): Swipe {
return new Swipe({
id: entity.id,
userId: entity.swiper_id,
targetUserId: entity.swiped_id,
type: this.convertDirectionToSwipeType(entity.direction),
timestamp: entity.created_at,
isMatch: entity.is_match
});
}
// Исправить на:
private mapEntityToSwipe(entity: any): Swipe {
return new Swipe({
id: entity.id,
userId: entity.user_id,
targetUserId: entity.target_user_id,
type: this.convertDirectionToSwipeType(entity.direction),
timestamp: entity.created_at,
isMatch: entity.is_match
});
}
4. В файле matchingService.ts - метод getDailySwipeStats:
// Неверно:
const result = await query(`
SELECT direction, COUNT(*) as count
FROM swipes
WHERE swiper_id = $1 AND created_at >= $2
GROUP BY direction
`, [userId, today]);
// Исправить на:
const result = await query(`
SELECT direction, COUNT(*) as count
FROM swipes
WHERE user_id = $1 AND created_at >= $2
GROUP BY direction
`, [userId, today]);
Примечание
После внесения исправлений рекомендуется проверить все остальные места в коде, где могут использоваться эти имена столбцов, и убедиться в их согласованности.