update answer login

This commit is contained in:
cheykrym 2025-08-06 04:40:13 +03:00
parent 4ce6cc2a90
commit 43b51d756d
3 changed files with 19 additions and 12 deletions

View File

@ -3,7 +3,14 @@ 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]

View File

@ -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
}
}

View File

@ -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"))