From e2b238297587d1b4802c281a1409d36671b1b3c1 Mon Sep 17 00:00:00 2001 From: Aleksandr Blake Kuryshev Date: Tue, 14 Jan 2025 01:20:59 +0400 Subject: [PATCH] =?UTF-8?q?ECWID-148789=20OE2:=20Choose=20customer=20from?= =?UTF-8?q?=20existing=20customers=20=E2=80=94=20add=20ability=20to=20get?= =?UTF-8?q?=20last=20order.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ecwid/apiclient/v3/OrdersApiClient.kt | 1 + .../order/request/LastOrderDetailsRequest.kt | 23 +++++++++++++++++++ .../apiclient/v3/impl/OrdersApiClientImpl.kt | 3 +++ 3 files changed, 27 insertions(+) create mode 100644 src/main/kotlin/com/ecwid/apiclient/v3/dto/order/request/LastOrderDetailsRequest.kt diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/OrdersApiClient.kt b/src/main/kotlin/com/ecwid/apiclient/v3/OrdersApiClient.kt index 4214456d1..2f0c72437 100644 --- a/src/main/kotlin/com/ecwid/apiclient/v3/OrdersApiClient.kt +++ b/src/main/kotlin/com/ecwid/apiclient/v3/OrdersApiClient.kt @@ -13,6 +13,7 @@ interface OrdersApiClient { where Result : PartialResult fun searchOrdersAsSequence(request: OrdersSearchRequest): Sequence fun getOrderDetails(request: OrderDetailsRequest): FetchedOrder + fun getLastOrderDetails(request: LastOrderDetailsRequest): FetchedOrder fun getOrderInvoice(request: OrderInvoiceRequest): String fun createOrder(request: OrderCreateRequest): OrderCreateResult fun updateOrder(request: OrderUpdateRequest): OrderUpdateResult diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/request/LastOrderDetailsRequest.kt b/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/request/LastOrderDetailsRequest.kt new file mode 100644 index 000000000..f14d1aeb1 --- /dev/null +++ b/src/main/kotlin/com/ecwid/apiclient/v3/dto/order/request/LastOrderDetailsRequest.kt @@ -0,0 +1,23 @@ +package com.ecwid.apiclient.v3.dto.order.request + +import com.ecwid.apiclient.v3.dto.ApiRequest +import com.ecwid.apiclient.v3.impl.RequestInfo +import com.ecwid.apiclient.v3.responsefields.ResponseFields + +data class LastOrderDetailsRequest( + val customerEmail: String = "", + val withAddress: Boolean = false, + val responseFields: ResponseFields = ResponseFields.All, +) : ApiRequest { + override fun toRequestInfo() = RequestInfo.createGetRequest( + pathSegments = listOf( + "orders", + "last", + ), + params = mapOf( + "customerEmail" to customerEmail, + "withAddress" to withAddress.toString(), + ), + responseFields = responseFields, + ) +} diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/impl/OrdersApiClientImpl.kt b/src/main/kotlin/com/ecwid/apiclient/v3/impl/OrdersApiClientImpl.kt index 2f97cb9a4..f4c54c076 100644 --- a/src/main/kotlin/com/ecwid/apiclient/v3/impl/OrdersApiClientImpl.kt +++ b/src/main/kotlin/com/ecwid/apiclient/v3/impl/OrdersApiClientImpl.kt @@ -39,6 +39,9 @@ internal class OrdersApiClientImpl( override fun getOrderDetails(request: OrderDetailsRequest) = apiClientHelper.makeObjectResultRequest(request) + override fun getLastOrderDetails(request: LastOrderDetailsRequest) = + apiClientHelper.makeObjectResultRequest(request) + override fun getOrderInvoice(request: OrderInvoiceRequest) = apiClientHelper.makeStringResultRequest(request) override fun createOrder(request: OrderCreateRequest) =