Skip to content

Commit 0e19222

Browse files
committed
ECWID-142216 Ecwid Api changes: implement ApiResultDTO for generic parsing
1 parent d2e53de commit 0e19222

4 files changed

Lines changed: 14 additions & 1 deletion

File tree

src/main/kotlin/com/ecwid/apiclient/v3/StoreProfileApiClient.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ interface StoreProfileApiClient {
3535
fun updateExtrafieldConfig(request: ExtrafieldConfigUpdateRequest): ExtrafieldConfigUpdateResult
3636
fun deleteExtrafieldConfig(request: ExtrafieldConfigDeleteRequest): ExtrafieldConfigDeleteResult
3737
fun searchOrderStatusesSettings(request: OrderStatusSettingsSearchRequest): OrderStatusSettingsSearchResult
38+
fun <Result> searchOrderStatusesSettings(request: OrderStatusSettingsSearchRequest, resultClass: KClass<Result>): Result
39+
where Result : PartialResult<OrderStatusSettingsSearchResult>
3840
fun getOrderStatusSettingsDetails(request: OrderStatusSettingsDetailsRequest): FetchedOrderStatusSettings
3941
fun updateOrderStatusSettings(request: OrderStatusSettingsUpdateRequest): OrderStatusSettingsUpdateResult
4042
}
@@ -43,3 +45,8 @@ interface StoreProfileApiClient {
4345
inline fun <reified Result : PartialResult<FetchedStoreProfile>> StoreProfileApiClient.getStoreProfile(request: StoreProfileRequest): Result {
4446
return getStoreProfile(request, Result::class)
4547
}
48+
49+
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
50+
inline fun <reified Result : PartialResult<OrderStatusSettingsSearchResult>> StoreProfileApiClient.searchOrderStatusesSettings(request: OrderStatusSettingsSearchRequest): Result {
51+
return searchOrderStatusesSettings(request, Result::class)
52+
}

src/main/kotlin/com/ecwid/apiclient/v3/dto/profile/result/FetchedOrderStatusSettings.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.ecwid.apiclient.v3.dto.profile.result
22

33
import com.ecwid.apiclient.v3.dto.common.ApiFetchedDTO
4+
import com.ecwid.apiclient.v3.dto.common.ApiResultDTO
45
import com.ecwid.apiclient.v3.dto.common.LocalizedValueMap
56
import com.ecwid.apiclient.v3.dto.profile.request.UpdatedOrderStatusSettings
67

@@ -13,6 +14,6 @@ data class FetchedOrderStatusSettings(
1314
val nameTranslations: LocalizedValueMap? = null,
1415
val sendNotificationWhenStatusIsAssigned: Boolean = true,
1516
val lastNameChangeDate: String? = null,
16-
) : ApiFetchedDTO {
17+
) : ApiFetchedDTO, ApiResultDTO {
1718
override fun getModifyKind() = ApiFetchedDTO.ModifyKind.ReadWrite(UpdatedOrderStatusSettings::class)
1819
}

src/main/kotlin/com/ecwid/apiclient/v3/dto/profile/result/OrderStatusSettingsSearchResult.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ import com.ecwid.apiclient.v3.dto.common.ApiResultDTO
44

55
data class OrderStatusSettingsSearchResult(
66
val items: List<FetchedOrderStatusSettings> = listOf(),
7+
val limit: Int = 0,
78
) : ApiResultDTO

src/main/kotlin/com/ecwid/apiclient/v3/impl/StoreProfileApiClientImpl.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,8 @@ internal class StoreProfileApiClientImpl(
7979
override fun <Result : PartialResult<FetchedStoreProfile>> getStoreProfile(request: StoreProfileRequest, resultClass: KClass<Result>): Result {
8080
return apiClientHelper.makeObjectPartialResultRequest(request, resultClass)
8181
}
82+
83+
override fun <Result : PartialResult<OrderStatusSettingsSearchResult>> searchOrderStatusesSettings(request: OrderStatusSettingsSearchRequest, resultClass: KClass<Result>): Result {
84+
return apiClientHelper.makeObjectPartialResultRequest(request, resultClass)
85+
}
8286
}

0 commit comments

Comments
 (0)