diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/ApiClient.kt b/src/main/kotlin/com/ecwid/apiclient/v3/ApiClient.kt index b2dc63c1..7bc1f3b0 100644 --- a/src/main/kotlin/com/ecwid/apiclient/v3/ApiClient.kt +++ b/src/main/kotlin/com/ecwid/apiclient/v3/ApiClient.kt @@ -24,6 +24,8 @@ import com.ecwid.apiclient.v3.dto.customer.request.* import com.ecwid.apiclient.v3.dto.customer.result.* import com.ecwid.apiclient.v3.dto.customergroup.request.* import com.ecwid.apiclient.v3.dto.customergroup.result.* +import com.ecwid.apiclient.v3.dto.images.request.ImagesMainColorsRequest +import com.ecwid.apiclient.v3.dto.images.result.FetchedImagesMainColorsResult import com.ecwid.apiclient.v3.dto.instantsite.redirects.request.* import com.ecwid.apiclient.v3.dto.instantsite.redirects.result.* import com.ecwid.apiclient.v3.dto.productreview.request.* @@ -77,6 +79,7 @@ open class ApiClient private constructor( productReviewsApiClient: ProductReviewsApiClientImpl, storeExtrafieldsApiClient: StoreExtrafieldsApiClientImpl, swatchesApiClient: SwatchesApiClientImpl, + imagesApiClient: ImagesApiClientImpl, ) : StoreProfileApiClient by storeProfileApiClient, BrandsApiClient by brandsApiClient, @@ -100,6 +103,7 @@ open class ApiClient private constructor( ProductReviewsApiClient by productReviewsApiClient, StoreExtrafieldsApiClient by storeExtrafieldsApiClient, SwatchesApiClient by swatchesApiClient, + ImagesApiClient by imagesApiClient, Closeable { constructor(apiClientHelper: ApiClientHelper) : this( @@ -126,6 +130,7 @@ open class ApiClient private constructor( productReviewsApiClient = ProductReviewsApiClientImpl(apiClientHelper), storeExtrafieldsApiClient = StoreExtrafieldsApiClientImpl(apiClientHelper), swatchesApiClient = SwatchesApiClientImpl(apiClientHelper), + imagesApiClient = ImagesApiClientImpl(apiClientHelper), ) override fun close() { @@ -332,3 +337,7 @@ interface ProductReviewsApiClient { interface SwatchesApiClient { fun getRecentSwatchColors(request: RecentSwatchColorsGetRequest): FetchedSwatchColorsResult } + +interface ImagesApiClient { + fun getImagesMainColors(request: ImagesMainColorsRequest): FetchedImagesMainColorsResult +} diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/dto/images/request/ImagesMainColorsRequest.kt b/src/main/kotlin/com/ecwid/apiclient/v3/dto/images/request/ImagesMainColorsRequest.kt new file mode 100644 index 00000000..8b3e8540 --- /dev/null +++ b/src/main/kotlin/com/ecwid/apiclient/v3/dto/images/request/ImagesMainColorsRequest.kt @@ -0,0 +1,27 @@ +package com.ecwid.apiclient.v3.dto.images.request + +import com.ecwid.apiclient.v3.dto.ApiRequest +import com.ecwid.apiclient.v3.dto.common.ApiRequestDTO +import com.ecwid.apiclient.v3.httptransport.HttpBody +import com.ecwid.apiclient.v3.impl.RequestInfo + +data class ImagesMainColorsRequest( + val imagesMainColorsRequest: ImagesMainColorsRequestBody = ImagesMainColorsRequestBody() +) : ApiRequest { + override fun toRequestInfo(): RequestInfo { + return RequestInfo.createPostRequest( + pathSegments = listOf( + "images", + "main-colors", + ), + httpBody = HttpBody.JsonBody( + obj = imagesMainColorsRequest, + ) + ) + } +} + +data class ImagesMainColorsRequestBody( + val imageUrls: List = emptyList(), + val colorsCount: Int = 5, +) : ApiRequestDTO diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/dto/images/result/FetchedImagesMainColorsResult.kt b/src/main/kotlin/com/ecwid/apiclient/v3/dto/images/result/FetchedImagesMainColorsResult.kt new file mode 100644 index 00000000..7947f307 --- /dev/null +++ b/src/main/kotlin/com/ecwid/apiclient/v3/dto/images/result/FetchedImagesMainColorsResult.kt @@ -0,0 +1,12 @@ +package com.ecwid.apiclient.v3.dto.images.result + +import com.ecwid.apiclient.v3.dto.common.ApiResultDTO + +data class FetchedImagesMainColorsResult( + val result: Map = emptyMap(), +) : ApiResultDTO + + +data class FetchedImageMainColors( + val colors: List = emptyList(), +) : ApiResultDTO diff --git a/src/main/kotlin/com/ecwid/apiclient/v3/impl/ImagesApiClientImpl.kt b/src/main/kotlin/com/ecwid/apiclient/v3/impl/ImagesApiClientImpl.kt new file mode 100644 index 00000000..8a78480b --- /dev/null +++ b/src/main/kotlin/com/ecwid/apiclient/v3/impl/ImagesApiClientImpl.kt @@ -0,0 +1,14 @@ +package com.ecwid.apiclient.v3.impl + +import com.ecwid.apiclient.v3.ApiClientHelper +import com.ecwid.apiclient.v3.ImagesApiClient +import com.ecwid.apiclient.v3.dto.images.request.ImagesMainColorsRequest +import com.ecwid.apiclient.v3.dto.images.result.FetchedImagesMainColorsResult + +class ImagesApiClientImpl( + private val apiClientHelper: ApiClientHelper, +) : ImagesApiClient { + override fun getImagesMainColors(request: ImagesMainColorsRequest): FetchedImagesMainColorsResult { + return apiClientHelper.makeObjectResultRequest(request) + } +}