Accounts can now be deleted

This commit is contained in:
2020-08-14 15:17:58 +02:00
parent 00dafe1da9
commit 662d6c706b
16 changed files with 204 additions and 29 deletions
@@ -4,10 +4,12 @@ import arrow.core.Either
import arrow.core.left
import arrow.core.right
import be.simplenotes.domain.model.User
import be.simplenotes.domain.usecases.login.InvalidLoginForm
import be.simplenotes.domain.usecases.login.LoginForm
import be.simplenotes.domain.usecases.register.InvalidRegisterForm
import be.simplenotes.domain.usecases.register.RegisterForm
import be.simplenotes.domain.usecases.users.delete.DeleteError
import be.simplenotes.domain.usecases.users.delete.DeleteForm
import be.simplenotes.domain.usecases.users.login.InvalidLoginForm
import be.simplenotes.domain.usecases.users.login.LoginForm
import be.simplenotes.domain.usecases.users.register.InvalidRegisterForm
import be.simplenotes.domain.usecases.users.register.RegisterForm
import io.konform.validation.Validation
import io.konform.validation.jsonschema.maxLength
import io.konform.validation.jsonschema.minLength
@@ -35,4 +37,24 @@ internal object UserValidations {
return if (errors.isEmpty()) User(form.username!!, form.password!!).right()
else return InvalidRegisterForm(errors).left()
}
private val deleteValidator = Validation<DeleteForm> {
DeleteForm::username required {
minLength(3)
maxLength(50)
}
DeleteForm::password required {
minLength(8)
maxLength(72)
}
DeleteForm::checked required {
addConstraint("Should be checked") { it }
}
}
fun validateDelete(form: DeleteForm): Either<DeleteError.InvalidForm, User> {
val errors = deleteValidator.validate(form).errors
return if (errors.isEmpty()) User(form.username!!, form.password!!).right()
else return DeleteError.InvalidForm(errors).left()
}
}