Created
January 18, 2019 14:25
-
-
Save bigwheel/8e408c7380903a274889e22df291225b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// アプリケーション層のどこか | |
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