add sessions

This commit is contained in:
cheykrym 2025-08-06 05:55:56 +03:00
parent e1b901f01c
commit 907f76d11d
2 changed files with 11 additions and 1 deletions

View File

@ -16,6 +16,8 @@ trait UserSessionRepository {
ipAddress: Option[String],
userAgent: Option[String]
): IO[UUID]
def updateTokens(sessionId: UUID, accessToken: String, refreshToken: String): IO[Int]
}
class UserSessionRepositoryImpl(transactor: Transactor[IO]) extends UserSessionRepository {
@ -31,4 +33,12 @@ class UserSessionRepositoryImpl(transactor: Transactor[IO]) extends UserSessionR
VALUES ($userId, $accessToken, $refreshToken, $ipAddress, $userAgent)
""".update.withUniqueGeneratedKeys[UUID]("id").transact(transactor)
}
override def updateTokens(sessionId: UUID, accessToken: String, refreshToken: String): IO[Int] = {
sql"""
UPDATE user_sessions
SET access_token = $accessToken, refresh_token = $refreshToken
WHERE id = $sessionId
""".update.run.transact(transactor)
}
}

View File

@ -35,7 +35,7 @@ class AuthService(
sessionId <- userSessionRepository.insert(user.id, "temp", "temp", ipAddress, userAgent)
tokens <- jwtService.createTokens(user.id, sessionId)
(accessToken, refreshToken) = tokens
// TODO: Update tokens in user_sessions table after creation
_ <- userSessionRepository.updateTokens(sessionId, accessToken, refreshToken)
// TODO: Save session to Redis
} yield Right(LoginResponse(message = Tokens(accessToken = accessToken, refreshToken = refreshToken)))
}