summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/servlets/TypesFetchServlet.java46
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesFetchServletTest.java279
-rw-r--r--catalog-ui/src/app/ng2/pages/workspace/req-and-capabilities/req-and-capabilities.service.ts32
-rw-r--r--catalog-ui/src/app/ng2/services/tosca-types.service.ts5
4 files changed, 287 insertions, 75 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/TypesFetchServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/TypesFetchServlet.java
index f461378637..df7fcd5e17 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/TypesFetchServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/TypesFetchServlet.java
@@ -99,12 +99,26 @@ public class TypesFetchServlet extends AbstractValidationsServlet {
private final ArtifactsBusinessLogic artifactsBusinessLogic;
@Inject
- public TypesFetchServlet(UserBusinessLogic userBusinessLogic, ComponentInstanceBusinessLogic componentInstanceBL, ComponentsUtils componentsUtils,
- ServletUtils servletUtils, ResourceImportManager resourceImportManager, PropertyBusinessLogic propertyBusinessLogic,
- RelationshipTypeBusinessLogic relationshipTypeBusinessLogic, CapabilitiesBusinessLogic capabilitiesBusinessLogic,
- InterfaceOperationBusinessLogic interfaceOperationBusinessLogic, ResourceBusinessLogic resourceBusinessLogic,
- ArtifactsBusinessLogic artifactsBusinessLogic) {
- super(userBusinessLogic, componentInstanceBL, componentsUtils, servletUtils, resourceImportManager);
+ public TypesFetchServlet(
+ UserBusinessLogic userBusinessLogic,
+ ComponentInstanceBusinessLogic componentInstanceBL,
+ ComponentsUtils componentsUtils,
+ ServletUtils servletUtils,
+ ResourceImportManager resourceImportManager,
+ PropertyBusinessLogic propertyBusinessLogic,
+ RelationshipTypeBusinessLogic relationshipTypeBusinessLogic,
+ CapabilitiesBusinessLogic capabilitiesBusinessLogic,
+ InterfaceOperationBusinessLogic interfaceOperationBusinessLogic,
+ ResourceBusinessLogic resourceBusinessLogic,
+ ArtifactsBusinessLogic artifactsBusinessLogic
+ ) {
+ super(
+ userBusinessLogic,
+ componentInstanceBL,
+ componentsUtils,
+ servletUtils,
+ resourceImportManager
+ );
this.propertyBusinessLogic = propertyBusinessLogic;
this.relationshipTypeBusinessLogic = relationshipTypeBusinessLogic;
this.capabilitiesBusinessLogic = capabilitiesBusinessLogic;
@@ -281,7 +295,11 @@ public class TypesFetchServlet extends AbstractValidationsServlet {
@ApiResponse(responseCode = "400", description = "Invalid content / Missing content"),
@ApiResponse(responseCode = "404", description = "Node types not found")})
@PermissionAllowed(AafPermission.PermNames.INTERNAL_ALL_VALUE)
- public Response getAllNodeTypesServlet(@Context final HttpServletRequest request, @HeaderParam(value = Constants.USER_ID_HEADER) String userId) {
+ public Response getAllNodeTypesServlet(
+ @Context final HttpServletRequest request,
+ @HeaderParam(value = Constants.USER_ID_HEADER) String userId,
+ @Parameter(description = "model", required = false) @QueryParam("model") String modelName
+ ) {
Wrapper<Response> responseWrapper = new Wrapper<>();
Wrapper<User> userWrapper = new Wrapper<>();
ServletContext context = request.getSession().getServletContext();
@@ -290,15 +308,16 @@ public class TypesFetchServlet extends AbstractValidationsServlet {
try {
init();
validateUserExist(responseWrapper, userWrapper, userId);
+ modelName = ValidationUtils.sanitizeInputString(modelName);
if (responseWrapper.isEmpty()) {
String url = request.getMethod() + " " + request.getRequestURI();
log.debug("Start handle request of {} | modifier id is {}", url, userId);
- response = getComponent(resourceBusinessLogic, true, userId);
+ response = getComponent(resourceBusinessLogic, true, userId, modelName);
if (response.isRight()) {
return response.right().value();
}
componentMap = new HashMap<>(response.left().value());
- response = getComponent(resourceBusinessLogic, false, userId);
+ response = getComponent(resourceBusinessLogic, false, userId, modelName);
if (response.isRight()) {
return response.right().value();
}
@@ -340,13 +359,16 @@ public class TypesFetchServlet extends AbstractValidationsServlet {
}
-
- private Either<Map<String, Component>, Response> getComponent(ComponentBusinessLogic resourceBL, boolean isAbstract, String userId) {
+ private Either<Map<String, Component>, Response> getComponent(
+ ComponentBusinessLogic resourceBL,
+ boolean isAbstract, String userId,
+ final String modelName
+ ) {
Either<List<Component>, ResponseFormat> actionResponse;
List<Component> componentList;
actionResponse = resourceBL
.getLatestVersionNotAbstractComponentsMetadata(isAbstract, HighestFilterEnum.HIGHEST_ONLY, ComponentTypeEnum.RESOURCE, null, userId,
- null, false);
+ modelName, false);
if (actionResponse.isRight()) {
log.debug(FAILED_TO_GET_ALL_NON_ABSTRACT, ComponentTypeEnum.RESOURCE.getValue());
return Either.right(buildErrorResponse(actionResponse.right().value()));
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesFetchServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesFetchServletTest.java
index ef4ec18ec9..1808560b4e 100644
--- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesFetchServletTest.java
+++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesFetchServletTest.java
@@ -20,12 +20,29 @@
package org.openecomp.sdc.be.servlets;
-import static org.mockito.Mockito.mock;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.when;
+import fj.data.Either;
+import java.nio.file.Path;
+import java.util.List;
+import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.core.Response;
-import org.junit.Test;
+import javax.servlet.http.HttpSession;
+import javax.ws.rs.core.MediaType;
+import org.eclipse.jetty.http.HttpStatus;
+import org.glassfish.hk2.utilities.binding.AbstractBinder;
+import org.glassfish.jersey.server.ResourceConfig;
+import org.glassfish.jersey.test.JerseyTest;
+import org.glassfish.jersey.test.TestProperties;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic;
import org.openecomp.sdc.be.components.impl.CapabilitiesBusinessLogic;
import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic;
@@ -34,50 +51,232 @@ import org.openecomp.sdc.be.components.impl.PropertyBusinessLogic;
import org.openecomp.sdc.be.components.impl.RelationshipTypeBusinessLogic;
import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic;
import org.openecomp.sdc.be.components.impl.ResourceImportManager;
+import org.openecomp.sdc.be.components.impl.ResponseFormatManager;
+import org.openecomp.sdc.be.config.ConfigurationManager;
+import org.openecomp.sdc.be.config.SpringConfig;
+import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.datamodel.api.HighestFilterEnum;
+import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.impl.ComponentsUtils;
import org.openecomp.sdc.be.impl.ServletUtils;
+import org.openecomp.sdc.be.impl.WebAppContextWrapper;
+import org.openecomp.sdc.be.model.Component;
+import org.openecomp.sdc.be.model.Resource;
+import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.servlets.builder.ServletResponseBuilder;
+import org.openecomp.sdc.be.servlets.exception.OperationExceptionMapper;
+import org.openecomp.sdc.be.user.Role;
import org.openecomp.sdc.be.user.UserBusinessLogic;
+import org.openecomp.sdc.common.api.ConfigurationSource;
+import org.openecomp.sdc.common.api.Constants;
+import org.openecomp.sdc.common.impl.ExternalConfiguration;
+import org.openecomp.sdc.common.impl.FSConfigurationSource;
+import org.openecomp.sdc.exception.ResponseFormat;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.web.context.WebApplicationContext;
-public class TypesFetchServletTest {
+class TypesFetchServletTest extends JerseyTest {
+ private static final String USER_ID = "cs0008";
+ private static final User USER = new User(USER_ID);
- private TypesFetchServlet createTestSubject() {
- UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class);
- ComponentInstanceBusinessLogic componentInstanceBL = mock(ComponentInstanceBusinessLogic.class);
- ComponentsUtils componentsUtils = mock(ComponentsUtils.class);
- ServletUtils servletUtils = mock(ServletUtils.class);
- ResourceImportManager resourceImportManager = mock(ResourceImportManager.class);
- PropertyBusinessLogic propertyBusinessLogic = mock(PropertyBusinessLogic.class);
- RelationshipTypeBusinessLogic relationshipTypeBusinessLogic = mock(RelationshipTypeBusinessLogic.class);
- CapabilitiesBusinessLogic capabilitiesBusinessLogic = mock(CapabilitiesBusinessLogic.class);
- InterfaceOperationBusinessLogic interfaceOperationBusinessLogic = mock(InterfaceOperationBusinessLogic.class);
- ResourceBusinessLogic resourceBusinessLogic = mock(ResourceBusinessLogic.class);
- ArtifactsBusinessLogic artifactsBusinessLogic = mock(ArtifactsBusinessLogic.class);
+ @Mock
+ private HttpServletRequest request;
+ @Mock
+ private HttpSession session;
+ @Mock
+ private ServletContext servletContext;
+ @Mock
+ private WebAppContextWrapper webAppContextWrapper;
+ @Mock
+ private WebApplicationContext webApplicationContext;
+ @Mock
+ private ResponseFormat responseFormat;
+ @Mock
+ private UserBusinessLogic userBusinessLogic;
+ @Mock
+ private ComponentInstanceBusinessLogic componentInstanceBusinessLogic;
+ @Mock
+ private ComponentsUtils componentsUtils;
+ @Mock
+ private ServletUtils servletUtils;
+ @Mock
+ private ResourceImportManager resourceImportManager;
+ @Mock
+ private PropertyBusinessLogic propertyBusinessLogic;
+ @Mock
+ private RelationshipTypeBusinessLogic relationshipTypeBusinessLogic;
+ @Mock
+ private CapabilitiesBusinessLogic capabilitiesBusinessLogic;
+ @Mock
+ private InterfaceOperationBusinessLogic interfaceOperationBusinessLogic;
+ @Mock
+ private ResourceBusinessLogic resourceBusinessLogic;
+ @Mock
+ private ArtifactsBusinessLogic artifactsBusinessLogic;
+ @Mock
+ private ResponseFormatManager responseFormatManager;
- return new TypesFetchServlet(userBusinessLogic, componentInstanceBL, componentsUtils, servletUtils,
- resourceImportManager, propertyBusinessLogic, relationshipTypeBusinessLogic, capabilitiesBusinessLogic,
- interfaceOperationBusinessLogic, resourceBusinessLogic, artifactsBusinessLogic);
- }
+ private final Path rootPath = Path.of("/v1/catalog");
+ private final Path nodeTypesPath = rootPath.resolve("nodeTypes");
+ private User user;
-
- @Test
- public void testGetAllDataTypesServlet() throws Exception {
- TypesFetchServlet testSubject;
- HttpServletRequest request = null;
- String userId = "";
- Response result;
+ @BeforeEach
+ void resetMock() throws Exception {
+ super.setUp();
+ initMocks();
+ initConfig();
+ initTestData();
+ }
- // default test
- testSubject = createTestSubject();
- }
+ @AfterEach
+ void after() throws Exception {
+ super.tearDown();
+ }
-
- @Test
- public void testGetPropertyBL() throws Exception {
- TypesFetchServlet testSubject;
- ServletContext context = null;
- PropertyBusinessLogic result;
+ @Test
+ void testGetAllNodeTypesServlet() {
+ final String modelName = "ETSI-SOL001-331";
+ Resource res1 = new Resource();
+ res1.setName("node type 1");
+ res1.setToscaResourceName("toscaResName1");
+ Either<List<Component>, ResponseFormat> actionResponse =
+ Either.left(List.of());
+ Either<List<Component>, ResponseFormat> actionResponseNonAbstract =
+ Either.left(List.of(res1));
+ when(responseFormat.getStatus())
+ .thenReturn(HttpStatus.OK_200);
+ when(componentsUtils.getResponseFormat(ActionStatus.OK))
+ .thenReturn(responseFormat);
+ when(servletUtils.getUserAdmin())
+ .thenReturn(userBusinessLogic);
+ when(userBusinessLogic.getUser(anyString()))
+ .thenReturn(user);
+ when(resourceBusinessLogic.getLatestVersionNotAbstractComponentsMetadata(
+ true,
+ HighestFilterEnum.HIGHEST_ONLY,
+ ComponentTypeEnum.RESOURCE,
+ null,
+ user.getUserId(),
+ modelName,
+ false)
+ )
+ .thenReturn(actionResponse);
- // default test
- testSubject = createTestSubject();
- }
-}
+ when(resourceBusinessLogic.getLatestVersionNotAbstractComponentsMetadata(
+ false,
+ HighestFilterEnum.HIGHEST_ONLY,
+ ComponentTypeEnum.RESOURCE,
+ null,
+ user.getUserId(),
+ modelName,
+ false)
+ )
+ .thenReturn(actionResponseNonAbstract);
+
+ final var response = target()
+ .path(nodeTypesPath.toString())
+ .queryParam("model", modelName)
+ .request(MediaType.APPLICATION_JSON)
+ .header(Constants.USER_ID_HEADER, USER_ID)
+ .get();
+ assertEquals(response.getStatus(), HttpStatus.OK_200);
+ final Map<String, Map<String, Object>> actualResponseContent = response.readEntity(Map.class);
+ assertTrue(actualResponseContent.containsKey("toscaResName1"));
+ final Map<String, Object> component = actualResponseContent.get("toscaResName1");
+ final Map<String, Map<String, String>> componentMetadata = (Map<String, Map<String, String>>) component.get("componentMetadataDefinition");
+ final Map<String, String> componentMetadataDefinition = componentMetadata.get("componentMetadataDataDefinition");
+ assertEquals(res1.getName(), componentMetadataDefinition.get("name"));
+ assertEquals(res1.getComponentType().name(), componentMetadataDefinition.get("componentType"));
+ assertEquals(res1.getToscaResourceName(), componentMetadataDefinition.get("toscaResourceName"));
+ assertEquals(res1.getResourceType().getValue(), componentMetadataDefinition.get("resourceType"));
+ }
+
+ @Override
+ protected ResourceConfig configure() {
+ MockitoAnnotations.openMocks(this);
+ forceSet(TestProperties.CONTAINER_PORT, "0");
+ final ApplicationContext context =
+ new AnnotationConfigApplicationContext(SpringConfig.class);
+ return new ResourceConfig(TypesFetchServlet.class)
+ .register(new AbstractBinder() {
+ @Override
+ protected void configure() {
+ bind(request).to(HttpServletRequest.class);
+ bind(userBusinessLogic).to(UserBusinessLogic.class);
+ bind(componentInstanceBusinessLogic).to(ComponentInstanceBusinessLogic.class);
+ bind(componentsUtils).to(ComponentsUtils.class);
+ bind(servletUtils).to(ServletUtils.class);
+ bind(resourceImportManager).to(ResourceImportManager.class);
+ bind(resourceBusinessLogic).to(ResourceBusinessLogic.class);
+ bind(propertyBusinessLogic).to(PropertyBusinessLogic.class);
+ bind(relationshipTypeBusinessLogic).to(RelationshipTypeBusinessLogic.class);
+ bind(capabilitiesBusinessLogic).to(CapabilitiesBusinessLogic.class);
+ bind(interfaceOperationBusinessLogic).to(InterfaceOperationBusinessLogic.class);
+ bind(artifactsBusinessLogic).to(ArtifactsBusinessLogic.class);
+ }
+ })
+ .register(new OperationExceptionMapper(
+ new ServletResponseBuilder(),
+ responseFormatManager
+ ))
+ .property("contextConfig", context);
+ }
+
+ void initMocks() {
+ when(request.getSession())
+ .thenReturn(session);
+ when(session.getServletContext())
+ .thenReturn(servletContext);
+ when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR))
+ .thenReturn(webAppContextWrapper);
+ when(webAppContextWrapper.getWebAppContext(servletContext))
+ .thenReturn(webApplicationContext);
+ when(webApplicationContext.getBean(ComponentInstanceBusinessLogic.class))
+ .thenReturn(componentInstanceBusinessLogic);
+ when(webApplicationContext.getBean(UserBusinessLogic.class))
+ .thenReturn(userBusinessLogic);
+ when(userBusinessLogic.getUser(USER_ID, false))
+ .thenReturn(USER);
+ when(request.getHeader(Constants.USER_ID_HEADER))
+ .thenReturn(USER_ID);
+ when(webApplicationContext.getBean(ServletUtils.class))
+ .thenReturn(servletUtils);
+ when(servletUtils.getComponentsUtils())
+ .thenReturn(componentsUtils);
+ when(webApplicationContext.getBean(ResourceImportManager.class))
+ .thenReturn(resourceImportManager);
+ when(webApplicationContext.getBean(PropertyBusinessLogic.class))
+ .thenReturn(propertyBusinessLogic);
+ when(webApplicationContext.getBean(RelationshipTypeBusinessLogic.class))
+ .thenReturn(relationshipTypeBusinessLogic);
+ when(webApplicationContext.getBean(CapabilitiesBusinessLogic.class))
+ .thenReturn(capabilitiesBusinessLogic);
+ when(webApplicationContext.getBean(InterfaceOperationBusinessLogic.class))
+ .thenReturn(interfaceOperationBusinessLogic);
+ when(webApplicationContext.getBean(ResourceBusinessLogic.class))
+ .thenReturn(resourceBusinessLogic);
+ when(webApplicationContext.getBean(ArtifactsBusinessLogic.class))
+ .thenReturn(artifactsBusinessLogic);
+ }
+
+ void initConfig() {
+ final String appConfigDir = "src/test/resources/config/catalog-be";
+ final ConfigurationSource configurationSource =
+ new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir);
+ final ConfigurationManager configurationManager =
+ new ConfigurationManager(configurationSource);
+ final org.openecomp.sdc.be.config.Configuration configuration =
+ new org.openecomp.sdc.be.config.Configuration();
+ configuration.setJanusGraphInMemoryGraph(true);
+ configurationManager.setConfiguration(configuration);
+ ExternalConfiguration.setAppName("catalog-be");
+ }
+
+ private void initTestData() {
+ user = new User();
+ user.setUserId(USER_ID);
+ user.setRole(Role.ADMIN.name());
+ when(userBusinessLogic.getUser(USER_ID)).thenReturn(user);
+ }
+} \ No newline at end of file
diff --git a/catalog-ui/src/app/ng2/pages/workspace/req-and-capabilities/req-and-capabilities.service.ts b/catalog-ui/src/app/ng2/pages/workspace/req-and-capabilities/req-and-capabilities.service.ts
index f999c2e627..e7b39c0a84 100644
--- a/catalog-ui/src/app/ng2/pages/workspace/req-and-capabilities/req-and-capabilities.service.ts
+++ b/catalog-ui/src/app/ng2/pages/workspace/req-and-capabilities/req-and-capabilities.service.ts
@@ -16,9 +16,6 @@ export class ReqAndCapabilitiesService {
private capabilityTypesList: CapabilityTypeModel[];
private relationshipTypesList: RelationshipTypeModel[];
private nodeTypesList: NodeTypeModel[];
- private capabilitiesListUpdated: boolean = false;
- private requirementsListUpdated: boolean = false;
- private nodeTypeListUpdated: boolean = false;
readonly INPUTS_FOR_REQUIREMENTS: string = 'INPUTS_FOR_REQUIREMENTS';
readonly INPUTS_FOR_CAPABILITIES: string = 'INPUTS_FOR_CAPABILITIES';
@@ -41,28 +38,19 @@ export class ReqAndCapabilitiesService {
public async initInputs(initInputsFor: string) {
- if (!this.capabilitiesListUpdated){
- // -- COMMON for both --
- this.capabilityTypesList = [];
- let capabilityTypesResult = await this.toscaTypesServiceNg2.fetchCapabilityTypes(this.workspaceService.metadata.model);
- Object.keys(capabilityTypesResult).forEach(key => {this.capabilityTypesList.push(capabilityTypesResult[key])})
- this.capabilitiesListUpdated = true;
- }
+ // -- COMMON for both --
+ this.capabilityTypesList = [];
+ let capabilityTypesResult = await this.toscaTypesServiceNg2.fetchCapabilityTypes(this.workspaceService.metadata.model);
+ Object.keys(capabilityTypesResult).forEach(key => {this.capabilityTypesList.push(capabilityTypesResult[key])})
if (initInputsFor === 'INPUTS_FOR_REQUIREMENTS') {
- if (!this.requirementsListUpdated){
- this.relationshipTypesList = [];
- let relationshipTypesResult = await this.toscaTypesServiceNg2.fetchRelationshipTypes(this.workspaceService.metadata.model);
- Object.keys(relationshipTypesResult).forEach(key => {this.relationshipTypesList.push(relationshipTypesResult[key])});
- this.requirementsListUpdated = true;
- }
+ this.relationshipTypesList = [];
+ let relationshipTypesResult = await this.toscaTypesServiceNg2.fetchRelationshipTypes(this.workspaceService.metadata.model);
+ Object.keys(relationshipTypesResult).forEach(key => {this.relationshipTypesList.push(relationshipTypesResult[key])});
- if (!this.nodeTypeListUpdated){
- this.nodeTypesList = [];
- let nodeTypesResult = await this.toscaTypesServiceNg2.fetchNodeTypes();
- Object.keys(nodeTypesResult).forEach(key => {this.nodeTypesList.push(nodeTypesResult[key])})
- this.nodeTypeListUpdated = true;
- }
+ this.nodeTypesList = [];
+ let nodeTypesResult = await this.toscaTypesServiceNg2.fetchNodeTypes(this.workspaceService.metadata.model);
+ Object.keys(nodeTypesResult).forEach(key => {this.nodeTypesList.push(nodeTypesResult[key])})
}
}
diff --git a/catalog-ui/src/app/ng2/services/tosca-types.service.ts b/catalog-ui/src/app/ng2/services/tosca-types.service.ts
index fc728111bd..151e975f23 100644
--- a/catalog-ui/src/app/ng2/services/tosca-types.service.ts
+++ b/catalog-ui/src/app/ng2/services/tosca-types.service.ts
@@ -46,7 +46,10 @@ export class ToscaTypesServiceNg2 {
return this.http.get<RelationshipTypesMap>(this.baseUrl + 'relationshipTypes').toPromise();
}
- async fetchNodeTypes(): Promise<NodeTypesMap> {
+ async fetchNodeTypes(modelName: string): Promise<NodeTypesMap> {
+ if(modelName) {
+ return this.http.get<NodeTypesMap>(this.baseUrl + 'nodeTypes', {params: {model: modelName}}).toPromise();
+ }
return this.http.get<NodeTypesMap>(this.baseUrl + 'nodeTypes').toPromise();
}