From 1eee8a145b118f3c1b4a20cca627bdee4cbb5801 Mon Sep 17 00:00:00 2001 From: P-Jeremy Date: Fri, 28 Feb 2025 17:04:55 +0100 Subject: [PATCH] feat(api): use merge on conflict for last user application connections upsert --- .../last-user-application-connections.repository.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/api/src/identity-access-management/infrastructure/repositories/last-user-application-connections.repository.js b/api/src/identity-access-management/infrastructure/repositories/last-user-application-connections.repository.js index 4dcc69f47c7..06be6ba1fb3 100644 --- a/api/src/identity-access-management/infrastructure/repositories/last-user-application-connections.repository.js +++ b/api/src/identity-access-management/infrastructure/repositories/last-user-application-connections.repository.js @@ -2,13 +2,10 @@ import { knex } from '../../../../db/knex-database-connection.js'; const TABLE_NAME = 'last-user-application-connections'; async function upsert({ userId, application, lastLoggedAt }) { - const existingConnection = await knex(TABLE_NAME).where({ userId, application }).first(); - - if (existingConnection) { - return knex(TABLE_NAME).where({ userId, application }).update({ lastLoggedAt }); - } - - return knex(TABLE_NAME).insert({ userId, application, lastLoggedAt }); + return knex(TABLE_NAME) + .insert({ userId, application, lastLoggedAt }) + .onConflict(['userId', 'application']) + .merge({ lastLoggedAt }); } export const lastUserApplicationConnectionsRepository = { upsert };