Package io.extact.rms.application
Class RentalReservationApplicationImpl
java.lang.Object
io.extact.rms.application.RentalReservationApplicationImpl
- All Implemented Interfaces:
RentalReservationApplication
@ApplicationScoped
public class RentalReservationApplicationImpl
extends Object
implements RentalReservationApplication
-
Constructor Summary
ConstructorsConstructorDescriptionRentalReservationApplicationImpl(RentalItemService rentalItemService, ReservationService reservationService, UserAccountService userAccountService) -
Method Summary
Modifier and TypeMethodDescriptionaddRentalItem(RentalItem addRentalItem) レンタル品を登録する。addReservation(Reservation addReservation) レンタル品を予約する。addUserAccount(UserAccount addUserAccount) ユーザアカウントを登録する。authenticate(String loginId, String password) ユーザをパスワードで認証する。voidcancelReservation(int reservationId) 予約をキャンセルする。booleancanRentedItemAtTerm(int rentalItemId, LocalDateTime from, LocalDateTime to) レンタル品が該当期間に予約可能かを返すvoiddeleteRentalItem(int rentalItemId) レンタル品を削除する。 対象のレンタル品を参照する予約が存在する場合は削除は行わずエラーにする。voiddeleteReservation(int reservationId) 予約を削除する。voiddeleteUserAccount(int userAccountId) ユーザを削除する。 対象のユーザを参照する予約が存在する場合は削除は行わずエラーにする。該当期間に予約可能なレンタル品を返す。findReservationByRentalItemAndStartDate(Integer rentalItemId, LocalDate startDate) 指定されたレンタル品と利用開始日に対する予約を取得する。findReservationByRentalItemId(int rentalItemId) 指定されたレンタル品に対する予約を取得する。findReservationByReserverId(int reserverId) 指定されたユーザが予約者の予約を取得する。<T> T指定されたIDのエンティティを取得する。レンタル品の全件取得。予約の全件取得。ユーザの全件取得。自分のプロファイル情報を取得する。updateRentalItem(RentalItem updateRentalItem) レンタル品を更新する。updateReservation(Reservation updateReservation) 予約を更新する。updateUserAccount(UserAccount updateUserAccount) ユーザアカウントを更新する。updateUserProfile(UserAccount updateUserAccount) 自分のプロファイル情報を更新する。 自分以外の情報を更新しようとした場合は禁止操作として403を返す。
-
Constructor Details
-
RentalReservationApplicationImpl
@Inject public RentalReservationApplicationImpl(RentalItemService rentalItemService, ReservationService reservationService, UserAccountService userAccountService)
-
-
Method Details
-
get
Description copied from interface:RentalReservationApplication指定されたIDのエンティティを取得する。- Specified by:
getin interfaceRentalReservationApplication- Type Parameters:
T- エンティティクラス- Parameters:
entityClass- 取得するエンティティクラスid- ID- Returns:
- エンティティ
-
authenticate
Description copied from interface:RentalReservationApplicationユーザをパスワードで認証する。- Specified by:
authenticatein interfaceRentalReservationApplication- Parameters:
loginId- 認証するユーザのログインIDpassword- 認証パスワード- Returns:
- 認証ユーザ。認証できなかった場合はnull
- Throws:
BusinessFlowException- ユーザIDまたはパスワードに一致するユーザがいない
-
findReservationByRentalItemAndStartDate
public List<Reservation> findReservationByRentalItemAndStartDate(Integer rentalItemId, LocalDate startDate) throws BusinessFlowException Description copied from interface:RentalReservationApplication指定されたレンタル品と利用開始日に対する予約を取得する。- Specified by:
findReservationByRentalItemAndStartDatein interfaceRentalReservationApplication- Parameters:
rentalItemId- 予約のレンタル品IDstartDate- 予約の利用開始日- Returns:
- 予約リスト(該当なしは例外を送出)
- Throws:
BusinessFlowException- 該当なし
-
findReservationByReserverId
Description copied from interface:RentalReservationApplication指定されたユーザが予約者の予約を取得する。- Specified by:
findReservationByReserverIdin interfaceRentalReservationApplication- Parameters:
reserverId- 予約者のユーザID- Returns:
- 該当のリスト。該当なしは空リスト
-
findReservationByRentalItemId
Description copied from interface:RentalReservationApplication指定されたレンタル品に対する予約を取得する。- Specified by:
findReservationByRentalItemIdin interfaceRentalReservationApplication- Parameters:
rentalItemId- レンタル品ID- Returns:
- 該当のリスト。該当なしは空リスト
-
findCanRentedItemAtTerm
Description copied from interface:RentalReservationApplication該当期間に予約可能なレンタル品を返す。- Specified by:
findCanRentedItemAtTermin interfaceRentalReservationApplication- Parameters:
from- 利用開始日時to- 利用終了日時- Returns:
- 該当のリスト。該当なしは空リスト
-
canRentedItemAtTerm
Description copied from interface:RentalReservationApplicationレンタル品が該当期間に予約可能かを返す- Specified by:
canRentedItemAtTermin interfaceRentalReservationApplication- Parameters:
rentalItemId- レンタル品IDfrom- 利用開始日時to- 利用終了日時- Returns:
- 可能な場合はtrue
-
getAllReservations
Description copied from interface:RentalReservationApplication予約の全件取得。- Specified by:
getAllReservationsin interfaceRentalReservationApplication- Returns:
- 予約の全件。該当なしは空リスト
-
getAllRentalItems
Description copied from interface:RentalReservationApplicationレンタル品の全件取得。- Specified by:
getAllRentalItemsin interfaceRentalReservationApplication- Returns:
- レンタル品の全件。該当なしは空リスト
-
getAllUserAccounts
Description copied from interface:RentalReservationApplicationユーザの全件取得。- Specified by:
getAllUserAccountsin interfaceRentalReservationApplication- Returns:
- ユーザの全件。該当なしは空リスト
-
addReservation
Description copied from interface:RentalReservationApplicationレンタル品を予約する。- Specified by:
addReservationin interfaceRentalReservationApplication- Parameters:
addReservation- 登録する予約(idはnull)- Returns:
- 登録された予約(idが設定されている)
- Throws:
BusinessFlowException- 該当するレンタル品が存在しない場合、または期間が重複する予約が既に登録されている場合
-
addRentalItem
public RentalItem addRentalItem(RentalItem addRentalItem) throws BusinessFlowException, RmsSystemException Description copied from interface:RentalReservationApplicationレンタル品を登録する。- Specified by:
addRentalItemin interfaceRentalReservationApplication- Parameters:
addRentalItem- 登録レンタル品(idはnull)- Returns:
- 登録されたレンタル品(idが設定されている)
- Throws:
BusinessFlowException- 同一シリアル番号のレンタル品が既に登録されている場合RmsSystemException
-
addUserAccount
Description copied from interface:RentalReservationApplicationユーザアカウントを登録する。- Specified by:
addUserAccountin interfaceRentalReservationApplication- Parameters:
addUserAccount- 登録ユーザ(idはnull)- Returns:
- 登録されたユーザアカウント(idが設定されている)
- Throws:
BusinessFlowException- 同一ログインIDのユーザが既に登録されている場合
-
updateRentalItem
Description copied from interface:RentalReservationApplicationレンタル品を更新する。- Specified by:
updateRentalItemin interfaceRentalReservationApplication- Parameters:
updateRentalItem- 更新するレンタル品- Returns:
- 更新されたレンタル品。更新対象がない場合はnull
-
updateReservation
Description copied from interface:RentalReservationApplication予約を更新する。- Specified by:
updateReservationin interfaceRentalReservationApplication- Parameters:
updateReservation- 更新する予約- Returns:
- 更新された予約。更新対象がない場合はnull
-
updateUserAccount
Description copied from interface:RentalReservationApplicationユーザアカウントを更新する。- Specified by:
updateUserAccountin interfaceRentalReservationApplication- Parameters:
updateUserAccount- 更新ユーザ- Returns:
- 更新されたユーザアカウント。更新対象がない場合はnull
-
deleteRentalItem
Description copied from interface:RentalReservationApplicationレンタル品を削除する。 対象のレンタル品を参照する予約が存在する場合は削除は行わずエラーにする。- Specified by:
deleteRentalItemin interfaceRentalReservationApplication- Parameters:
rentalItemId- レンタル品ID- Throws:
BusinessFlowException- 該当のレンタル品が存在しない場合。対象のレンタル品を参照する予約が存在する場合
-
deleteReservation
Description copied from interface:RentalReservationApplication予約を削除する。- Specified by:
deleteReservationin interfaceRentalReservationApplication- Parameters:
reservationId- 予約ID- Throws:
BusinessFlowException- 該当の予約が存在しない場合
-
deleteUserAccount
Description copied from interface:RentalReservationApplicationユーザを削除する。 対象のユーザを参照する予約が存在する場合は削除は行わずエラーにする。- Specified by:
deleteUserAccountin interfaceRentalReservationApplication- Parameters:
userAccountId- ユーザアカウントID- Throws:
BusinessFlowException- 該当のユーザアカウントが存在しない場合。対象のユーザを参照する予約が存在する場合
-
cancelReservation
Description copied from interface:RentalReservationApplication予約をキャンセルする。- Specified by:
cancelReservationin interfaceRentalReservationApplication- Parameters:
reservationId- 予約ID- Throws:
BusinessFlowException- 該当の予約が存在しない場合。予約者以外が取消を行っている場合
-
getOwnUserProfile
Description copied from interface:RentalReservationApplication自分のプロファイル情報を取得する。- Specified by:
getOwnUserProfilein interfaceRentalReservationApplication- Throws:
BusinessFlowException- 該当のユーザアカウントが存在しない場合
-
updateUserProfile
Description copied from interface:RentalReservationApplication自分のプロファイル情報を更新する。 自分以外の情報を更新しようとした場合は禁止操作として403を返す。- Specified by:
updateUserProfilein interfaceRentalReservationApplication- Parameters:
updateUserAccount- 更新情報- Returns:
- 更新されたユーザアカウント。更新対象がない場合はnull
-