diff --git a/src/main/scala/org/yobble/scala_monolith/api/dto/LoginResponse.scala b/src/main/scala/org/yobble/scala_monolith/api/dto/LoginResponse.scala index 48d0dd4..d414088 100644 --- a/src/main/scala/org/yobble/scala_monolith/api/dto/LoginResponse.scala +++ b/src/main/scala/org/yobble/scala_monolith/api/dto/LoginResponse.scala @@ -3,9 +3,16 @@ package org.yobble.scala_monolith.api.dto import io.circe.generic.semiauto.{deriveDecoder, deriveEncoder} import io.circe.{Decoder, Encoder} -case class LoginResponse(accessToken: String, refreshToken: String) +case class Tokens(accessToken: String, refreshToken: String) + +object Tokens { + implicit val decoder: Decoder[Tokens] = deriveDecoder[Tokens] + implicit val encoder: Encoder[Tokens] = deriveEncoder[Tokens] +} + +case class LoginResponse(status: String = "fine", message: Tokens) object LoginResponse { implicit val decoder: Decoder[LoginResponse] = deriveDecoder[LoginResponse] implicit val encoder: Encoder[LoginResponse] = deriveEncoder[LoginResponse] -} +} \ No newline at end of file diff --git a/src/main/scala/org/yobble/scala_monolith/api/route/AllServerEndpoints.scala b/src/main/scala/org/yobble/scala_monolith/api/route/AllServerEndpoints.scala index f3a14d0..ef44d2d 100644 --- a/src/main/scala/org/yobble/scala_monolith/api/route/AllServerEndpoints.scala +++ b/src/main/scala/org/yobble/scala_monolith/api/route/AllServerEndpoints.scala @@ -14,13 +14,7 @@ import org.yobble.scala_monolith.api.util.errorByStatus object AllServerEndpoints { def all(transactor: Transactor[IO]): List[ServerEndpoint[Any, IO]] = { - val authService = new AuthService(new UserRepositoryImpl(transactor)) - - val authEndpoints = List( - AuthEndpoints.loginEndpoint.serverLogic(authService.login) - ) - - val otherEndpoints: List[ServerEndpoint[Any, IO]] = List( + val infoEndpoints: List[ServerEndpoint[Any, IO]] = List( PingEndpoint.pingEndpoint.serverLogicSuccess(_ => IO.pure(BaseResponse(message = "pong"))), ErrorsEndpoint.errorsEndpoint.serverLogicSuccess(_ => IO.pure(BaseResponse(message = "errors"))), TestErrorEndpoint.testErrorEndpoint.serverLogic(code => { @@ -28,6 +22,12 @@ object AllServerEndpoints { }) ) - authEndpoints ++ otherEndpoints + val authService = new AuthService(new UserRepositoryImpl(transactor)) + + val authEndpoints = List( + AuthEndpoints.loginEndpoint.serverLogic(authService.login) + ) + + infoEndpoints ++ authEndpoints } } 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 20484a1..2fb235a 100644 --- a/src/main/scala/org/yobble/scala_monolith/service/AuthService.scala +++ b/src/main/scala/org/yobble/scala_monolith/service/AuthService.scala @@ -2,7 +2,7 @@ package org.yobble.scala_monolith.service import at.favre.lib.crypto.bcrypt.BCrypt import cats.effect.IO -import org.yobble.scala_monolith.api.dto.{LoginRequest, LoginResponse} +import org.yobble.scala_monolith.api.dto.{LoginRequest, LoginResponse, Tokens} import org.yobble.scala_monolith.api.response.ErrorResponse import org.yobble.scala_monolith.api.util.ErrorUtils import org.yobble.scala_monolith.repository.UserRepository @@ -21,7 +21,7 @@ class AuthService(userRepository: UserRepository) { Left(ErrorUtils.forbidden("User account is deleted")) } else { // TODO: Implement real token generation - Right(LoginResponse(accessToken = "fake-access-token", refreshToken = "fake-refresh-token")) + Right(LoginResponse(message = Tokens(accessToken = "fake-access-token", refreshToken = "fake-refresh-token"))) } case None => Left(ErrorUtils.unauthorized("Invalid login or password"))