summaryrefslogtreecommitdiffstats
path: root/openecomp-ui/src/nfvo-utils/ErrorResponseHandler.js
blob: 5c55855027d0425bada5d38d4c9f8d83c5ea560f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*!
 * Copyright © 2016-2018 European Support Limited
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
import store from 'sdc-app/AppStore.js';
import React from 'react';
import { actionTypes as modalActionTypes } from 'nfvo-components/modal/GlobalModalConstants.js';
import i18n from 'nfvo-utils/i18n/i18n.js';
import SubmitErrorResponse from 'nfvo-components/SubmitErrorResponse.jsx';

function showVariablesInMessage(variables, msg) {
    let regex;
    variables.forEach((value, index) => {
        value = value.replace(';', ',');
        regex = new RegExp("'%" + (index + 1) + "'");
        msg = msg.replace(regex, value);
    });
    return msg;
}

function parseCatalogExceptionObject(responseJSON) {
    let title, msg;
    if (
        responseJSON.requestError &&
        responseJSON.requestError.policyException
    ) {
        title = 'Error: ' + responseJSON.requestError.policyException.messageId;
        msg = responseJSON.requestError.policyException.text;
    } else if (
        responseJSON.requestError &&
        responseJSON.requestError.serviceException
    ) {
        title =
            'Error: ' + responseJSON.requestError.serviceException.messageId;
        msg = responseJSON.requestError.serviceException.text;
        let { variables } = responseJSON.requestError.serviceException;
        if (variables) {
            msg = showVariablesInMessage(variables, msg);
        }
    } else if (responseJSON.uploadDataErrors) {
        title = i18n('Error: Upload Data Error');
        msg = (
            <SubmitErrorResponse
                validationResponse={{
                    uploadDataErrors: responseJSON.uploadDataErrors
                }}
            />
        );
    } else {
        title = responseJSON.status;
        msg = responseJSON.message;
    }
    return { title, msg };
}

var errorResponseHandler = error => {
    let errorData;
    if (error.data) {
        errorData = parseCatalogExceptionObject(error.data);
    } else {
        errorData = {
            title: error.statusText,
            msg: error.responseText ? error.responseText : i18n('GENERIC_ERROR')
        };
    }
    store.dispatch({
        type: modalActionTypes.GLOBAL_MODAL_ERROR,
        data: {
            ...errorData
        }
    });
};

export default errorResponseHandler;
n> <scope>import</scope> </dependency> <dependency> <!-- Import dependency management from camunda --> <groupId>org.camunda.bpm</groupId> <artifactId>camunda-bom</artifactId> <version>${camunda.version}</version> <scope>import</scope> <type>pom</type> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.camunda.bpm</groupId> <artifactId>camunda-engine</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>io.swagger.core.v3</groupId> <artifactId>swagger-annotations</artifactId> <version>${swagger.version}</version> </dependency> <dependency> <groupId>io.swagger.core.v3</groupId> <artifactId>swagger-jaxrs2</artifactId> <version>2.0.6</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> <dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jersey</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <exclusions> <exclusion> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>javax.transaction</groupId> <artifactId>jta</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.json4s</groupId> <artifactId>json4s-jackson_2.12</artifactId> <version>${json4s-jackson-version}</version> </dependency> <dependency> <groupId>org.json4s</groupId> <artifactId>json4s-core_2.12</artifactId> <version>${json4s-core-version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency> <dependency> <groupId>javax.interceptor</groupId> <artifactId>javax.interceptor-api</artifactId> </dependency> <!-- Dependencies on other MSO Projects --> <dependency> <groupId>org.onap.so</groupId> <artifactId>mso-requests-db</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.onap.so</groupId> <artifactId>mso-requests-db-repositories</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.onap.so</groupId> <artifactId>mso-catalog-db</artifactId> <version>${project.version}</version> </dependency> <!-- Test Dependencies --> <dependency> <groupId>pl.pragmatists</groupId> <artifactId>JUnitParams</artifactId> <version>1.0.5</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.onap.sdc.sdc-distribution-client</groupId> <artifactId>sdc-distribution-client</artifactId> <version>1.3.0</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.github.java-json-tools</groupId> <artifactId>json-schema-core</artifactId> <version>1.2.8</version> </dependency> <dependency> <groupId>com.github.java-json-tools</groupId> <artifactId>json-schema-validator</artifactId> <version>2.2.8</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>ch.vorburger.mariaDB4j</groupId> <artifactId>mariaDB4j</artifactId> <version>2.2.3</version> <scope>test</scope> </dependency> <dependency> <groupId>com.googlecode.junit-toolbox</groupId> <artifactId>junit-toolbox</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>org.onap.so</groupId> <artifactId>mso-api-handler-common</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-contract-wiremock</artifactId> <version>1.2.4.RELEASE</version> <scope>test</scope> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-core</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> <dependency> <groupId>org.onap.aaf.authz</groupId> <artifactId>aaf-cadi-aaf</artifactId> <version>2.1.9</version> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <finalName>${project.artifactId}-${project.version}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <executions> <execution> <id>default-test</id> <goals> <goal>test</goal> </goals> <configuration> <includes> <include>**/AllTestsTestSuite.java</include> </includes> <parallel>suites</parallel> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>org.onap.so.apihandlerinfra.ApiHandlerApplication</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>extract-docker-file</id> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <executions> <execution> <id>original</id> <configuration> <skip>false</skip> </configuration> </execution> </executions> </plugin> <plugin> <groupId>io.fabric8</groupId> <artifactId>fabric8-maven-plugin</artifactId> <executions> <execution> <id>start</id> </execution> </executions> </plugin> </plugins> </build> <packaging>jar</packaging> </project>