From 4d49fe03fa574f219ff41f1acc2e34dfe72dbeaf Mon Sep 17 00:00:00 2001 From: Vladimir Shalimov Date: Fri, 25 Jul 2025 17:51:31 +0400 Subject: [PATCH] CustomFromEmailSettingsApiClient added --- .../com/ecwid/apiclient/v3/ApiClient.kt | 3 +++ .../v3/CustomFromEmailSettingsApiClient.kt | 11 +++++++++++ .../GetCustomFromEmailSettingsRequest.kt | 16 ++++++++++++++++ .../GetCustomFromEmailSettingsResult.kt | 19 +++++++++++++++++++ .../CustomFromEmailSettingsApiClientImpl.kt | 18 ++++++++++++++++++ 5 files changed, 67 insertions(+) create mode 100644 src/main/kotlin/com/ecwid/apiclient/v3/CustomFromEmailSettingsApiClient.kt create mode 100644 src/main/kotlin/com/ecwid/apiclient/v3/dto/customfromemail/GetCustomFromEmailSettingsRequest.kt create mode 100644 src/main/kotlin/com/ecwid/apiclient/v3/dto/customfromemail/GetCustomFromEmailSettingsResult.kt create mode 100644 src/main/kotlin/com/ecwid/apiclient/v3/impl/CustomFromEmailSettingsApiClientImpl.kt diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/ApiClient.kt b/src/main/kotlin/com/ecwid/apiclient/v3/ApiClient.kt index 7bc1f3b0..8125b4d4 100644 --- a/src/main/kotlin/com/ecwid/apiclient/v3/ApiClient.kt +++ b/src/main/kotlin/com/ecwid/apiclient/v3/ApiClient.kt @@ -80,6 +80,7 @@ open class ApiClient private constructor( storeExtrafieldsApiClient: StoreExtrafieldsApiClientImpl, swatchesApiClient: SwatchesApiClientImpl, imagesApiClient: ImagesApiClientImpl, + customFromEmailSettingsApiClient: CustomFromEmailSettingsApiClient, ) : StoreProfileApiClient by storeProfileApiClient, BrandsApiClient by brandsApiClient, @@ -104,6 +105,7 @@ open class ApiClient private constructor( StoreExtrafieldsApiClient by storeExtrafieldsApiClient, SwatchesApiClient by swatchesApiClient, ImagesApiClient by imagesApiClient, + CustomFromEmailSettingsApiClient by customFromEmailSettingsApiClient, Closeable { constructor(apiClientHelper: ApiClientHelper) : this( @@ -131,6 +133,7 @@ open class ApiClient private constructor( storeExtrafieldsApiClient = StoreExtrafieldsApiClientImpl(apiClientHelper), swatchesApiClient = SwatchesApiClientImpl(apiClientHelper), imagesApiClient = ImagesApiClientImpl(apiClientHelper), + customFromEmailSettingsApiClient = CustomFromEmailSettingsApiClient(apiClientHelper), ) override fun close() { diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/CustomFromEmailSettingsApiClient.kt b/src/main/kotlin/com/ecwid/apiclient/v3/CustomFromEmailSettingsApiClient.kt new file mode 100644 index 00000000..2a3f8c1e --- /dev/null +++ b/src/main/kotlin/com/ecwid/apiclient/v3/CustomFromEmailSettingsApiClient.kt @@ -0,0 +1,11 @@ +package com.ecwid.apiclient.v3 + +import com.ecwid.apiclient.v3.dto.customfromemail.GetCustomFromEmailSettingsRequest +import com.ecwid.apiclient.v3.dto.customfromemail.GetCustomFromEmailSettingsResult + +/** + * Internal api to manage custom from emails verification procedure + */ +interface CustomFromEmailSettingsApiClient { + fun getCustomFromEmailSettings(request: GetCustomFromEmailSettingsRequest) : GetCustomFromEmailSettingsResult +} diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/dto/customfromemail/GetCustomFromEmailSettingsRequest.kt b/src/main/kotlin/com/ecwid/apiclient/v3/dto/customfromemail/GetCustomFromEmailSettingsRequest.kt new file mode 100644 index 00000000..ca2fb1ce --- /dev/null +++ b/src/main/kotlin/com/ecwid/apiclient/v3/dto/customfromemail/GetCustomFromEmailSettingsRequest.kt @@ -0,0 +1,16 @@ +package com.ecwid.apiclient.v3.dto.customfromemail + +import com.ecwid.apiclient.v3.dto.ApiRequest +import com.ecwid.apiclient.v3.impl.RequestInfo +import com.ecwid.apiclient.v3.responsefields.ResponseFields + +data class GetCustomFromEmailSettingsRequest( + val responseFields: ResponseFields = ResponseFields.All, +) : ApiRequest { + override fun toRequestInfo() = RequestInfo.createGetRequest( + pathSegments = listOf( + "custom-from-email-settings", + ), + responseFields = responseFields, + ) +} diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/dto/customfromemail/GetCustomFromEmailSettingsResult.kt b/src/main/kotlin/com/ecwid/apiclient/v3/dto/customfromemail/GetCustomFromEmailSettingsResult.kt new file mode 100644 index 00000000..1fb88874 --- /dev/null +++ b/src/main/kotlin/com/ecwid/apiclient/v3/dto/customfromemail/GetCustomFromEmailSettingsResult.kt @@ -0,0 +1,19 @@ +package com.ecwid.apiclient.v3.dto.customfromemail + +import com.ecwid.apiclient.v3.dto.common.ApiResultDTO + +data class GetCustomFromEmailSettingsResult( + val currentEmail: CurrentEmail?, + val emailOnValidation: EmailOnValidation?, +) : ApiResultDTO + +data class CurrentEmail( + val email: String, +) + +data class EmailOnValidation( + val email: String, + val confirmedViaLink: Boolean, + val secondsUntilNextConfirmationEmailAvaialble: Int, + val domainVerificationStarted: Boolean, +) diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/impl/CustomFromEmailSettingsApiClientImpl.kt b/src/main/kotlin/com/ecwid/apiclient/v3/impl/CustomFromEmailSettingsApiClientImpl.kt new file mode 100644 index 00000000..ad774579 --- /dev/null +++ b/src/main/kotlin/com/ecwid/apiclient/v3/impl/CustomFromEmailSettingsApiClientImpl.kt @@ -0,0 +1,18 @@ +package com.ecwid.apiclient.v3.impl + +import com.ecwid.apiclient.v3.ApiClientHelper +import com.ecwid.apiclient.v3.CustomFromEmailSettingsApiClient +import com.ecwid.apiclient.v3.dto.customfromemail.GetCustomFromEmailSettingsRequest +import com.ecwid.apiclient.v3.dto.customfromemail.GetCustomFromEmailSettingsResult + +class CustomFromEmailSettingsApiClientImpl( + private val apiClientHelper: ApiClientHelper +) : CustomFromEmailSettingsApiClient { + + override fun getCustomFromEmailSettings( + request: GetCustomFromEmailSettingsRequest + ): GetCustomFromEmailSettingsResult { + return apiClientHelper.makeObjectResultRequest(request) + } + +}