Skip to content

Instantly share code, notes, and snippets.

@erip
Created August 2, 2018 14:07
Show Gist options
  • Save erip/24a1a3a192aa9de128fc2ac0d149d527 to your computer and use it in GitHub Desktop.
Save erip/24a1a3a192aa9de128fc2ac0d149d527 to your computer and use it in GitHub Desktop.
An example of if in flatMap
override def registerUser(): ServiceCall[requests.RegisterUser, UUID] = ServerServiceCall { req =>
repository.emailHasBeenRegistered(req.email).flatMap { beenRegistered =>
logger.debug(s"Email ${req.email} has been registered? $beenRegistered")
if (!beenRegistered) {
val id = UUID.randomUUID()
logger.debug(s"Registering user $id")
userEntityFor(id)
.ask(InternalRegisterCommand(id, req.firstName, req.lastName, req.email, req.password))
} else {
logger.warn(s"Email ${req.email} has already been registered")
throw EmailInUse(req.email)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment