Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 44 additions & 46 deletions descriptors/ModuleDescriptor-template.json

Large diffs are not rendered by default.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import org.folio.circulation.infrastructure.storage.requests.RequestQueueRepository;
import org.folio.circulation.infrastructure.storage.requests.RequestRepository;
import org.folio.circulation.resources.RequestNoticeSender;
import org.folio.circulation.services.CirculationSettingsService;
import org.folio.circulation.services.EventPublisher;
import org.folio.circulation.support.results.Result;

Expand All @@ -27,13 +28,14 @@ public class MoveRequestService {
private final EventPublisher eventPublisher;
private final RequestQueueRepository requestQueueRepository;
private final SettingsRepository settingsRepository;
private final CirculationSettingsService circulationSettingsService;
private static final Logger log = LogManager.getLogger(MethodHandles.lookup().lookupClass());

public MoveRequestService(RequestRepository requestRepository, RequestPolicyRepository requestPolicyRepository,
UpdateUponRequest updateUponRequest, MoveRequestProcessAdapter moveRequestHelper,
RequestLoanValidator requestLoanValidator, RequestNoticeSender requestNoticeSender,
EventPublisher eventPublisher, RequestQueueRepository requestQueueRepository,
SettingsRepository settingsRepository) {
SettingsRepository settingsRepository, CirculationSettingsService circulationSettingsService) {

this.requestRepository = requestRepository;
this.requestPolicyRepository = requestPolicyRepository;
Expand All @@ -44,11 +46,12 @@ public MoveRequestService(RequestRepository requestRepository, RequestPolicyRepo
this.eventPublisher = eventPublisher;
this.requestQueueRepository = requestQueueRepository;
this.settingsRepository = settingsRepository;
this.circulationSettingsService = circulationSettingsService;
}

public CompletableFuture<Result<RequestAndRelatedRecords>> moveRequest(
RequestAndRelatedRecords requestAndRelatedRecords, Request originalRequest) {
return settingsRepository.lookupTlrSettings()
return circulationSettingsService.getTlrSettings()
.thenApply(r -> r.map(requestAndRelatedRecords::withTlrSettings))
.thenApply(r -> r.next(RequestServiceUtility::refuseTlrProcessingWhenFeatureIsDisabled))
.thenApply(r -> r.next(records -> RequestServiceUtility.refuseMovingToOrFromHoldTlr(records,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ public class TlrSettingsConfiguration {
private final UUID expirationPatronNoticeTemplateId;

public static TlrSettingsConfiguration from(JsonObject jsonObject) {
log.debug("from:: {}", jsonObject);
try {
return new TlrSettingsConfiguration(
getBooleanProperty(jsonObject, "titleLevelRequestsFeatureEnabled"),
Expand All @@ -46,4 +47,9 @@ public static TlrSettingsConfiguration from(JsonObject jsonObject) {
return null;
}
}

public static TlrSettingsConfiguration defaultSettings() {
log.info("defaultSettings:: building default TLR settings");
return new TlrSettingsConfiguration(false, false, false, null, null, null);
}
}
2 changes: 2 additions & 0 deletions src/main/java/org/folio/circulation/domain/policy/Period.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@
import org.folio.circulation.support.results.Result;

import io.vertx.core.json.JsonObject;
import lombok.Getter;

@Getter
public class Period {
private static final Period ZERO_DURATION_PERIOD = minutes(0);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,15 @@

import static org.folio.circulation.support.http.ResponseMapping.forwardOnFailure;
import static org.folio.circulation.support.http.ResponseMapping.mapUsingJson;
import static org.folio.circulation.support.http.client.PageLimit.limit;
import static org.folio.circulation.support.results.Result.failed;
import static org.folio.circulation.support.results.ResultBinding.flatMapResult;
import static org.folio.circulation.support.results.ResultBinding.mapResult;

import java.lang.invoke.MethodHandles;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;

import org.apache.logging.log4j.LogManager;
Expand All @@ -16,12 +21,14 @@
import org.folio.circulation.support.CollectionResourceClient;
import org.folio.circulation.support.FetchSingleRecord;
import org.folio.circulation.support.RecordNotFoundFailure;
import org.folio.circulation.support.http.client.CqlQuery;
import org.folio.circulation.support.http.client.ResponseInterpreter;
import org.folio.circulation.support.results.Result;

public class CirculationSettingsRepository {
private static final Logger log = LogManager.getLogger(MethodHandles.lookup().lookupClass());
public static final String RECORDS_PROPERTY_NAME = "circulationSettings";

private final CollectionResourceClient circulationSettingsStorageClient;

public CirculationSettingsRepository(Clients clients) {
Expand All @@ -38,6 +45,20 @@ public CompletableFuture<Result<CirculationSetting>> getById(String id) {
.fetch(id);
}

public CompletableFuture<Result<Optional<CirculationSetting>>> findByName(String name) {
return findByNames(List.of(name))
.thenApply(mapResult(settings -> settings.stream().findFirst()));
}

public CompletableFuture<Result<Collection<CirculationSetting>>> findByNames(Collection<String> names) {
log.debug("findByNames:: names: {}", names);

return CqlQuery.exactMatchAny("name", names)
.after(query -> circulationSettingsStorageClient.getMany(query, limit(names.size())))
.thenApply(flatMapResult(r -> MultipleRecords.from(r, CirculationSetting::from, RECORDS_PROPERTY_NAME)
.map(MultipleRecords::getRecords)));
}

public CompletableFuture<Result<MultipleRecords<CirculationSetting>>> findBy(String query) {
return circulationSettingsStorageClient.getManyWithRawQueryStringParameters(query)
.thenApply(flatMapResult(response ->
Expand Down

This file was deleted.

Loading