diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/api/v2/resources/GitRepositoryConfigEnricher.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/api/v2/resources/GitRepositoryConfigEnricher.java index 5aecd4229d..2566fd82f7 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/api/v2/resources/GitRepositoryConfigEnricher.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/api/v2/resources/GitRepositoryConfigEnricher.java @@ -6,18 +6,13 @@ import sonia.scm.plugin.Extension; import sonia.scm.repository.GitRepositoryHandler; import sonia.scm.repository.NamespaceAndName; import sonia.scm.repository.RepositoryManager; -import sonia.scm.web.JsonEnricherBase; -import sonia.scm.web.JsonEnricherContext; +import sonia.scm.web.AbstractRepositoryJsonEnricher; import javax.inject.Inject; import javax.inject.Provider; -import static java.util.Collections.singletonMap; -import static sonia.scm.web.VndMediaType.REPOSITORY; -import static sonia.scm.web.VndMediaType.REPOSITORY_COLLECTION; - @Extension -public class GitRepositoryConfigEnricher extends JsonEnricherBase { +public class GitRepositoryConfigEnricher extends AbstractRepositoryJsonEnricher { private final Provider scmPathInfoStore; private final RepositoryManager manager; @@ -30,29 +25,13 @@ public class GitRepositoryConfigEnricher extends JsonEnricherBase { } @Override - public void enrich(JsonEnricherContext context) { - if (resultHasMediaType(REPOSITORY, context)) { - JsonNode repositoryNode = context.getResponseEntity(); - enrichRepositoryNode(repositoryNode); - } else if (resultHasMediaType(REPOSITORY_COLLECTION, context)) { - JsonNode repositoryCollectionNode = context.getResponseEntity().get("_embedded").withArray("repositories"); - repositoryCollectionNode.elements().forEachRemaining(this::enrichRepositoryNode); - } - } - - private void enrichRepositoryNode(JsonNode repositoryNode) { - String namespace = repositoryNode.get("namespace").asText(); - String name = repositoryNode.get("name").asText(); - + protected void enrichRepositoryNode(JsonNode repositoryNode, String namespace, String name) { if (GitRepositoryHandler.TYPE_NAME.equals(manager.get(new NamespaceAndName(namespace, name)).getType())) { String repositoryConfigLink = new LinkBuilder(scmPathInfoStore.get().get(), GitConfigResource.class) .method("getRepositoryConfig") .parameters(namespace, name) .href(); - - JsonNode newPullRequestNode = createObject(singletonMap("href", value(repositoryConfigLink))); - - addPropertyNode(repositoryNode.get("_links"), "configuration", newPullRequestNode); + addLink(repositoryNode, "configuration", repositoryConfigLink); } } }