39 lines
1.7 KiB
Groovy
39 lines
1.7 KiB
Groovy
import groovy.json.JsonSlurper
|
|
import io.opentelemetry.api.trace.Span
|
|
|
|
def sess = request.getAuthSession(true)
|
|
|
|
def spanCtxt = Span.current().getSpanContext()
|
|
def traceparent = "00-${spanCtxt.getTraceId()}-${spanCtxt.getSpanId()}-${spanCtxt.getTraceFlags().asHex()}"
|
|
def jsonSlurper = new JsonSlurper()
|
|
|
|
|
|
def lang = (session['ch.nevis.idm.User.language']?:'DE').trim()
|
|
def endppoint = "${parameters.get('baseurl')}/api/v1/countries?lang=${lang.toUpperCase()}"
|
|
def countryCode = (session['ch.nevis.idm.User.country']?:'CH').trim().toLowerCase()
|
|
|
|
try {
|
|
LOG.debug("UTILITY: Countries: Request url: ${endppoint}")
|
|
|
|
def httpClient = HttpClients.create(parameters)
|
|
def httpResponse = Http.get().url(endppoint).header('traceparent', traceparent).build().send(httpClient)
|
|
|
|
LOG.debug('UTILITY: Countries: Response Message: ' + httpResponse.reasonPhrase())
|
|
LOG.debug('UTILITY: Countries: Response Status Code: ' + httpResponse.code())
|
|
LOG.debug('UTILITY: Countries: Response: ' + httpResponse.bodyAsString())
|
|
|
|
if (httpResponse.code() == 200) {
|
|
def json = jsonSlurper.parseText(httpResponse.bodyAsString())
|
|
// {"country.af":"Afghanistan","country.al":"Albanie"... }
|
|
def countryName = json["country.${countryCode}"]
|
|
LOG.debug("UTILITY: Countries: countryName for ${countryCode}: ${countryName}")
|
|
if (countryName) {
|
|
sess.setAttribute('agov.countryName', countryName)
|
|
}
|
|
} else {
|
|
LOG.warn("UTILITY: Countries: Failed to fetch country translations. (httpResponse.code: ${httpResponse.code()})")
|
|
}
|
|
} catch (Exception e) {
|
|
LOG.warn("UTILITY: Countries: Failed to fetch country translations. (${e})")
|
|
}
|
|
response.setResult('ok') |