Skip to content

Instantly share code, notes, and snippets.

@bigwheel
Created January 18, 2019 14:25
Show Gist options
  • Save bigwheel/8e408c7380903a274889e22df291225b to your computer and use it in GitHub Desktop.
Save bigwheel/8e408c7380903a274889e22df291225b to your computer and use it in GitHub Desktop.
// アプリケーション層のどこか
def `ユーザーを有効状態で追加`(
`組織ID`: Int,
`ユーザー名`: String,
`メールアドレス`: String,
`ハッシュ化されたパスワード`: String): Try[`ユーザー`] = {
val `組織インスタンス` = `組織リポジトリ`.find(`組織ID`).get
if (`組織インスタンス`.`有効状態でユーザーを追加可能か`) {
val `ユーザーインスタンス` = `ユーザーファクトリ`.create(
`ユーザー名`,
`メールアドレス`,
`ハッシュ化されたパスワード`
)
`ユーザーリポジトリ`.save(`ユーザーインスタンス`) match {
case Success(_) =>
val `新組織インスタンス` = `組織インスタンス`.
`有効状態でユーザーを追加`(`ユーザーインスタンス`.`ユーザーID`)
`組織リポジトリ`.save(`新組織インスタンス`) match {
case Success(_) =>
Success(`ユーザーインスタンス`)
case f =>
// ① 組織への追加に失敗した場合は作成したユーザーを削除しておく
`ユーザーリポジトリ`.delete(`ユーザーインスタンス`.`ユーザーID`)
f
}
case f =>
f
}
} else
Failure(new `有効ユーザー数上限Exception`)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment