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=bba8f48fbd80cf6536ec11c8f30cb7eab5dda23d;hb=4031d43f06cb6ceb2e5bc39feb3e4a19ed3c6307;hp=5f4a6540c21829c87abbae6b29b21bbf3e185079;hpb=8c32ab510d9554ef6713f34d9895e2909e17200e;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..bba8f48fb 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,21 @@ 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 creates the dmi service url for bulk request. + * + * @param queryParams query param map as key,value pair + * @param uriVariables uri param map as key (placeholder),value pair + * @return {@code String} dmi service url as string + */ + public String getBulkRequestUrl(final MultiValueMap queryParams, + final Map uriVariables) { + return getUriComponentsBuilder(getBulkResourceDataBasePathUriBuilder(), queryParams, uriVariables) + .buildAndExpand().toUriString(); } /** @@ -66,7 +70,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 +79,37 @@ public class DmiServiceUrlBuilder { .pathSegment("{cmHandleId}"); } + /** + * This method creates the dmi service url builder object with path variables for batch of cm handles. + * + * @return {@code UriComponentsBuilder} dmi service url builder object + */ + public UriComponentsBuilder getBulkResourceDataBasePathUriBuilder() { + return UriComponentsBuilder.newInstance() + .path("{dmiServiceName}") + .pathSegment("{dmiBasePath}") + .pathSegment("v1") + .pathSegment("batch"); + } + /** * 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; } @@ -124,4 +141,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); + } }