Search in sources :

Example 1 with REQUEST_EXPIRED

use of org.folio.support.exception.LogEventType.REQUEST_EXPIRED in project mod-circulation-storage by folio-org.

the class ExpirationTool method doRequestExpirationForTenant.

private static Future<Void> doRequestExpirationForTenant(Map<String, String> okapiHeaders, Vertx vertx, String tenant) {
    Promise<Void> promise = Promise.promise();
    PostgresClient pgClient = PostgresClient.getInstance(vertx, tenant);
    List<JsonObject> context = new ArrayList<>();
    pgClient.startTx(conn -> getExpiredRequests(conn, vertx, tenant).compose(requests -> closeRequests(conn, vertx, tenant, requests, context)).compose(itemIds -> getOpenRequestsByItemIds(conn, vertx, tenant, itemIds)).compose(requests -> reorderRequests(conn, vertx, tenant, requests)).onComplete(v -> {
        if (v.failed()) {
            pgClient.rollbackTx(conn, done -> {
                log.error("Error in request processing", v.cause());
                promise.fail(v.cause());
            });
        } else {
            EventPublisherService eventPublisherService = new EventPublisherService(vertx, okapiHeaders);
            context.forEach(p -> eventPublisherService.publishLogRecord(new JsonObject().put(REQUESTS.value(), p), REQUEST_EXPIRED));
            pgClient.endTx(conn, done -> promise.complete());
        }
    }));
    return promise.future();
}
Also used : Future.succeededFuture(io.vertx.core.Future.succeededFuture) OPEN_AWAITING_DELIVERY(org.folio.rest.jaxrs.model.Request.Status.OPEN_AWAITING_DELIVERY) REQUEST_EXPIRED(org.folio.support.exception.LogEventType.REQUEST_EXPIRED) Date(java.util.Date) SimpleDateFormat(java.text.SimpleDateFormat) REQUESTS(org.folio.support.LogEventPayloadField.REQUESTS) ArrayList(java.util.ArrayList) OPEN_NOT_YET_FILLED(org.folio.rest.jaxrs.model.Request.Status.OPEN_NOT_YET_FILLED) HashSet(java.util.HashSet) OPEN_AWAITING_PICKUP(org.folio.rest.jaxrs.model.Request.Status.OPEN_AWAITING_PICKUP) DbUtil.rowSetToStream(org.folio.support.DbUtil.rowSetToStream) REQUEST_TABLE(org.folio.support.ModuleConstants.REQUEST_TABLE) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Request(org.folio.rest.jaxrs.model.Request) Map(java.util.Map) JsonObject(io.vertx.core.json.JsonObject) RowSet(io.vertx.sqlclient.RowSet) ZoneOffset(java.time.ZoneOffset) AsyncResult(io.vertx.core.AsyncResult) CLOSED_UNFILLED(org.folio.rest.jaxrs.model.Request.Status.CLOSED_UNFILLED) Collectors.toSet(java.util.stream.Collectors.toSet) OPEN_IN_TRANSIT(org.folio.rest.jaxrs.model.Request.Status.OPEN_IN_TRANSIT) GenericCompositeFuture(org.folio.okapi.common.GenericCompositeFuture) ORIGINAL(org.folio.support.LogEventPayloadField.ORIGINAL) Collections.emptyList(java.util.Collections.emptyList) TimeZone(java.util.TimeZone) Promise(io.vertx.core.Promise) Vertx(io.vertx.core.Vertx) Set(java.util.Set) SQLConnection(org.folio.rest.persist.SQLConnection) Collectors(java.util.stream.Collectors) Future(io.vertx.core.Future) String.format(java.lang.String.format) PostgresClient(org.folio.rest.persist.PostgresClient) CLOSED_PICKUP_EXPIRED(org.folio.rest.jaxrs.model.Request.Status.CLOSED_PICKUP_EXPIRED) Collectors.toList(java.util.stream.Collectors.toList) List(java.util.List) Logger(org.apache.logging.log4j.Logger) Row(io.vertx.sqlclient.Row) UPDATED(org.folio.support.LogEventPayloadField.UPDATED) EventPublisherService(org.folio.service.EventPublisherService) Comparator(java.util.Comparator) LogManager(org.apache.logging.log4j.LogManager) ArrayList(java.util.ArrayList) JsonObject(io.vertx.core.json.JsonObject) PostgresClient(org.folio.rest.persist.PostgresClient) EventPublisherService(org.folio.service.EventPublisherService)

Aggregations

AsyncResult (io.vertx.core.AsyncResult)1 Future (io.vertx.core.Future)1 Future.succeededFuture (io.vertx.core.Future.succeededFuture)1 Promise (io.vertx.core.Promise)1 Vertx (io.vertx.core.Vertx)1 JsonObject (io.vertx.core.json.JsonObject)1 Row (io.vertx.sqlclient.Row)1 RowSet (io.vertx.sqlclient.RowSet)1 String.format (java.lang.String.format)1 SimpleDateFormat (java.text.SimpleDateFormat)1 ZoneOffset (java.time.ZoneOffset)1 ArrayList (java.util.ArrayList)1 Collections.emptyList (java.util.Collections.emptyList)1 Comparator (java.util.Comparator)1 Date (java.util.Date)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Map (java.util.Map)1 Set (java.util.Set)1 TimeZone (java.util.TimeZone)1