blob: 0d94aab271602af2da57a0c05c21514685dfc924 (
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
/*
* Copyright © 2017-2018 AT&T Intellectual Property.
* Modifications Copyright © 2019 IBM.
*
* 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.cds.blueprintsprocessor.designer.api.handler
import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.DesignerApiDomains
import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.domain.ModelType
import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.repository.ModelTypeRepository
import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.utils.ModelTypeValidator
import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
import org.onap.ccsdk.cds.controllerblueprints.core.httpProcessorException
import org.onap.ccsdk.cds.error.catalog.core.ErrorCatalogCodes
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Service
@Service
open class ModelTypeHandler(private val modelTypeRepository: ModelTypeRepository) {
private val log = LoggerFactory.getLogger(ModelTypeHandler::class.java)!!
/**
* This is a getModelTypeByName service
*
* @param modelTypeName modelTypeName
* @return ModelType
*/
suspend fun getModelTypeByName(modelTypeName: String): ModelType {
log.info("Searching : $modelTypeName")
check(modelTypeName.isNotBlank()) { "Model Name Information is missing." }
val modelType = modelTypeRepository.findByModelName(modelTypeName)
return if (modelType != null) {
modelType
} else {
throw httpProcessorException(
ErrorCatalogCodes.RESOURCE_NOT_FOUND, DesignerApiDomains.DESIGNER_API,
"couldn't get modelType($modelTypeName)"
)
}
}
/**
* This is a searchModelTypes service
*
* @param tags tags
* @return List<ModelType>
</ModelType> */
suspend fun searchModelTypes(tags: String): List<ModelType> {
check(tags.isNotBlank()) { "No Search Information provide" }
return modelTypeRepository.findByTagsContainingIgnoreCase(tags)
}
/**
* This is a saveModel service
*
* @param modelType modelType
* @return ModelType
* @throws BluePrintException BluePrintException
*/
@Throws(BluePrintException::class)
open suspend fun saveModel(modelType: ModelType): ModelType {
lateinit var dbModel: ModelType
ModelTypeValidator.validateModelType(modelType)
val dbModelType: ModelType? = modelTypeRepository.findByModelName(modelType.modelName)
if (dbModelType != null) {
dbModel = dbModelType
dbModel.description = modelType.description
dbModel.definition = modelType.definition
dbModel.definitionType = modelType.definitionType
dbModel.derivedFrom = modelType.derivedFrom
dbModel.tags = modelType.tags
dbModel.version = modelType.version
dbModel.updatedBy = modelType.updatedBy
dbModel = modelTypeRepository.save(dbModel)
} else {
dbModel = modelTypeRepository.save(modelType)
}
return dbModel
}
/**
* This is a deleteByModelName service
*
* @param modelName modelName
*/
open suspend fun deleteByModelName(modelName: String) {
check(modelName.isNotBlank()) { "Model Name Information is missing." }
modelTypeRepository.deleteByModelName(modelName)
}
/**
* This is a getModelTypeByDefinitionType service
*
* @param definitionType definitionType
* @return List<ModelType>
*/
suspend fun getModelTypeByDefinitionType(definitionType: String): List<ModelType> {
check(definitionType.isNotBlank()) { "Model definitionType Information is missing." }
return modelTypeRepository.findByDefinitionType(definitionType)
}
/**
* This is a getModelTypeByDerivedFrom service
*
* @param derivedFrom derivedFrom
* @return List<ModelType>
*/
suspend fun getModelTypeByDerivedFrom(derivedFrom: String): List<ModelType> {
check(derivedFrom.isNotBlank()) { "Model derivedFrom Information is missing." }
return modelTypeRepository.findByDerivedFrom(derivedFrom)
}
}
|