Skip to content
Snippets Groups Projects
Commit 76af24d7 authored by Tobias Bruns's avatar Tobias Bruns
Browse files

OZG-7689 add eventName to vorgang header

parent e4ade58b
No related branches found
No related tags found
1 merge request!3Ozg 7689 erweitern
......@@ -85,6 +85,10 @@
<groupId>org.springframework</groupId>
<artifactId>spring-webflux</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
<!-- test -->
<dependency>
......
......@@ -99,7 +99,7 @@ class ProcessorEventListener {
}
void processVorgang(@NonNull VorgangId vorgangId, String eventName) {
var vorgang = getVorgang(vorgangId);
var vorgang = getVorgang(vorgangId).withEvent(eventName);
processorService.processVorgang(vorgang, eventName)
.forEach(processorResultMono -> processorResultMono.doOnError(cause -> handleError(cause, vorgangId))
......
......@@ -24,6 +24,7 @@
package de.ozgcloud.processor.vorgang;
import java.util.List;
import java.util.Objects;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -43,6 +44,7 @@ import de.ozgcloud.apilib.vorgang.OzgCloudFormField;
import de.ozgcloud.apilib.vorgang.OzgCloudSubForm;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgang;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangStatus;
import de.ozgcloud.common.binaryfile.FileId;
import de.ozgcloud.processor.ProcessorManagerConfiguration;
......@@ -53,6 +55,7 @@ public interface ProcessorVorgangMapper {
@Mapping(target = "eingang", qualifiedByName = "mapEingang", source = "eingangs")
@Mapping(target = "formId", qualifiedByName = "getFormId", source = "eingangs")
@Mapping(target = "formEngineName", qualifiedByName = "mapFormEngineName", source = "eingangs")
@Mapping(target = "header.event", ignore = true)
Vorgang mapVorgang(OzgCloudVorgang ozgCloudVorgang);
default VorgangId mapId(OzgCloudVorgangId id) {
......@@ -109,4 +112,9 @@ public interface ProcessorVorgangMapper {
default FileId fromOzgCloudId(OzgCloudFileId ozgCloudFileId) {
return FileId.from(ozgCloudFileId.toString());
}
default String map(OzgCloudVorgangStatus value) {
return Objects.nonNull(value) ? value.toString() : null;
}
}
......@@ -23,11 +23,14 @@
*/
package de.ozgcloud.processor.vorgang;
import java.time.ZonedDateTime;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonProperty.Access;
import lombok.Builder;
import lombok.Getter;
import lombok.With;
@Builder
@Getter
......@@ -43,9 +46,25 @@ public class Vorgang {
private String formId;
private Eingang eingang;
@With
@Builder.Default
private VorgangHeader header = VorgangHeader.builder().build();
@JsonProperty(access = Access.READ_ONLY, value = "vorgangId")
public String getId() {
return id.toString();
}
@Builder
@Getter
static class VorgangHeader {
@With
private String event;
private String status;
private ZonedDateTime createdAt;
}
public Vorgang withEvent(String event) {
return this.withHeader(header.withEvent(event));
}
}
......@@ -31,7 +31,7 @@ import de.ozgcloud.processor.processor.ProcessorProperties.Form.FormBuilder;
public class FormTestFactory {
public static String EVENT = "VORGANG_CREATED";
public static final String EVENT = "VORGANG_CREATED";
public static Form create() {
return createBuilder().build();
......
......@@ -61,6 +61,7 @@ import de.ozgcloud.processor.event.EventService;
import de.ozgcloud.processor.result.ProcessorTechnicalException;
import de.ozgcloud.processor.result.ResultService;
import de.ozgcloud.processor.vorgang.Vorgang;
import de.ozgcloud.processor.vorgang.VorgangHeaderTestFactory;
import de.ozgcloud.processor.vorgang.VorgangId;
import de.ozgcloud.processor.vorgang.VorgangService;
import de.ozgcloud.processor.vorgang.VorgangTestFactory;
......@@ -95,6 +96,8 @@ class ProcessorEventListenerTest {
@Captor
private ArgumentCaptor<ProcessorResult> resultCaptor;
@Captor
private ArgumentCaptor<Vorgang> vorgangCaptor;
private static final VorgangCreatedEvent EVENT = new VorgangCreatedEvent(OzgCloudVorgangTestFactory.ID.toString());
......@@ -121,7 +124,9 @@ class ProcessorEventListenerTest {
void shouldCallProcessVorgang() {
listener.triggerNewVorgangProcessors(EVENT);
verify(processorService).processVorgang(vorgang, "VORGANG_CREATED");
verify(processorService).processVorgang(vorgangCaptor.capture(), eq("VORGANG_CREATED"));
assertThat(vorgangCaptor.getValue()).usingRecursiveComparison()
.isEqualTo(VorgangTestFactory.createWithHeader(VorgangHeaderTestFactory.createBuilder().event("VORGANG_CREATED").build()));
}
@Test
......@@ -374,6 +379,7 @@ class ProcessorEventListenerTest {
void init() {
when(commandService.getCommand(any())).thenReturn(command);
when(eventService.getEventNameFromOrder(any())).thenReturn(Optional.of(EVENT_NAME));
when(vorgangService.getVorgang(any())).thenReturn(VorgangTestFactory.create());
}
@Test
......
......@@ -42,7 +42,8 @@ class ProcessorVorgangMapperTest {
void shouldMapAllField() {
var mapped = mapper.mapVorgang(OzgCloudVorgangTestFactory.create());
assertThat(mapped).usingRecursiveComparison().isEqualTo(VorgangTestFactory.create());
assertThat(mapped).usingRecursiveComparison()
.isEqualTo(VorgangTestFactory.createWithHeader(VorgangHeaderTestFactory.createBuilder().event(null).build()));
}
@Test
......
package de.ozgcloud.processor.vorgang;
import java.time.ZonedDateTime;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangHeaderTestFactory;
import de.ozgcloud.processor.vorgang.Vorgang.VorgangHeader;
public class VorgangHeaderTestFactory {
static final ZonedDateTime CREATED_AT = OzgCloudVorgangHeaderTestFactory.CREATED_AT;
static final String STATUS = OzgCloudVorgangHeaderTestFactory.STATUS_STR;
static final String EVENT = "ABGESCHLOSSEN";
public static VorgangHeader create() {
return createBuilder().build();
}
public static VorgangHeader.VorgangHeaderBuilder createBuilder() {
return VorgangHeader.builder()
.createdAt(CREATED_AT)
.status(STATUS)
.event(EVENT);
}
}
......@@ -27,6 +27,7 @@ import static de.ozgcloud.apilib.vorgang.OzgCloudVorgangTestFactory.*;
import de.ozgcloud.apilib.vorgang.OzgCloudEingangHeaderTestFactory;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangTestFactory;
import de.ozgcloud.processor.vorgang.Vorgang.VorgangHeader;
public class VorgangTestFactory {
......@@ -44,6 +45,11 @@ public class VorgangTestFactory {
.vorgangNummer(VORGANG_NUMMER)
.formId(OzgCloudEingangHeaderTestFactory.FORM_ID)
.formEngineName(OzgCloudEingangHeaderTestFactory.FORM_ENGINE_NAME)
.header(VorgangHeaderTestFactory.create())
.eingang(EingangTestFactory.create());
}
public static Vorgang createWithHeader(VorgangHeader header) {
return createBuilder().header(header).build();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment