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) ユーザをパスワードで認証する。void
cancelReservation
(int reservationId) 予約をキャンセルする。boolean
canRentedItemAtTerm
(int rentalItemId, LocalDateTime from, LocalDateTime to) レンタル品が該当期間に予約可能かを返すvoid
deleteRentalItem
(int rentalItemId) レンタル品を削除する。 対象のレンタル品を参照する予約が存在する場合は削除は行わずエラーにする。void
deleteReservation
(int reservationId) 予約を削除する。void
deleteUserAccount
(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:
get
in interfaceRentalReservationApplication
- Type Parameters:
T
- エンティティクラス- Parameters:
entityClass
- 取得するエンティティクラスid
- ID- Returns:
- エンティティ
-
authenticate
Description copied from interface:RentalReservationApplication
ユーザをパスワードで認証する。- Specified by:
authenticate
in 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:
findReservationByRentalItemAndStartDate
in interfaceRentalReservationApplication
- Parameters:
rentalItemId
- 予約のレンタル品IDstartDate
- 予約の利用開始日- Returns:
- 予約リスト(該当なしは例外を送出)
- Throws:
BusinessFlowException
- 該当なし
-
findReservationByReserverId
Description copied from interface:RentalReservationApplication
指定されたユーザが予約者の予約を取得する。- Specified by:
findReservationByReserverId
in interfaceRentalReservationApplication
- Parameters:
reserverId
- 予約者のユーザID- Returns:
- 該当のリスト。該当なしは空リスト
-
findReservationByRentalItemId
Description copied from interface:RentalReservationApplication
指定されたレンタル品に対する予約を取得する。- Specified by:
findReservationByRentalItemId
in interfaceRentalReservationApplication
- Parameters:
rentalItemId
- レンタル品ID- Returns:
- 該当のリスト。該当なしは空リスト
-
findCanRentedItemAtTerm
Description copied from interface:RentalReservationApplication
該当期間に予約可能なレンタル品を返す。- Specified by:
findCanRentedItemAtTerm
in interfaceRentalReservationApplication
- Parameters:
from
- 利用開始日時to
- 利用終了日時- Returns:
- 該当のリスト。該当なしは空リスト
-
canRentedItemAtTerm
Description copied from interface:RentalReservationApplication
レンタル品が該当期間に予約可能かを返す- Specified by:
canRentedItemAtTerm
in interfaceRentalReservationApplication
- Parameters:
rentalItemId
- レンタル品IDfrom
- 利用開始日時to
- 利用終了日時- Returns:
- 可能な場合はtrue
-
getAllReservations
Description copied from interface:RentalReservationApplication
予約の全件取得。- Specified by:
getAllReservations
in interfaceRentalReservationApplication
- Returns:
- 予約の全件。該当なしは空リスト
-
getAllRentalItems
Description copied from interface:RentalReservationApplication
レンタル品の全件取得。- Specified by:
getAllRentalItems
in interfaceRentalReservationApplication
- Returns:
- レンタル品の全件。該当なしは空リスト
-
getAllUserAccounts
Description copied from interface:RentalReservationApplication
ユーザの全件取得。- Specified by:
getAllUserAccounts
in interfaceRentalReservationApplication
- Returns:
- ユーザの全件。該当なしは空リスト
-
addReservation
Description copied from interface:RentalReservationApplication
レンタル品を予約する。- Specified by:
addReservation
in 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:
addRentalItem
in interfaceRentalReservationApplication
- Parameters:
addRentalItem
- 登録レンタル品(idはnull)- Returns:
- 登録されたレンタル品(idが設定されている)
- Throws:
BusinessFlowException
- 同一シリアル番号のレンタル品が既に登録されている場合RmsSystemException
-
addUserAccount
Description copied from interface:RentalReservationApplication
ユーザアカウントを登録する。- Specified by:
addUserAccount
in interfaceRentalReservationApplication
- Parameters:
addUserAccount
- 登録ユーザ(idはnull)- Returns:
- 登録されたユーザアカウント(idが設定されている)
- Throws:
BusinessFlowException
- 同一ログインIDのユーザが既に登録されている場合
-
updateRentalItem
Description copied from interface:RentalReservationApplication
レンタル品を更新する。- Specified by:
updateRentalItem
in interfaceRentalReservationApplication
- Parameters:
updateRentalItem
- 更新するレンタル品- Returns:
- 更新されたレンタル品。更新対象がない場合はnull
-
updateReservation
Description copied from interface:RentalReservationApplication
予約を更新する。- Specified by:
updateReservation
in interfaceRentalReservationApplication
- Parameters:
updateReservation
- 更新する予約- Returns:
- 更新された予約。更新対象がない場合はnull
-
updateUserAccount
Description copied from interface:RentalReservationApplication
ユーザアカウントを更新する。- Specified by:
updateUserAccount
in interfaceRentalReservationApplication
- Parameters:
updateUserAccount
- 更新ユーザ- Returns:
- 更新されたユーザアカウント。更新対象がない場合はnull
-
deleteRentalItem
Description copied from interface:RentalReservationApplication
レンタル品を削除する。 対象のレンタル品を参照する予約が存在する場合は削除は行わずエラーにする。- Specified by:
deleteRentalItem
in interfaceRentalReservationApplication
- Parameters:
rentalItemId
- レンタル品ID- Throws:
BusinessFlowException
- 該当のレンタル品が存在しない場合。対象のレンタル品を参照する予約が存在する場合
-
deleteReservation
Description copied from interface:RentalReservationApplication
予約を削除する。- Specified by:
deleteReservation
in interfaceRentalReservationApplication
- Parameters:
reservationId
- 予約ID- Throws:
BusinessFlowException
- 該当の予約が存在しない場合
-
deleteUserAccount
Description copied from interface:RentalReservationApplication
ユーザを削除する。 対象のユーザを参照する予約が存在する場合は削除は行わずエラーにする。- Specified by:
deleteUserAccount
in interfaceRentalReservationApplication
- Parameters:
userAccountId
- ユーザアカウントID- Throws:
BusinessFlowException
- 該当のユーザアカウントが存在しない場合。対象のユーザを参照する予約が存在する場合
-
cancelReservation
Description copied from interface:RentalReservationApplication
予約をキャンセルする。- Specified by:
cancelReservation
in interfaceRentalReservationApplication
- Parameters:
reservationId
- 予約ID- Throws:
BusinessFlowException
- 該当の予約が存在しない場合。予約者以外が取消を行っている場合
-
getOwnUserProfile
Description copied from interface:RentalReservationApplication
自分のプロファイル情報を取得する。- Specified by:
getOwnUserProfile
in interfaceRentalReservationApplication
- Throws:
BusinessFlowException
- 該当のユーザアカウントが存在しない場合
-
updateUserProfile
Description copied from interface:RentalReservationApplication
自分のプロファイル情報を更新する。 自分以外の情報を更新しようとした場合は禁止操作として403を返す。- Specified by:
updateUserProfile
in interfaceRentalReservationApplication
- Parameters:
updateUserAccount
- 更新情報- Returns:
- 更新されたユーザアカウント。更新対象がない場合はnull
-