Add more links (unconditional)

This commit is contained in:
René Pfeuffer
2018-05-29 15:36:52 +02:00
parent 0bb7c131ed
commit 92d5ec58b6
2 changed files with 33 additions and 7 deletions

View File

@@ -6,10 +6,13 @@ import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;
import sonia.scm.user.User;
import javax.ws.rs.core.UriBuilder;
import javax.ws.rs.core.UriInfo;
import java.util.LinkedHashMap;
import java.util.Map;
import static javax.ws.rs.core.Link.fromUri;
@Mapper
public abstract class User2UserDtoMapper {
@@ -23,7 +26,14 @@ public abstract class User2UserDtoMapper {
@AfterMapping
void appendLinks(@MappingTarget UserDto target, @Context UriInfo uriInfo) {
Map<String, Link> links = new LinkedHashMap<>();
links.put("self", new Link(uriInfo.getAbsolutePath()));
links.put("self", new Link(uriInfo.getBaseUri().resolve(fromUri(UriBuilder.fromResource(UserNewResource.class)
.path(UserNewResource.class, "get").build(target.getName())).build().getUri())));
links.put("delete", new Link(uriInfo.getBaseUri().resolve(fromUri(UriBuilder.fromResource(UserNewResource.class)
.path(UserNewResource.class, "delete").build(target.getName())).build().getUri())));
links.put("update", new Link(uriInfo.getBaseUri().resolve(fromUri(UriBuilder.fromResource(UserNewResource.class)
.path(UserNewResource.class, "update").build(target.getName())).build().getUri())));
links.put("create", new Link(uriInfo.getBaseUri().resolve(fromUri(UriBuilder.fromResource(UserNewResource.class)
.path(UserNewResource.class, "create").build()).build().getUri())));
target.setLinks(links);
}
}