Skip to content

Commit afdc6f3

Browse files
author
Ralf Steppacher
committed
#413066 Implemented PR feedback
1 parent d9bfe40 commit afdc6f3

5 files changed

Lines changed: 31 additions & 19 deletions

File tree

cdr-client-service/src/main/kotlin/com/swisscom/health/des/cdr/client/handler/ConfigurationWriter.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,11 @@ internal class ConfigurationWriter(
146146
logger.debug { "set '${changedConfigItem.propertyPath}' to '${newValue}' as type '${newValue::class}'" }
147147
}
148148

149+
is Long -> {
150+
put(toBeUpdatedNodeName, newValue)
151+
logger.debug { "set '${changedConfigItem.propertyPath}' to '${newValue}' as type '${newValue::class}'" }
152+
}
153+
149154
is Float -> {
150155
put(toBeUpdatedNodeName, newValue)
151156
logger.debug { "set '${changedConfigItem.propertyPath}' to '${newValue}' as type '${newValue::class}'" }

cdr-client-service/src/main/resources/logback-spring.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
77

88
<logger name="com.swisscom.health.des.cdr.client" level="DEBUG" />
9-
<!-- <logger name="org" level="INFO" />-->
109

1110
<root level="INFO">
1211
<appender-ref ref="CONSOLE" />

cdr-client-ui/src/commonMain/composeResources/values/strings.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77
<string name="label_apply">Apply</string>
88
<string name="label_client_status">Client status</string>
99
<string name="label_cdr_api_host">CDR host</string>
10-
<string name="label_cdr_api_host_placeholder">Fully qualified domain name of the CDR host</string>
10+
<string name="label_cdr_api_host_placeholder">Fully qualified domain name of the CDR host, e.g. 'cdr.health.swisscom.ch'</string>
1111
<string name="label_enable_client_service">Client Service</string>
1212
<string name="label_enable_client_service_subtitle">Start synchronizing your documents</string>
1313
<string name="label_enable_document_archive">Document Archive</string>
1414
<string name="label_enable_document_archive_subtitle">Keep an archive of successfully uploaded documents</string>
1515
<string name="label_client_service_status">CDR client service status:</string>
1616
<string name="label_client_idp_settings">CDR Login Details</string>
17-
<string name="label_client_idp_settings_idp_env">Target environment</string>
18-
<string name="label_client_idp_settings_idp_env_placeholder">customer integration / production</string>
17+
<string name="label_client_idp_settings_tenant_id">IdP tenant ID</string>
18+
<string name="label_client_idp_settings_tenant_id_placeholder">The environment (test/production) specific Identity Provider ID</string>
1919
<string name="label_client_idp_settings_client_id">Client ID</string>
2020
<string name="label_client_idp_settings_client_id_placeholder">ID generated on CDR website</string>
2121
<string name="label_client_idp_settings_client_secret">Client password</string>

cdr-client-ui/src/commonMain/kotlin/com/swisscom/health/des/cdr/client/ui/CdrConfigScreen.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ import androidx.compose.material3.Text
2121
import androidx.compose.runtime.Composable
2222
import androidx.compose.runtime.LaunchedEffect
2323
import androidx.compose.runtime.getValue
24+
import androidx.compose.runtime.mutableStateOf
2425
import androidx.compose.runtime.remember
26+
import androidx.compose.runtime.setValue
2527
import androidx.compose.ui.Alignment
2628
import androidx.compose.ui.Modifier
2729
import androidx.compose.ui.unit.dp
@@ -96,17 +98,20 @@ internal fun CdrConfigScreen(
9698

9799
Divider(modifier = modifier)
98100

99-
// TODO: replace with a dropdown to select the environment and set CDR host and tenant ID accordingly
100101
// CDR API Host
101-
DropDownList(
102+
var cdrHostValidationResult: DTOs.ValidationResult by remember { mutableStateOf(DTOs.ValidationResult.Success) }
103+
LaunchedEffect(uiState.clientServiceConfig.cdrApi.host) {
104+
cdrHostValidationResult =
105+
remoteViewValidations.validateNotBlank(uiState.clientServiceConfig.cdrApi.host, DomainObjects.ConfigurationItem.CDR_API_HOST)
106+
}
107+
ValidatedTextField(
102108
name = DomainObjects.ConfigurationItem.CDR_API_HOST,
103109
modifier = modifier.padding(8.dp).fillMaxWidth(),
104-
initiallyExpanded = false,
105-
options = { listOf("cdr.health.swisscom.ch", "stg.cdr.health.swisscom.ch") },
110+
validatable = { cdrHostValidationResult },
106111
label = { Text(text = stringResource(Res.string.label_cdr_api_host)) },
107-
placeHolder = { Text(text = stringResource(Res.string.label_cdr_api_host_placeholder)) },
108112
value = uiState.clientServiceConfig.cdrApi.host,
109-
onValueChange = { viewModel.setCdrApiHost(it) }
113+
placeHolder = { Text(text = stringResource(Res.string.label_cdr_api_host_placeholder)) },
114+
onValueChange = { viewModel.setCdrApiHost(it) },
110115
)
111116

112117
Divider(modifier = modifier)

cdr-client-ui/src/commonMain/kotlin/com/swisscom/health/des/cdr/client/ui/IdpSettingsGroup.kt

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ import com.swisscom.health.des.cdr.client.ui.cdr_client_ui.generated.resources.l
2222
import com.swisscom.health.des.cdr.client.ui.cdr_client_ui.generated.resources.label_client_idp_settings_client_secret_renewal
2323
import com.swisscom.health.des.cdr.client.ui.cdr_client_ui.generated.resources.label_client_idp_settings_client_secret_renewal_subtitle
2424
import com.swisscom.health.des.cdr.client.ui.cdr_client_ui.generated.resources.label_client_idp_settings_client_secret_renewal_timestamp
25-
import com.swisscom.health.des.cdr.client.ui.cdr_client_ui.generated.resources.label_client_idp_settings_idp_env
26-
import com.swisscom.health.des.cdr.client.ui.cdr_client_ui.generated.resources.label_client_idp_settings_idp_env_placeholder
25+
import com.swisscom.health.des.cdr.client.ui.cdr_client_ui.generated.resources.label_client_idp_settings_tenant_id
26+
import com.swisscom.health.des.cdr.client.ui.cdr_client_ui.generated.resources.label_client_idp_settings_tenant_id_placeholder
2727
import io.github.oshai.kotlinlogging.KotlinLogging
2828
import org.jetbrains.compose.resources.stringResource
2929

@@ -52,17 +52,20 @@ internal fun IdpSettingsGroup(
5252
onValueChange = { viewModel.setIdpRenewClientSecret(it) },
5353
)
5454

55-
// TODO: replace with a dropdown to select the environment and set host and tenant ID accordingly
5655
// Tenant ID
57-
DropDownList(
56+
var tenantIdValidationResult: DTOs.ValidationResult by remember { mutableStateOf(DTOs.ValidationResult.Success) }
57+
LaunchedEffect(uiState.clientServiceConfig.idpCredentials.tenantId) {
58+
tenantIdValidationResult =
59+
remoteViewValidations.validateNotBlank(uiState.clientServiceConfig.idpCredentials.tenantId, DomainObjects.ConfigurationItem.IDP_TENANT_ID)
60+
}
61+
ValidatedTextField(
5862
name = DomainObjects.ConfigurationItem.IDP_TENANT_ID,
5963
modifier = modifier.fillMaxWidth(),
60-
initiallyExpanded = false,
61-
options = { listOf("70b434db-eccb-4280-95dc-1e59220aca55","dc5f3d15-71a0-47ad-a792-f708c9b4d123") }, // prod, stage
62-
label = { Text(text = stringResource(Res.string.label_client_idp_settings_idp_env)) },
63-
placeHolder = { Text(text = stringResource(Res.string.label_client_idp_settings_idp_env_placeholder)) },
64+
validatable = { tenantIdValidationResult },
65+
label = { Text(text = stringResource(Res.string.label_client_idp_settings_tenant_id)) },
66+
placeHolder = { Text(text = stringResource(Res.string.label_client_idp_settings_tenant_id_placeholder)) },
6467
value = uiState.clientServiceConfig.idpCredentials.tenantId,
65-
onValueChange = { viewModel.setIdpTenantId(it) }
68+
onValueChange = { viewModel.setIdpTenantId(it) },
6669
)
6770

6871
// Client ID

0 commit comments

Comments
 (0)