use of org.folio.circulation.domain.notice.PatronNoticeEvent in project mod-circulation by folio-org.
the class ItemLevelRequestNoticeSender method sendNoticeOnRequestCreated.
@Override
public Result<RequestAndRelatedRecords> sendNoticeOnRequestCreated(RequestAndRelatedRecords relatedRecords) {
Request request = relatedRecords.getRequest();
Item item = request.getItem();
NoticeEventType eventType = requestTypeToEventMap.getOrDefault(request.getRequestType(), NoticeEventType.UNKNOWN);
PatronNoticeEvent requestCreatedEvent = createPatronNoticeEvent(request, eventType).withItem(item);
patronNoticeService.acceptNoticeEvent(requestCreatedEvent);
Loan loan = request.getLoan();
if (request.getRequestType() == RequestType.RECALL && loan != null) {
sendNoticeOnItemRecalledEvent(loan);
sendLogEvent(loan);
}
return Result.succeeded(relatedRecords);
}
use of org.folio.circulation.domain.notice.PatronNoticeEvent in project mod-circulation by folio-org.
the class TitleLevelRequestNoticeSender method sendNoticeOnRequestCreated.
@Override
public Result<RequestAndRelatedRecords> sendNoticeOnRequestCreated(RequestAndRelatedRecords relatedRecords) {
Request request = relatedRecords.getRequest();
TlrSettingsConfiguration tlrSettings = request.getTlrSettingsConfiguration();
NoticeEventType eventType = requestTypeToEventMap.getOrDefault(request.getRequestType(), NoticeEventType.UNKNOWN);
if (tlrSettings.isTitleLevelRequestsFeatureEnabled() && tlrSettings.getConfirmationPatronNoticeTemplateId() != null) {
PatronNoticeEvent requestCreatedEvent = createPatronNoticeEvent(request, eventType);
applyTlrConfirmationNotice(request.getTlrSettingsConfiguration(), requestCreatedEvent);
}
return Result.succeeded(relatedRecords);
}
use of org.folio.circulation.domain.notice.PatronNoticeEvent in project mod-circulation by folio-org.
the class ItemLevelRequestNoticeSender method sendNoticeOnRequestCancelled.
@Override
protected Result<Void> sendNoticeOnRequestCancelled(RequestAndRelatedRecords relatedRecords) {
Request request = relatedRecords.getRequest();
PatronNoticeEvent requestCancelledEvent = createPatronNoticeEvent(request, NoticeEventType.REQUEST_CANCELLATION).withItem(request.getItem());
patronNoticeService.acceptNoticeEvent(requestCancelledEvent);
return Result.succeeded(null);
}
use of org.folio.circulation.domain.notice.PatronNoticeEvent in project mod-circulation by folio-org.
the class RequestNoticeSender method sendRequestAwaitingPickupNotice.
private CompletableFuture<Result<Void>> sendRequestAwaitingPickupNotice(Request request) {
Item item = request.getItem();
User user = request.getRequester();
PatronNoticeEvent noticeEvent = new PatronNoticeEventBuilder().withItem(item).withUser(user).withEventType(NoticeEventType.AVAILABLE).withNoticeContext(createRequestNoticeContext(request)).withNoticeLogContext(NoticeLogContext.from(request)).build();
return patronNoticeService.acceptNoticeEvent(noticeEvent);
}
use of org.folio.circulation.domain.notice.PatronNoticeEvent in project mod-circulation by folio-org.
the class RequestNoticeSender method sendNoticeOnItemRecalledEvent.
protected Result<Void> sendNoticeOnItemRecalledEvent(Loan loan) {
if (loan.getUser() != null && loan.getItem() != null) {
PatronNoticeEvent itemRecalledEvent = new PatronNoticeEventBuilder().withItem(loan.getItem()).withUser(loan.getUser()).withEventType(NoticeEventType.ITEM_RECALLED).withNoticeContext(TemplateContextUtil.createLoanNoticeContext(loan)).withNoticeLogContext(NoticeLogContext.from(loan)).build();
patronNoticeService.acceptNoticeEvent(itemRecalledEvent);
}
return Result.succeeded(null);
}
Aggregations