Refactor rest clients and support timeouts
[ccsdk/cds.git] / ms / blueprintsprocessor / modules / commons / rest-lib / src / main / kotlin / org / onap / ccsdk / cds / blueprintsprocessor / rest / service / TokenAuthRestClientService.kt
index 6f81ee1..34e4a9e 100644 (file)
@@ -21,25 +21,32 @@ import org.onap.ccsdk.cds.blueprintsprocessor.rest.TokenAuthRestClientProperties
 import org.springframework.http.HttpHeaders
 import org.springframework.http.MediaType
 
-class TokenAuthRestClientService(private val restClientProperties: TokenAuthRestClientProperties) :
-    BlueprintWebClientService {
+open class TokenAuthRestClientService(
+    private val restClientProperties:
+        TokenAuthRestClientProperties
+) :
+    BaseBlueprintWebClientService<TokenAuthRestClientProperties>() {
+
+    override fun getRestClientProperties(): TokenAuthRestClientProperties {
+        return restClientProperties
+    }
 
     override fun defaultHeaders(): Map<String, String> {
         return mapOf(
-                HttpHeaders.CONTENT_TYPE to MediaType.APPLICATION_JSON_VALUE,
-                HttpHeaders.ACCEPT to MediaType.APPLICATION_JSON_VALUE,
-                HttpHeaders.AUTHORIZATION to restClientProperties.token!!)
+            HttpHeaders.CONTENT_TYPE to MediaType.APPLICATION_JSON_VALUE,
+            HttpHeaders.ACCEPT to MediaType.APPLICATION_JSON_VALUE,
+            HttpHeaders.AUTHORIZATION to restClientProperties.token!!
+        )
     }
 
-    override fun convertToBasicHeaders(headers: Map<String, String>): Array<BasicHeader> {
-        val customHeaders: MutableMap<String, String> = headers.toMutableMap()
-        if (!headers.containsKey(HttpHeaders.AUTHORIZATION)) {
-            customHeaders[HttpHeaders.AUTHORIZATION] = restClientProperties.token!!
+    override fun convertToBasicHeaders(headers: Map<String, String>):
+        Array<BasicHeader> {
+            val customHeaders: MutableMap<String, String> = headers.toMutableMap()
+            // inject additionalHeaders
+            customHeaders.putAll(verifyAdditionalHeaders(restClientProperties))
+            if (!headers.containsKey(HttpHeaders.AUTHORIZATION)) {
+                customHeaders[HttpHeaders.AUTHORIZATION] = restClientProperties.token!!
+            }
+            return super.convertToBasicHeaders(customHeaders)
         }
-        return super.convertToBasicHeaders(customHeaders)
-    }
-
-    override fun host(uri: String): String {
-        return restClientProperties.url + uri
-    }
 }