20 lines
533 B
Kotlin
20 lines
533 B
Kotlin
package be.simplenotes.domain.usecases.users.login
|
|
|
|
import arrow.core.Either
|
|
import io.konform.validation.ValidationErrors
|
|
import kotlinx.serialization.Serializable
|
|
|
|
sealed class LoginError
|
|
object Unregistered : LoginError()
|
|
object WrongPassword : LoginError()
|
|
class InvalidLoginForm(val validationErrors: ValidationErrors) : LoginError()
|
|
|
|
typealias Token = String
|
|
|
|
@Serializable
|
|
data class LoginForm(val username: String?, val password: String?)
|
|
|
|
interface LoginUseCase {
|
|
fun login(form: LoginForm): Either<LoginError, Token>
|
|
}
|