Search in sources :

Example 51 with JournalRecord

use of org.folio.rest.jaxrs.model.JournalRecord in project mod-source-record-manager by folio-org.

the class MarcImportEventsHandler method handle.

@Override
public void handle(JournalService journalService, DataImportEventPayload eventPayload, String tenantId) throws JournalRecordMapperException {
    Optional<JournalParams> journalParamsOptional = JournalParams.JournalParamsEnum.getValue(eventPayload.getEventType()).getJournalParams(eventPayload);
    if (journalParamsOptional.isPresent()) {
        JournalParams journalParams = journalParamsOptional.get();
        JournalRecord journalRecord = JournalUtil.buildJournalRecordByEvent(eventPayload, journalParams.journalActionType, journalParams.journalEntityType, journalParams.journalActionStatus);
        populateRecordTitleIfNeeded(journalRecord, eventPayload).onComplete(ar -> journalService.save(JsonObject.mapFrom(journalRecord), tenantId));
    }
}
Also used : JournalRecord(org.folio.rest.jaxrs.model.JournalRecord)

Example 52 with JournalRecord

use of org.folio.rest.jaxrs.model.JournalRecord in project mod-source-record-manager by folio-org.

the class StoredRecordChunksKafkaHandlerTest method writeSavedRecordsInfoToImportJournal.

private void writeSavedRecordsInfoToImportJournal(String marcBibRecordPath, EntityType entityType) throws IOException {
    // given
    Record record = Json.decodeValue(TestUtil.readFileFromPath(marcBibRecordPath), Record.class);
    RecordsBatchResponse savedRecordsBatch = new RecordsBatchResponse().withRecords(List.of(record)).withTotalRecords(1);
    Event event = new Event().withId(UUID.randomUUID().toString()).withEventPayload(Json.encode(savedRecordsBatch));
    when(kafkaRecord.value()).thenReturn(Json.encode(event));
    when(kafkaRecord.headers()).thenReturn(List.of(KafkaHeader.header(OKAPI_HEADER_TENANT, TENANT_ID)));
    when(eventProcessedService.collectData(STORED_RECORD_CHUNKS_KAFKA_HANDLER_UUID, event.getId(), TENANT_ID)).thenReturn(Future.succeededFuture());
    when(mappingRuleCache.get(new MappingRuleCacheKey(TENANT_ID, entityType))).thenReturn(Future.succeededFuture(Optional.of(mappingRules)));
    when(recordsPublishingService.sendEventsWithRecords(anyList(), isNull(), any(OkapiConnectionParams.class), anyString())).thenReturn(Future.succeededFuture(true));
    // when
    Future<String> future = storedRecordChunksKafkaHandler.handle(kafkaRecord);
    // then
    assertTrue(future.succeeded());
    verify(journalService, times(1)).saveBatch(journalRecordsCaptor.capture(), eq(TENANT_ID));
    assertEquals(1, journalRecordsCaptor.getValue().size());
    JournalRecord journalRecord = journalRecordsCaptor.getValue().getJsonObject(0).mapTo(JournalRecord.class);
    assertEquals(record.getId(), journalRecord.getSourceId());
    assertEquals(entityType, journalRecord.getEntityType());
    assertEquals(JournalRecord.ActionType.CREATE, journalRecord.getActionType());
    assertEquals(JournalRecord.ActionStatus.COMPLETED, journalRecord.getActionStatus());
    assertEquals("The Journal of ecclesiastical history.", journalRecord.getTitle());
}
Also used : MappingRuleCacheKey(org.folio.services.entity.MappingRuleCacheKey) RecordsBatchResponse(org.folio.rest.jaxrs.model.RecordsBatchResponse) Event(org.folio.rest.jaxrs.model.Event) JournalRecord(org.folio.rest.jaxrs.model.JournalRecord) Record(org.folio.rest.jaxrs.model.Record) KafkaConsumerRecord(io.vertx.kafka.client.consumer.KafkaConsumerRecord) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) OkapiConnectionParams(org.folio.dataimport.util.OkapiConnectionParams) JournalRecord(org.folio.rest.jaxrs.model.JournalRecord)

Aggregations

JournalRecord (org.folio.rest.jaxrs.model.JournalRecord)52 Test (org.junit.Test)42 Date (java.util.Date)40 Future (io.vertx.core.Future)34 List (java.util.List)34 AbstractRestTest (org.folio.rest.impl.AbstractRestTest)34 JobExecution (org.folio.rest.jaxrs.model.JobExecution)34 COMPLETED (org.folio.rest.jaxrs.model.JournalRecord.ActionStatus.COMPLETED)34 CREATE (org.folio.rest.jaxrs.model.JournalRecord.ActionType.CREATE)34 Async (io.vertx.ext.unit.Async)33 TestContext (io.vertx.ext.unit.TestContext)33 VertxUnitRunner (io.vertx.ext.unit.junit.VertxUnitRunner)33 UUID (java.util.UUID)33 PostgresClientFactory (org.folio.dao.util.PostgresClientFactory)33 ERROR (org.folio.rest.jaxrs.model.JournalRecord.ActionStatus.ERROR)33 MODIFY (org.folio.rest.jaxrs.model.JournalRecord.ActionType.MODIFY)33 Matchers.is (org.hamcrest.Matchers.is)33 Assert (org.junit.Assert)33 Before (org.junit.Before)33 RunWith (org.junit.runner.RunWith)33