Skip to content

Commit d7a48ac

Browse files
committed
ECWID-141762 merge remote-tracking branch 'origin/master' into ECWID-141762
2 parents 0f23e56 + 804bef0 commit d7a48ac

48 files changed

Lines changed: 443 additions & 56 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.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: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ import com.ecwid.apiclient.v3.dto.productreview.request.*
3232
import com.ecwid.apiclient.v3.dto.productreview.result.*
3333
import com.ecwid.apiclient.v3.dto.producttype.request.*
3434
import com.ecwid.apiclient.v3.dto.producttype.result.*
35+
import com.ecwid.apiclient.v3.dto.report.request.ReportAdviceRequest
3536
import com.ecwid.apiclient.v3.dto.report.request.ReportRequest
37+
import com.ecwid.apiclient.v3.dto.report.result.FetchedReportAdviceResponse
3638
import com.ecwid.apiclient.v3.dto.report.result.FetchedReportResponse
3739
import com.ecwid.apiclient.v3.dto.saleschannels.request.*
3840
import com.ecwid.apiclient.v3.dto.saleschannels.response.*
@@ -71,6 +73,7 @@ open class ApiClient private constructor(
7173
instantSiteRedirectsApiClient: InstantSiteRedirectsApiClientImpl,
7274
slugInfoApiClient: SlugInfoApiClientImpl,
7375
productReviewsApiClient: ProductReviewsApiClientImpl,
76+
storeExtrafieldsApiClient: StoreExtrafieldsApiClientImpl,
7477
) :
7578
StoreProfileApiClient by storeProfileApiClient,
7679
ProductsApiClient by productsApiClient,
@@ -90,7 +93,8 @@ open class ApiClient private constructor(
9093
SubscriptionsApiClient by subscriptionsApiClient,
9194
InstantSiteRedirectsApiClient by instantSiteRedirectsApiClient,
9295
SlugInfoApiClient by slugInfoApiClient,
93-
ProductReviewsApiClient by productReviewsApiClient {
96+
ProductReviewsApiClient by productReviewsApiClient,
97+
StoreExtrafieldsApiClient by storeExtrafieldsApiClient {
9498

9599
constructor(apiClientHelper: ApiClientHelper) : this(
96100
apiClientHelper = apiClientHelper,
@@ -113,6 +117,7 @@ open class ApiClient private constructor(
113117
instantSiteRedirectsApiClient = InstantSiteRedirectsApiClientImpl(apiClientHelper),
114118
slugInfoApiClient = SlugInfoApiClientImpl(apiClientHelper),
115119
productReviewsApiClient = ProductReviewsApiClientImpl(apiClientHelper),
120+
storeExtrafieldsApiClient = StoreExtrafieldsApiClientImpl(apiClientHelper),
116121
)
117122

118123
companion object {
@@ -136,23 +141,6 @@ open class ApiClient private constructor(
136141
}
137142
}
138143

139-
// Orders
140-
// https://developers.ecwid.com/api-documentation/orders
141-
interface OrdersApiClient {
142-
fun searchOrders(request: OrdersSearchRequest): OrdersSearchResult
143-
fun searchOrdersAsSequence(request: OrdersSearchRequest): Sequence<FetchedOrder>
144-
fun getOrderDetails(request: OrderDetailsRequest): FetchedOrder
145-
fun getOrderInvoice(request: OrderInvoiceRequest): String
146-
fun createOrder(request: OrderCreateRequest): OrderCreateResult
147-
fun updateOrder(request: OrderUpdateRequest): OrderUpdateResult
148-
fun deleteOrder(request: OrderDeleteRequest): OrderDeleteResult
149-
fun uploadOrderItemOptionFile(request: OrderItemOptionFileUploadRequest): OrderItemOptionFileUploadResult
150-
fun deleteOrderItemOptionFile(request: OrderItemOptionFileDeleteRequest): OrderItemOptionFileDeleteResult
151-
fun deleteOrderItemOptionFiles(request: OrderItemOptionFilesDeleteRequest): OrderItemOptionFileDeleteResult
152-
fun searchDeletedOrders(request: DeletedOrdersSearchRequest): DeletedOrdersSearchResult
153-
fun searchDeletedOrdersAsSequence(request: DeletedOrdersSearchRequest): Sequence<DeletedOrder>
154-
}
155-
156144
// Product types
157145
// https://developers.ecwid.com/api-documentation/product-types
158146
interface ProductTypesApiClient {
@@ -294,6 +282,7 @@ interface ApplicationStorageApiClient {
294282
// Report API
295283
interface ReportsApiClient {
296284
fun fetchReport(request: ReportRequest): FetchedReportResponse
285+
fun getReportAdvice(request: ReportAdviceRequest): FetchedReportAdviceResponse
297286
}
298287

299288
// Recurring subscriptions
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.ecwid.apiclient.v3
2+
3+
import com.ecwid.apiclient.v3.dto.common.PartialResult
4+
import com.ecwid.apiclient.v3.dto.order.request.*
5+
import com.ecwid.apiclient.v3.dto.order.result.*
6+
import kotlin.reflect.KClass
7+
8+
// Orders
9+
// https://developers.ecwid.com/api-documentation/orders
10+
interface OrdersApiClient {
11+
fun searchOrders(request: OrdersSearchRequest): OrdersSearchResult
12+
fun <Result> searchOrders(request: OrdersSearchRequest, resultClass: KClass<Result>): Result
13+
where Result : PartialResult<OrdersSearchResult>
14+
fun searchOrdersAsSequence(request: OrdersSearchRequest): Sequence<FetchedOrder>
15+
fun getOrderDetails(request: OrderDetailsRequest): FetchedOrder
16+
fun getOrderInvoice(request: OrderInvoiceRequest): String
17+
fun createOrder(request: OrderCreateRequest): OrderCreateResult
18+
fun updateOrder(request: OrderUpdateRequest): OrderUpdateResult
19+
fun deleteOrder(request: OrderDeleteRequest): OrderDeleteResult
20+
fun uploadOrderItemOptionFile(request: OrderItemOptionFileUploadRequest): OrderItemOptionFileUploadResult
21+
fun deleteOrderItemOptionFile(request: OrderItemOptionFileDeleteRequest): OrderItemOptionFileDeleteResult
22+
fun deleteOrderItemOptionFiles(request: OrderItemOptionFilesDeleteRequest): OrderItemOptionFileDeleteResult
23+
fun searchDeletedOrders(request: DeletedOrdersSearchRequest): DeletedOrdersSearchResult
24+
fun searchDeletedOrdersAsSequence(request: DeletedOrdersSearchRequest): Sequence<DeletedOrder>
25+
}
26+
27+
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")
28+
inline fun <reified Result : PartialResult<OrdersSearchResult>> OrdersApiClient.searchOrders(request: OrdersSearchRequest): Result {
29+
return searchOrders(request, Result::class)
30+
}
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+
}

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/converter/FetchedCustomer.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ fun FetchedCustomer.toUpdated(): UpdatedCustomer {
1717
lang = lang,
1818
privateAdminNotes = privateAdminNotes,
1919
commercialRelationshipScheme = commercialRelationshipScheme,
20+
extrafields = extrafields?.map(FetchedCustomer.CustomerExtrafield::toUpdated)
2021
)
2122
}
2223

@@ -61,3 +62,12 @@ fun FetchedCustomer.CustomerContact.toUpdated(): UpdatedCustomer.CustomerContact
6162
orderBy = orderBy,
6263
)
6364
}
65+
66+
fun FetchedCustomer.CustomerExtrafield.toUpdated(): UpdatedCustomer.CustomerExtrafield {
67+
return UpdatedCustomer.CustomerExtrafield(
68+
key = key,
69+
title = title,
70+
value = value,
71+
type = type,
72+
)
73+
}
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/converter/FetchedProduct.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ fun FetchedProduct.toUpdated(): UpdatedProduct {
1212
description = description,
1313
descriptionTranslated = descriptionTranslated,
1414
sku = sku,
15+
customSlug = customSlug,
1516

1617
enabled = enabled,
1718
quantity = quantity,
@@ -55,6 +56,7 @@ fun FetchedProduct.toUpdated(): UpdatedProduct {
5556

5657
media = media?.toUpdated(),
5758

59+
discountsAllowed = discountsAllowed,
5860
subtitle = subtitle,
5961
ribbon = ribbon?.toUpdated(),
6062
ribbonTranslated = ribbonTranslated,

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ data class CustomersSearchRequest(
1111
val name: String? = null,
1212
val email: String? = null,
1313
val customerGroupId: Int? = null,
14+
val usePrecalculatedOrderCount: Boolean? = null,
1415
val minOrderCount: Int? = null,
1516
val maxOrderCount: Int? = null,
1617
val minSalesValue: Int? = null,
@@ -70,6 +71,7 @@ data class CustomersSearchRequest(
7071
request.name?.let { put("name", it) }
7172
request.email?.let { put("email", it) }
7273
request.customerGroupId?.let { put("customerGroup", it.toString()) }
74+
request.usePrecalculatedOrderCount?.let { put("usePrecalculatedOrderCount", it.toString()) }
7375
request.minOrderCount?.let { put("minOrderCount", it.toString()) }
7476
request.maxOrderCount?.let { put("maxOrderCount", it.toString()) }
7577
request.minSalesValue?.let { put("minSalesValue", it.toString()) }

0 commit comments

Comments
 (0)