Slide 215
Slide 215 text
let result: ValidationResult<(String, String, Fruit, RegisterRequest.Profile?)> = ValidationResult.combine {
$id.validate(
with: .count(isIn: 1 ... 20) && .isOnlyAlphanumeric,
errorMessage: "ID1~20จࣈҎͷӳࣈͰೖྗ͍ͯͩ͘͠͞"
)
$password.validate(
with: .count(isIn: 1 ... 20),
errorMessage: "ύεϫʔυ1~20จࣈҎͰೖྗ͍ͯͩ͘͠͞"
)
$favoriteFruit.validateNotNil(
errorMessage: "͖ͳϑϧʔπΛબ͍ͯͩ͘͠͞"
)
if includesProfile {
validateProfile()
}
}
return result.map { id, password, favoriteFruit, profile in
RegisterRequest(id: id, password: password, favoriteFruit: favoriteFruit, profile: profile)
}
ValidationResult<(String, String, Fruit, RegisterRequest.Profile?)> ValidationResult