Skip to content
Snippets Groups Projects
Commit 015d6990 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-2859 Kein createdBy link bei system manager user

parent 9ba514fb
No related branches found
No related tags found
No related merge requests found
......@@ -23,13 +23,23 @@ class HistorieModelAssembler implements RepresentationModelAssembler<Command, En
@Override
public EntityModel<Command> toModel(Command entity) {
var modelBuilder = ModelBuilder.fromEntity(entity).addLink(linkTo(HistorieController.class).slash(entity.getId()).withSelfRel());
var cleanCommand = unsetSystemUser(entity);
var modelBuilder = ModelBuilder.fromEntity(cleanCommand).addLink(linkTo(HistorieController.class).slash(cleanCommand.getId()).withSelfRel());
addAssignedTo(entity, modelBuilder);
addAssignedTo(cleanCommand, modelBuilder);
return modelBuilder.buildModel();
}
Command unsetSystemUser(Command entity) {
if (entity.getCreatedBy().toString().startsWith("system-notification_manager")) {
return entity.toBuilder().createdBy(null).build();
}
return entity;
}
private void addAssignedTo(Command entity, ModelBuilder<Command> modelBuilder) {
Optional.ofNullable(entity.getBody()).map(body -> body.get(ASSIGNED_TO_BODY_FIELD))
.ifPresent(assignedTo -> modelBuilder.addLink(linkTo(UserProfileController.class).slash(assignedTo).withRel(REL_ASSIGNED_TO)));
......
package de.itvsh.goofy.historie;
import static org.assertj.core.api.Assertions.*;
import java.util.Map;
import org.junit.jupiter.api.DisplayName;
......@@ -9,9 +11,8 @@ import org.mockito.InjectMocks;
import org.springframework.hateoas.IanaLinkRelations;
import org.springframework.hateoas.Link;
import static org.assertj.core.api.Assertions.*;
import de.itvsh.goofy.common.command.CommandTestFactory;
import de.itvsh.goofy.common.user.UserId;
import de.itvsh.goofy.common.user.UserProfileTestFactory;
class HistorieModelAssemblerTest {
......@@ -56,4 +57,24 @@ class HistorieModelAssemblerTest {
assertThat(model.getLink(HistorieModelAssembler.REL_ASSIGNED_TO)).isNotPresent();
}
}
@DisplayName("createdBy Link")
@Nested
class TestCreatedByLink {
@Test
void shouldExistingAtUser() {
var model = modelAssembler.toModel(CommandTestFactory.create());
assertThat(model.getLink("createdBy")).isPresent().get().extracting(Link::getHref)
.isEqualTo("/api/userProfiles/" + UserProfileTestFactory.ID);
}
@Test
void shouldNotExistingAtSystemNotificationMAnager() {
var model = modelAssembler
.toModel(CommandTestFactory.createBuilder().createdBy(UserId.from("system-notification_manager-new_vorgang")).build());
assertThat(model.getLink("createdBy")).isNotPresent();
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment