X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Fclients%2FStdA1ClientVersion1.java;h=7480b939a51fe58a4702ad721a58ade5b7b0f52a;hb=99dbc2588e004ad1c5a6bac78265e3875a669878;hp=8c1ed38df43a0c0c6e063a88d5403bd720d79f8f;hpb=e2ac0dcf30eaf828a7c7bbd722730410f4110030;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/clients/StdA1ClientVersion1.java b/policy-agent/src/main/java/org/oransc/policyagent/clients/StdA1ClientVersion1.java index 8c1ed38d..7480b939 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/clients/StdA1ClientVersion1.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/clients/StdA1ClientVersion1.java @@ -25,22 +25,57 @@ import java.util.List; import org.oransc.policyagent.configuration.RicConfig; import org.oransc.policyagent.repository.Policy; -import org.springframework.web.util.UriComponentsBuilder; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; public class StdA1ClientVersion1 implements A1Client { + + public static class UriBuilder implements A1UriBuilder { + + private final RicConfig ricConfig; + + public UriBuilder(RicConfig ricConfig) { + this.ricConfig = ricConfig; + } + + @Override + public String createPutPolicyUri(String type, String policyId) { + return policiesBaseUri() + policyId; + } + + public String createGetPolicyIdsUri() { + return baseUri() + "/policies"; + } + + @Override + public String createDeleteUri(String type, String policyId) { + return policiesBaseUri() + policyId; + } + + public String createGetPolicyStatusUri(String type, String policyId) { + return policiesBaseUri() + policyId + "/status"; + } + + private String baseUri() { + return ricConfig.baseUrl() + "/A1-P/v1"; + } + + private String policiesBaseUri() { + return createGetPolicyIdsUri() + "/"; + } + } + private final AsyncRestClient restClient; + private final UriBuilder uri; public StdA1ClientVersion1(RicConfig ricConfig) { - final String urlPrefix = "/A1-P/v1"; - String baseUrl = ricConfig.baseUrl() + urlPrefix; - this.restClient = new AsyncRestClient(baseUrl); + this(new AsyncRestClient(""), ricConfig); } - public StdA1ClientVersion1(AsyncRestClient restClient) { + public StdA1ClientVersion1(AsyncRestClient restClient, RicConfig ricConfig) { this.restClient = restClient; + this.uri = new UriBuilder(ricConfig); } @Override @@ -51,9 +86,7 @@ public class StdA1ClientVersion1 implements A1Client { @Override public Mono putPolicy(Policy policy) { - final UriComponentsBuilder policyUri = UriComponentsBuilder.fromPath("/policies/{policy-id}"); - final String uri = policyUri.buildAndExpand(policy.id()).toUriString(); - return restClient.put(uri, policy.json()) // + return restClient.put(uri.createPutPolicyUri(policy.type().name(), policy.id()), policy.json()) // .flatMap(JsonHelper::validateJson); } @@ -86,20 +119,15 @@ public class StdA1ClientVersion1 implements A1Client { @Override public Mono getPolicyStatus(Policy policy) { - final UriComponentsBuilder builder = UriComponentsBuilder.fromPath("/policies/{policy-id}/status"); - String uri = builder.buildAndExpand(policy.id()).toUriString(); - return restClient.get(uri); + return restClient.get(uri.createGetPolicyStatusUri(policy.type().name(), policy.id())); } private Flux getPolicyIds() { - final String uri = "/policies"; - return restClient.get(uri) // + return restClient.get(uri.createGetPolicyIdsUri()) // .flatMapMany(JsonHelper::parseJsonArrayOfString); } private Mono deletePolicyById(String policyId) { - final UriComponentsBuilder builder = UriComponentsBuilder.fromPath("/policies/{policy-id}"); - String uri = builder.buildAndExpand(policyId).toUriString(); - return restClient.delete(uri); + return restClient.delete(uri.createDeleteUri("", policyId)); } }