diff --git a/src/main/scala/org/yobble/scala_monolith/repository/UserSessionRepository.scala b/src/main/scala/org/yobble/scala_monolith/repository/UserSessionRepository.scala index 38e1c22..75a41b0 100644 --- a/src/main/scala/org/yobble/scala_monolith/repository/UserSessionRepository.scala +++ b/src/main/scala/org/yobble/scala_monolith/repository/UserSessionRepository.scala @@ -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) + } } diff --git a/src/main/scala/org/yobble/scala_monolith/service/AuthService.scala b/src/main/scala/org/yobble/scala_monolith/service/AuthService.scala index d9a79ca..1b8fb60 100644 --- a/src/main/scala/org/yobble/scala_monolith/service/AuthService.scala +++ b/src/main/scala/org/yobble/scala_monolith/service/AuthService.scala @@ -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))) }