- private void appendFieldsAndDepth(final String fieldsQuery, final Integer depthQuery, final StringBuilder builder) {
- final var doesFieldExists = (fieldsQuery != null && !fieldsQuery.isEmpty());
- if (doesFieldExists) {
- builder.append("?").append("fields=").append(fieldsQuery);
- }
- if (depthQuery != null) {
- if (!doesFieldExists) {
- builder.append("?");
- } else {
- builder.append("&");
- }
- builder.append("depth=").append(depthQuery);
+ /**
+ * This method updates the resource data from pass-through running data store for the cm handle identifier on given
+ * resource using dmi client.
+ *
+ * @param dmiServiceName dmi service name
+ * @param cmHandle network resource identifier
+ * @param resourceId resource identifier
+ * @param jsonBody json body for put operation
+ * @return {@code ResponseEntity} response entity
+ */
+ public ResponseEntity<String> updateResourceDataPassThroughRunningFromDmi(final String dmiServiceName,
+ final String cmHandle, final String resourceId, final String jsonBody) {
+ final StringBuilder stringBuilder =
+ getStringBuilderForPassThroughUrl(dmiServiceName, cmHandle, resourceId, DataStoreEnum.PASSTHROUGH_RUNNING);
+ return dmiRestClient.postOperationWithJsonData(stringBuilder.toString(), jsonBody, new HttpHeaders());
+ }
+
+ private String getDmiDatastoreUrl(final String dmiServiceName,
+ final String cmHandle,
+ final String resourceId,
+ final String optionsParamInQuery,
+ final DataStoreEnum dataStoreEnum) {
+ final var stringBuilder = getStringBuilderForPassThroughUrl(dmiServiceName,
+ cmHandle, resourceId, dataStoreEnum);
+ appendOptionsQuery(stringBuilder, optionsParamInQuery);
+ return stringBuilder.toString();
+ }
+
+ private StringBuilder getStringBuilderForPassThroughUrl(final String dmiServiceName,
+ final String cmHandle,
+ final String resourceId,
+ final DataStoreEnum dataStoreEnum) {
+ final var stringBuilder = new StringBuilder(dmiServiceName);
+ stringBuilder.append(DMI_API_PATH);
+ stringBuilder.append(DMI_CM_HANDLE_DATASTORE_PATH.replace("{cmHandle}", cmHandle));
+ stringBuilder.append(URL_SEPARATOR + dataStoreEnum.getValue());
+ stringBuilder.append("?" + RESOURCE_IDENTIFIER + "=" + resourceId);
+ return stringBuilder;
+ }
+
+ private void appendOptionsQuery(final StringBuilder stringBuilder,
+ final String optionsParamInQuery) {
+ if (optionsParamInQuery != null) {
+ stringBuilder.append("&").append(OPTIONS_QUERY_KEY).append("=").append(optionsParamInQuery);