mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-13 08:55:44 +01:00
Fixes self-links in sources
This commit is contained in:
@@ -17,7 +17,7 @@ public class BrowserResultToBrowserResultDtoMapper {
|
|||||||
@Inject
|
@Inject
|
||||||
private ResourceLinks resourceLinks;
|
private ResourceLinks resourceLinks;
|
||||||
|
|
||||||
public BrowserResultDto map(BrowserResult browserResult, NamespaceAndName namespaceAndName) {
|
public BrowserResultDto map(BrowserResult browserResult, NamespaceAndName namespaceAndName, String path) {
|
||||||
BrowserResultDto browserResultDto = new BrowserResultDto();
|
BrowserResultDto browserResultDto = new BrowserResultDto();
|
||||||
|
|
||||||
browserResultDto.setTag(browserResult.getTag());
|
browserResultDto.setTag(browserResult.getTag());
|
||||||
@@ -30,7 +30,7 @@ public class BrowserResultToBrowserResultDtoMapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
browserResultDto.setFiles(fileObjectDtoList);
|
browserResultDto.setFiles(fileObjectDtoList);
|
||||||
this.addLinks(browserResult, browserResultDto, namespaceAndName);
|
this.addLinks(browserResult, browserResultDto, namespaceAndName, path);
|
||||||
return browserResultDto;
|
return browserResultDto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,11 +38,14 @@ public class BrowserResultToBrowserResultDtoMapper {
|
|||||||
return fileObjectToFileObjectDtoMapper.map(fileObject, namespaceAndName, revision);
|
return fileObjectToFileObjectDtoMapper.map(fileObject, namespaceAndName, revision);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addLinks(BrowserResult browserResult, BrowserResultDto dto, NamespaceAndName namespaceAndName) {
|
private void addLinks(BrowserResult browserResult, BrowserResultDto dto, NamespaceAndName namespaceAndName, String path) {
|
||||||
|
if (path.equals("/")) {
|
||||||
|
path = "";
|
||||||
|
}
|
||||||
if (browserResult.getRevision() == null) {
|
if (browserResult.getRevision() == null) {
|
||||||
dto.add(Links.linkingTo().self(resourceLinks.source().selfWithoutRevision(namespaceAndName.getNamespace(), namespaceAndName.getName())).build());
|
dto.add(Links.linkingTo().self(resourceLinks.source().selfWithoutRevision(namespaceAndName.getNamespace(), namespaceAndName.getName())).build());
|
||||||
} else {
|
} else {
|
||||||
dto.add(Links.linkingTo().self(resourceLinks.source().self(namespaceAndName.getNamespace(), namespaceAndName.getName(), browserResult.getRevision())).build());
|
dto.add(Links.linkingTo().self(resourceLinks.source().sourceWithPath(namespaceAndName.getNamespace(), namespaceAndName.getName(), browserResult.getRevision(), path)).build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ public class SourceRootResource {
|
|||||||
BrowserResult browserResult = browseCommand.getBrowserResult();
|
BrowserResult browserResult = browseCommand.getBrowserResult();
|
||||||
|
|
||||||
if (browserResult != null) {
|
if (browserResult != null) {
|
||||||
return Response.ok(browserResultToBrowserResultDtoMapper.map(browserResult, namespaceAndName)).build();
|
return Response.ok(browserResultToBrowserResultDtoMapper.map(browserResult, namespaceAndName, path)).build();
|
||||||
} else {
|
} else {
|
||||||
return Response.status(Response.Status.NOT_FOUND).build();
|
return Response.status(Response.Status.NOT_FOUND).build();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ public class BrowserResultToBrowserResultDtoMapperTest {
|
|||||||
public void shouldMapAttributesCorrectly() {
|
public void shouldMapAttributesCorrectly() {
|
||||||
BrowserResult browserResult = createBrowserResult();
|
BrowserResult browserResult = createBrowserResult();
|
||||||
|
|
||||||
BrowserResultDto dto = mapper.map(browserResult, new NamespaceAndName("foo", "bar"));
|
BrowserResultDto dto = mapper.map(browserResult, new NamespaceAndName("foo", "bar"), "path");
|
||||||
|
|
||||||
assertEqualAttributes(browserResult, dto);
|
assertEqualAttributes(browserResult, dto);
|
||||||
}
|
}
|
||||||
@@ -81,12 +81,22 @@ public class BrowserResultToBrowserResultDtoMapperTest {
|
|||||||
BrowserResult browserResult = createBrowserResult();
|
BrowserResult browserResult = createBrowserResult();
|
||||||
NamespaceAndName namespaceAndName = new NamespaceAndName("foo", "bar");
|
NamespaceAndName namespaceAndName = new NamespaceAndName("foo", "bar");
|
||||||
|
|
||||||
BrowserResultDto dto = mapper.map(browserResult, namespaceAndName);
|
BrowserResultDto dto = mapper.map(browserResult, namespaceAndName, "path");
|
||||||
|
|
||||||
verify(fileObjectToFileObjectDtoMapper).map(fileObject1, namespaceAndName, "Revision");
|
verify(fileObjectToFileObjectDtoMapper).map(fileObject1, namespaceAndName, "Revision");
|
||||||
verify(fileObjectToFileObjectDtoMapper).map(fileObject2, namespaceAndName, "Revision");
|
verify(fileObjectToFileObjectDtoMapper).map(fileObject2, namespaceAndName, "Revision");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldSetLinksCorrectly() {
|
||||||
|
BrowserResult browserResult = createBrowserResult();
|
||||||
|
NamespaceAndName namespaceAndName = new NamespaceAndName("foo", "bar");
|
||||||
|
|
||||||
|
BrowserResultDto dto = mapper.map(browserResult, namespaceAndName, "path");
|
||||||
|
|
||||||
|
assertThat(dto.getLinks().getLinkBy("self").get().getHref()).contains("path");
|
||||||
|
}
|
||||||
|
|
||||||
private BrowserResult createBrowserResult() {
|
private BrowserResult createBrowserResult() {
|
||||||
BrowserResult browserResult = new BrowserResult();
|
BrowserResult browserResult = new BrowserResult();
|
||||||
browserResult.setTag("Tag");
|
browserResult.setTag("Tag");
|
||||||
|
|||||||
Reference in New Issue
Block a user