Skip to content

Commit 8ba20cd

Browse files
authored
Merge pull request #283 from SCVApp/master
End session query fixed
2 parents a825496 + f22d3ca commit 8ba20cd

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/lockers/lockers.service.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ export class LockersService {
196196
const success = await this.openLocker(selectedLocker);
197197
if (!success) {
198198
await this.lockersUsersRepository.query(
199-
`DELETE FROM lockers_users WHERE id = (SELECT id FROM lockers_users WHERE user_id = $1 AND locker_id = $2 ORDER BY start_time DESC LIMIT 1)`,
199+
`DELETE FROM lockers_users WHERE id = (SELECT id FROM lockers_users WHERE user_id = $1 AND locker_id = $2 AND start_time <= NOW() AND (end_time > NOW() OR end_time IS NULL) ORDER BY start_time DESC LIMIT 1)`,
200200
[user.id, selectedLocker.id],
201201
);
202202
throw new InternalServerErrorException('Failed to open locker');
@@ -234,7 +234,7 @@ export class LockersService {
234234
}
235235

236236
await this.lockersUsersRepository.query(
237-
`UPDATE lockers_users SET end_time = NOW() WHERE id = (SELECT id FROM lockers_users WHERE user_id = $1 AND locker_id = $2 ORDER BY start_time DESC LIMIT 1)`,
237+
`UPDATE lockers_users SET end_time = NOW() WHERE id = (SELECT id FROM lockers_users WHERE user_id = $1 AND locker_id = $2 AND start_time < NOW() AND (end_time > NOW() OR end_time IS NULL) ORDER BY start_time DESC LIMIT 1)`,
238238
[user.id, activeLocker.id],
239239
);
240240
return { success: true };
@@ -299,7 +299,7 @@ export class LockersService {
299299
throw new InternalServerErrorException('Failed to open locker');
300300
}
301301
await this.lockersUsersRepository.query(
302-
`UPDATE lockers_users SET end_time = NOW() WHERE id = (SELECT id FROM lockers_users WHERE locker_id = $1 ORDER BY start_time DESC LIMIT 1)`,
302+
`UPDATE lockers_users SET end_time = NOW() WHERE id = (SELECT id FROM lockers_users WHERE locker_id = $1 AND start_time < NOW() AND (end_time > NOW() OR end_time IS NULL) ORDER BY start_time DESC LIMIT 1)`,
303303
[locker.id],
304304
);
305305
}

0 commit comments

Comments
 (0)