X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-ncmp-service%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fncmp%2Fapi%2Fimpl%2Futils%2FDmiServiceUrlBuilder.java;h=d855442c53d83c9d9954717b4e7f0e0412c6c0d9;hb=4303e5e87086e72a1a494968b0b426ca9fc46b30;hp=5f4a6540c21829c87abbae6b29b21bbf3e185079;hpb=e5254a7b007e4a0dc59003d94f43e688c25cf7d1;p=cps.git diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/DmiServiceUrlBuilder.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/DmiServiceUrlBuilder.java index 5f4a6540c..d855442c5 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/DmiServiceUrlBuilder.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/DmiServiceUrlBuilder.java @@ -1,6 +1,6 @@ /* * ============LICENSE_START======================================================= - * Copyright (C) 2022 Nordix Foundation + * Copyright (C) 2022-2023 Nordix Foundation * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,16 +20,12 @@ package org.onap.cps.ncmp.api.impl.utils; -import static org.onap.cps.ncmp.api.impl.operations.RequiredDmiService.DATA; - import java.util.HashMap; import java.util.Map; import lombok.RequiredArgsConstructor; import org.apache.logging.log4j.util.Strings; import org.apache.logging.log4j.util.TriConsumer; import org.onap.cps.ncmp.api.impl.config.NcmpConfiguration; -import org.onap.cps.ncmp.api.impl.operations.DmiOperations; -import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle; import org.onap.cps.spi.utils.CpsValidator; import org.springframework.stereotype.Component; import org.springframework.util.LinkedMultiValueMap; @@ -52,13 +48,23 @@ public class DmiServiceUrlBuilder { */ public String getDmiDatastoreUrl(final MultiValueMap queryParams, final Map uriVariables) { - final UriComponentsBuilder uriComponentsBuilder = getCmHandleUrl() - .pathSegment("data") - .pathSegment("ds") - .pathSegment("{dataStore}") - .queryParams(queryParams) - .uriVariables(uriVariables); - return uriComponentsBuilder.buildAndExpand().toUriString(); + return getUriComponentsBuilder(getResourceDataBasePathUriBuilder(), queryParams, uriVariables) + .buildAndExpand().toUriString(); + } + + /** + * This method builds data operation request url. + * + * @param dataoperationRequestQueryParams query param map as key, value pair + * @param dataoperationRequestUriVariables uri param map as key (placeholder), value pair + * @return {@code String} data operation request url as string + */ + public String getDataOperationRequestUrl(final MultiValueMap dataoperationRequestQueryParams, + final Map dataoperationRequestUriVariables) { + return getDataOperationResourceDataBasePathUriBuilder() + .queryParams(dataoperationRequestQueryParams) + .uriVariables(dataoperationRequestUriVariables) + .buildAndExpand().toUriString(); } /** @@ -66,7 +72,7 @@ public class DmiServiceUrlBuilder { * * @return {@code UriComponentsBuilder} dmi service url builder object */ - public UriComponentsBuilder getCmHandleUrl() { + public UriComponentsBuilder getResourceDataBasePathUriBuilder() { return UriComponentsBuilder.newInstance() .path("{dmiServiceName}") .pathSegment("{dmiBasePath}") @@ -75,24 +81,51 @@ public class DmiServiceUrlBuilder { .pathSegment("{cmHandleId}"); } + /** + * This method creates the dmi service url builder object with path variables for data operation request. + * + * @return {@code UriComponentsBuilder} dmi service url builder object + */ + public UriComponentsBuilder getDataOperationResourceDataBasePathUriBuilder() { + return UriComponentsBuilder.newInstance() + .path("{dmiServiceName}") + .pathSegment("{dmiBasePath}") + .pathSegment("v1") + .pathSegment("data"); + } + /** * This method populates uri variables. * - * @param yangModelCmHandle get dmi service name + * @param dataStoreName data store name + * @param dmiServiceName dmi service name * @param cmHandleId cm handle id for dmi registration * @return {@code String} dmi service url as string */ - public Map populateUriVariables(final YangModelCmHandle yangModelCmHandle, - final String cmHandleId, - final DmiOperations.DataStoreEnum dataStore) { + public Map populateUriVariables(final String dataStoreName, + final String dmiServiceName, + final String cmHandleId) { cpsValidator.validateNameCharacters(cmHandleId); final Map uriVariables = new HashMap<>(); final String dmiBasePath = dmiProperties.getDmiBasePath(); - uriVariables.put("dmiServiceName", - yangModelCmHandle.resolveDmiServiceName(DATA)); + uriVariables.put("dmiServiceName", dmiServiceName); uriVariables.put("dmiBasePath", dmiBasePath); uriVariables.put("cmHandleId", cmHandleId); - uriVariables.put("dataStore", dataStore.getValue()); + uriVariables.put("dataStore", dataStoreName); + return uriVariables; + } + + /** + * This method populates uri variables for data operation request. + * + * @param dmiServiceName dmi service name + * @return {@code Map} uri variables as map + */ + public Map populateDataOperationRequestUriVariables(final String dmiServiceName) { + final Map uriVariables = new HashMap<>(); + final String dmiBasePath = dmiProperties.getDmiBasePath(); + uriVariables.put("dmiServiceName", dmiServiceName); + uriVariables.put("dmiBasePath", dmiBasePath); return uriVariables; } @@ -117,6 +150,21 @@ public class DmiServiceUrlBuilder { return queryParams; } + /** + * This method is used to populate map from query params for data operation request. + * + * @param topicParamInQuery topic into url param + * @param requestId unique id of response for valid topic + * @return all valid query params as map + */ + public MultiValueMap getDataOperationRequestQueryParams(final String topicParamInQuery, + final String requestId) { + final MultiValueMap queryParams = new LinkedMultiValueMap<>(); + getQueryParamConsumer().accept("topic", topicParamInQuery, queryParams); + getQueryParamConsumer().accept("requestId", requestId, queryParams); + return queryParams; + } + private TriConsumer> getQueryParamConsumer() { return (paramName, paramValue, paramMap) -> { if (Strings.isNotEmpty(paramValue)) { @@ -124,4 +172,15 @@ public class DmiServiceUrlBuilder { } }; } + + private UriComponentsBuilder getUriComponentsBuilder(final UriComponentsBuilder uriComponentsBuilder, + final MultiValueMap queryParams, + final Map uriVariables) { + return uriComponentsBuilder + .pathSegment("data") + .pathSegment("ds") + .pathSegment("{dataStore}") + .queryParams(queryParams) + .uriVariables(uriVariables); + } }