Fix for Penetration test _ Session and cookie management
[vid.git] / vid-app-common / src / main / java / org / onap / vid / services / UserParamsContainer.kt
1 package org.onap.vid.services
2
3 import org.onap.vid.mso.model.ServiceInstantiationRequestDetails.UserParamNameAndValue
4 import org.onap.vid.mso.model.UserParamTypes
5
6 class UserParamsContainer(instanceParams: Map<String, String>?, supplementaryParams: List<UserParamNameAndValue>?) {
7
8     val params:Map<String, String>
9
10     init {
11         params = aggregateAllInstanceParams(instanceParams, supplementaryParams)
12     }
13
14     private fun aggregateAllInstanceParams(
15             instanceParams: Map<String, String>?,
16             supplementaryParams: List<UserParamNameAndValue>?)
17             : Map<String, String> {
18         val instanceParamsSafe: Map<String, String> = instanceParams ?: emptyMap()
19         val supplementaryParamsSafe: Map<String, String> =
20                 supplementaryParams?.associate{ it.name to it.value } ?: emptyMap()
21
22         return instanceParamsSafe.plus(supplementaryParamsSafe)
23     }
24
25     fun toALaCarte(): List<UserParamTypes> = toUserParamNameAndValue()
26
27     fun toMacroPre1806() : List<UserParamTypes> = toUserParamNameAndValue()
28
29     fun toMacroPost1806() : List<Map<String, String>> = toListOfMap()
30
31     private fun toUserParamNameAndValue(): List<UserParamNameAndValue> {
32         return params.map{UserParamNameAndValue(it.key, it.value)}.toList()
33     }
34
35     private fun toListOfMap() : List<Map<String, String>> {
36         return listOf(params)
37     }
38 }
39
40