Add the "@Override" annotation.
[vid.git] / vid-app-common / src / main / java / org / onap / vid / logging / Headers.kt
1 @file:JvmName("Headers")
2
3 package org.onap.vid.logging
4
5 import org.onap.portalsdk.core.util.SystemProperties
6 import org.onap.vid.logging.RequestIdHeader.*
7 import javax.servlet.http.HttpServletRequest
8
9 enum class RequestIdHeader(val headerName: String) {
10
11     ONAP_ID("X-ONAP-RequestID"),
12     REQUEST_ID("X-RequestID"),
13     TRANSACTION_ID("X-TransactionID"),
14     ECOMP_ID(SystemProperties.ECOMP_REQUEST_ID),
15     ;
16
17     fun stringEquals(header: String) = headerName.equals(header, true)
18
19     fun getHeaderValue(request: HttpServletRequest): String? = request.getHeader(headerName)
20 }
21
22 fun prioritizedRequestIdHeaders() = listOf(
23         ONAP_ID,
24         REQUEST_ID,
25         TRANSACTION_ID,
26         ECOMP_ID
27 )
28
29 fun highestPriorityHeader(httpRequest: HttpServletRequest): RequestIdHeader? {
30     val headers = httpRequest.headerNames.asSequence().toSet()
31     return prioritizedRequestIdHeaders().firstOrNull {
32         requestIdHeader -> headers.any { requestIdHeader.stringEquals(it) }
33     }
34 }