aboutsummaryrefslogtreecommitdiffstats
path: root/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/data/BlueprintErrorCode.kt
blob: bef174b9deb9d4062cd7bdedab0e8e026131bf84 (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
86
87
88
89
90
91
92
93
94
95
96
97
/*
 * Copyright © 2018-2019 Bell Canada Intellectual Property.
 *
 * 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.
 */
package org.onap.ccsdk.apps.controllerblueprints.core.data

import java.util.HashMap

/**
 * ErrorCode.java Purpose: Maintain a list of HTTP status codes
 *
 * @author Steve Siani
 * @version 1.0
 */
enum class ErrorCode (val value: Int, val httpCode: Int) {

    /// TODO: Add more attribute for each needed application protocol
    // TODO: Example: INVALID_FILE_EXTENSION(2, 415, 25)
    GENERIC_FAILURE(1, 500) {
        override fun message(detailMsg: String): String {
            return "Generic failure. Details : {$detailMsg}"
        }
    },
    INVALID_FILE_EXTENSION(2, 415) {
        override fun message(detailMsg: String): String {
            return "Unexpected file extension. Details : {$detailMsg}"
        }
    },
    BLUEPRINT_PATH_MISSING(3, 503) {
        override fun message(detailMsg: String): String {
            return "Blueprint path missing or wrong. Details : {$detailMsg}"
        }
    },
    BLUEPRINT_WRITING_FAIL(4, 503) {
        override fun message(detailMsg: String): String {
            return "Fail to write blueprint files. Details : {$detailMsg}"
        }
    },
    IO_FILE_INTERRUPT(5, 503) {
        override fun message(detailMsg: String): String {
            return "IO file system interruption. Details : {$detailMsg}"
        }
    },
    INVALID_REQUEST_FORMAT(6, 400) {
        override fun message(detailMsg: String): String {
            return "Bad request. Details : {$detailMsg}"
        }
    },
    UNAUTHORIZED_REQUEST(7, 401) {
        override fun message(detailMsg: String): String {
            return "The request requires user authentication. Details : {$detailMsg}"
        }
    },
    REQUEST_NOT_FOUND(8, 404) {
        override fun message(detailMsg: String): String {
            return "Request mapping doesn't exist. Details : {$detailMsg}"
        }
    },
    RESOURCE_NOT_FOUND(9, 404) {
        override fun message(detailMsg: String): String {
            return "No response was found for this request in the server. Details : {$detailMsg}"
        }
    },
    CONFLICT_ADDING_RESOURCE(10, 409) {
        override fun message(detailMsg: String): String {
            return "Duplicated entry while saving Blueprint. Details : {$detailMsg}"
        }
    };

    abstract fun message(detailMsg: String): String

    companion object {

        private val map = HashMap<Int, ErrorCode>()

        init {
            for (errorCode in ErrorCode.values()) {
                map[errorCode.value] = errorCode
            }
        }

        fun valueOf(value: Int): ErrorCode? {
            return if (map.containsKey(value)) map[value] else map[1]
        }
    }
}