Add new endpoint for posting data-dictinary as ResourceDefinition
[ccsdk/cds.git] / ms / blueprintsprocessor / modules / inbounds / designer-api / src / main / kotlin / org / onap / ccsdk / cds / blueprintsprocessor / designer / api / ResourceDictionaryController.kt
index 3902079..75403d4 100644 (file)
@@ -20,6 +20,7 @@ import kotlinx.coroutines.runBlocking
 import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.domain.ResourceDictionary
 import org.onap.ccsdk.cds.blueprintsprocessor.designer.api.handler.ResourceDictionaryHandler
 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
+import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceDefinition
 import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceSourceMapping
 import org.springframework.http.MediaType
 import org.springframework.web.bind.annotation.DeleteMapping
@@ -49,6 +50,13 @@ open class ResourceDictionaryController(private val resourceDictionaryHandler: R
         resourceDictionaryHandler.saveResourceDictionary(dataDictionary)
     }
 
+    @PostMapping(path = ["/definition"], produces = [MediaType.APPLICATION_JSON_VALUE], consumes = [MediaType.APPLICATION_JSON_VALUE])
+    @ResponseBody
+    @Throws(BluePrintException::class)
+    fun saveResourceDictionary(@RequestBody resourceDefinition: ResourceDefinition): ResourceDefinition = runBlocking {
+        resourceDictionaryHandler.saveResourceDefinition(resourceDefinition)
+    }
+
     @DeleteMapping(path = ["/{name}"])
     fun deleteResourceDictionaryByName(@PathVariable(value = "name") name: String) = runBlocking {
         resourceDictionaryHandler.deleteResourceDictionary(name)