Created
January 20, 2019 02:16
-
-
Save bigwheel/af0a4b6a91825c63e0971f90cbb12b43 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( | |
`ユーザー名`, | |
`メールアドレス`, | |
`ハッシュ化されたパスワード` | |
) | |
val `新組織インスタンス` = `組織インスタンス`. | |
`有効状態でユーザーを追加`(`ユーザーインスタンス`.`ユーザーID`) | |
`組織リポジトリ`.save(`新組織インスタンス`) match { | |
case Success(_) => | |
`ユーザーリポジトリ`.save(`ユーザーインスタンス`) match { | |
case Success(_) => | |
Success(`ユーザーインスタンス`) | |
case f => | |
// ① ユーザーの保存に失敗した場合は組織インスタンスを元の状態で保存し直す | |
`組織リポジトリ`.save(`組織インスタンス`) | |
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