Skip to content

Commit c188d1a

Browse files
committed
ECWID-144507 new endpoint for store extrafields customers config
1 parent 48207bf commit c188d1a

27 files changed

Lines changed: 284 additions & 38 deletions

.DS_Store

8 KB
Binary file not shown.

src/.DS_Store

6 KB
Binary file not shown.

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ open class ApiClient private constructor(
7373
instantSiteRedirectsApiClient: InstantSiteRedirectsApiClientImpl,
7474
slugInfoApiClient: SlugInfoApiClientImpl,
7575
productReviewsApiClient: ProductReviewsApiClientImpl,
76+
storeExtrafieldsApiClient: StoreExtrafieldsApiClientImpl,
7677
) :
7778
StoreProfileApiClient by storeProfileApiClient,
7879
ProductsApiClient by productsApiClient,
@@ -92,7 +93,8 @@ open class ApiClient private constructor(
9293
SubscriptionsApiClient by subscriptionsApiClient,
9394
InstantSiteRedirectsApiClient by instantSiteRedirectsApiClient,
9495
SlugInfoApiClient by slugInfoApiClient,
95-
ProductReviewsApiClient by productReviewsApiClient {
96+
ProductReviewsApiClient by productReviewsApiClient,
97+
StoreExtrafieldsApiClient by storeExtrafieldsApiClient {
9698

9799
constructor(apiClientHelper: ApiClientHelper) : this(
98100
apiClientHelper = apiClientHelper,
@@ -115,6 +117,7 @@ open class ApiClient private constructor(
115117
instantSiteRedirectsApiClient = InstantSiteRedirectsApiClientImpl(apiClientHelper),
116118
slugInfoApiClient = SlugInfoApiClientImpl(apiClientHelper),
117119
productReviewsApiClient = ProductReviewsApiClientImpl(apiClientHelper),
120+
storeExtrafieldsApiClient = StoreExtrafieldsApiClientImpl(apiClientHelper),
118121
)
119122

120123
companion object {
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.ecwid.apiclient.v3
2+
3+
import com.ecwid.apiclient.v3.dto.extrafield.request.*
4+
import com.ecwid.apiclient.v3.dto.extrafield.result.*
5+
6+
7+
interface StoreExtrafieldsApiClient {
8+
fun searchCustomersConfigs(request: CustomersConfigsSearchRequest): CustomersConfigsSearchResult
9+
fun getCustomersConfig(request: CustomersConfigDetailsRequest): FetchedCustomersConfig
10+
fun createCustomersConfig(request: CustomersConfigCreateRequest): CustomersConfigCreateResult
11+
fun updateCustomersConfig(request: CustomersConfigUpdateRequest): CustomersConfigUpdateResult
12+
fun deleteCustomersConfig(request: CustomersConfigDeleteRequest): CustomersConfigDeleteResult
13+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.ecwid.apiclient.v3.converter
2+
3+
import com.ecwid.apiclient.v3.dto.extrafield.request.UpdatedCustomersConfig
4+
import com.ecwid.apiclient.v3.dto.extrafield.result.FetchedCustomersConfig
5+
6+
7+
fun FetchedCustomersConfig.toUpdated(): UpdatedCustomersConfig {
8+
return UpdatedCustomersConfig(
9+
key = key,
10+
title = title,
11+
type = type,
12+
shownOnOrderDetails = shownOnOrderDetails,
13+
)
14+
}

src/main/kotlin/com/ecwid/apiclient/v3/dto/customer/request/UpdatedCustomer.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.ecwid.apiclient.v3.dto.common.ApiUpdatedDTO
44
import com.ecwid.apiclient.v3.dto.common.ApiUpdatedDTO.ModifyKind
55
import com.ecwid.apiclient.v3.dto.customer.enums.CommercialRelationshipScheme
66
import com.ecwid.apiclient.v3.dto.customer.result.FetchedCustomer
7+
import com.ecwid.apiclient.v3.dto.extrafield.enums.ExtrafieldType
78
import com.ecwid.apiclient.v3.jsontransformer.JsonFieldName
89

910
data class UpdatedCustomer(
@@ -65,7 +66,7 @@ data class UpdatedCustomer(
6566
val key: String? = null,
6667
val title: String? = null,
6768
val value: String? = null,
68-
val type: String? = null,
69+
val type: ExtrafieldType? = null,
6970
)
7071

7172
override fun getModifyKind() = ModifyKind.ReadWrite(FetchedCustomer::class)

src/main/kotlin/com/ecwid/apiclient/v3/dto/customer/result/FetchedCustomer.kt

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ import com.ecwid.apiclient.v3.dto.common.ApiFetchedDTO
44
import com.ecwid.apiclient.v3.dto.common.ApiFetchedDTO.ModifyKind
55
import com.ecwid.apiclient.v3.dto.customer.enums.CommercialRelationshipScheme
66
import com.ecwid.apiclient.v3.dto.customer.request.UpdatedCustomer
7+
import com.ecwid.apiclient.v3.dto.extrafield.enums.ExtrafieldEntityType
8+
import com.ecwid.apiclient.v3.dto.extrafield.enums.ExtrafieldType
79
import com.ecwid.apiclient.v3.jsontransformer.JsonFieldName
810
import java.util.*
9-
import kotlin.collections.ArrayList
1011

1112
data class FetchedCustomer(
1213
val id: Int = 0,
@@ -91,12 +92,12 @@ data class FetchedCustomer(
9192
)
9293

9394
data class CustomerExtrafield(
94-
val key: String? = null,
95-
val title: String? = null,
96-
val value: String? = null,
97-
val orderBy: Int = 0,
98-
val type: String? = null,
99-
val entityTypes: List<String> = emptyList(),
95+
val key: String? = null,
96+
val title: String? = null,
97+
val value: String? = null,
98+
val orderBy: Int = 0,
99+
val type: ExtrafieldType? = null,
100+
val entityTypes: List<ExtrafieldEntityType> = emptyList(),
100101
)
101102

102103
override fun getModifyKind() = ModifyKind.ReadWrite(UpdatedCustomer::class)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.ecwid.apiclient.v3.dto.extrafield.enums
2+
3+
enum class ExtrafieldEntityType {
4+
CHECKOUT,
5+
CUSTOMERS,
6+
}

src/main/kotlin/com/ecwid/apiclient/v3/dto/profile/enums/ExtrafieldType.kt renamed to src/main/kotlin/com/ecwid/apiclient/v3/dto/extrafield/enums/ExtrafieldType.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.ecwid.apiclient.v3.dto.profile.enums
1+
package com.ecwid.apiclient.v3.dto.extrafield.enums
22

33
enum class ExtrafieldType {
44
TEXT,
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.ecwid.apiclient.v3.dto.extrafield.request
2+
3+
import com.ecwid.apiclient.v3.dto.ApiRequest
4+
import com.ecwid.apiclient.v3.httptransport.HttpBody
5+
import com.ecwid.apiclient.v3.impl.RequestInfo
6+
7+
data class CustomersConfigCreateRequest(
8+
val newConfig: UpdatedCustomersConfig = UpdatedCustomersConfig()
9+
) : ApiRequest {
10+
override fun toRequestInfo() = RequestInfo.createPostRequest(
11+
pathSegments = listOf(
12+
"store_extrafields",
13+
"customers"
14+
),
15+
httpBody = HttpBody.JsonBody(
16+
obj = newConfig
17+
)
18+
)
19+
}

0 commit comments

Comments
 (0)