Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/main/kotlin/com/ecwid/apiclient/v3/ApiClient.kt
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,9 @@ interface StoreProfileApiClient {
fun createExtrafieldConfig(request: ExtrafieldConfigCreateRequest): ExtrafieldConfigCreateResult
fun updateExtrafieldConfig(request: ExtrafieldConfigUpdateRequest): ExtrafieldConfigUpdateResult
fun deleteExtrafieldConfig(request: ExtrafieldConfigDeleteRequest): ExtrafieldConfigDeleteResult
fun searchOrderStatusesSettings(request: OrderStatusSettingsSearchRequest): OrderStatusSettingsSearchResult
fun getOrderStatusSettingsDetails(request: OrderStatusSettingsDetailsRequest): FetchedOrderStatusSettings
fun updateOrderStatusSettings(request: OrderStatusSettingsUpdateRequest): OrderStatusSettingsUpdateResult
}

// Products
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.ecwid.apiclient.v3.converter

import com.ecwid.apiclient.v3.dto.common.LocalizedValueMap
import com.ecwid.apiclient.v3.dto.profile.request.UpdatedOrderStatusSettings
import com.ecwid.apiclient.v3.dto.profile.result.FetchedOrderStatusSettings

fun FetchedOrderStatusSettings.toUpdated(): UpdatedOrderStatusSettings {
return UpdatedOrderStatusSettings(
enabled = enabled,
name = name,
nameTranslations = if (nameTranslations != null) LocalizedValueMap(nameTranslations) else null,
sendNotificationWhenStatusIsAssigned = sendNotificationWhenStatusIsAssigned,
)
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.ecwid.apiclient.v3.dto.profile.request

import com.ecwid.apiclient.v3.dto.ApiRequest
import com.ecwid.apiclient.v3.impl.RequestInfo

data class OrderStatusSettingsDetailsRequest(
val statusId: String = ""
) : ApiRequest {
override fun toRequestInfo() = RequestInfo.createGetRequest(
pathSegments = listOf(
"profile",
"order_status",
statusId
),
params = mapOf()
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.ecwid.apiclient.v3.dto.profile.request

import com.ecwid.apiclient.v3.dto.ApiRequest
import com.ecwid.apiclient.v3.impl.RequestInfo

class OrderStatusSettingsSearchRequest : ApiRequest {
override fun toRequestInfo() = RequestInfo.createGetRequest(
pathSegments = listOf(
"profile",
"order_statuses"
),
params = mapOf()
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.ecwid.apiclient.v3.dto.profile.request

import com.ecwid.apiclient.v3.dto.ApiRequest
import com.ecwid.apiclient.v3.httptransport.HttpBody
import com.ecwid.apiclient.v3.impl.RequestInfo

data class OrderStatusSettingsUpdateRequest(
val statusId: String = "",
val updatedOrderStatusSettings: UpdatedOrderStatusSettings = UpdatedOrderStatusSettings()
) : ApiRequest {
override fun toRequestInfo() = RequestInfo.createPutRequest(
pathSegments = listOf(
"profile",
"order_status",
statusId
),
httpBody = HttpBody.JsonBody(
obj = updatedOrderStatusSettings
)
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.ecwid.apiclient.v3.dto.profile.request

import com.ecwid.apiclient.v3.dto.common.ApiUpdatedDTO
import com.ecwid.apiclient.v3.dto.common.ApiUpdatedDTO.ModifyKind
import com.ecwid.apiclient.v3.dto.common.LocalizedValueMap
import com.ecwid.apiclient.v3.dto.profile.result.FetchedOrderStatusSettings

data class UpdatedOrderStatusSettings(
val enabled: Boolean? = null,
val name: String? = null,
val nameTranslations: LocalizedValueMap? = null,
val sendNotificationWhenStatusIsAssigned: Boolean? = null,
) : ApiUpdatedDTO {

override fun getModifyKind() = ModifyKind.ReadWrite(FetchedOrderStatusSettings::class)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.ecwid.apiclient.v3.dto.profile.result

import com.ecwid.apiclient.v3.dto.common.ApiFetchedDTO
import com.ecwid.apiclient.v3.dto.common.LocalizedValueMap
import com.ecwid.apiclient.v3.dto.profile.request.UpdatedOrderStatusSettings

data class FetchedOrderStatusSettings(
val statusId: String = "",
val orderStatusType: String = "",
val defaultStatus: Boolean? = null,
val enabled: Boolean = true,
val name: String? = null,
val nameTranslations: LocalizedValueMap? = null,
val sendNotificationWhenStatusIsAssigned: Boolean = true,
val lastNameChangeDate: String? = null,
) : ApiFetchedDTO {
override fun getModifyKind() = ApiFetchedDTO.ModifyKind.ReadWrite(UpdatedOrderStatusSettings::class)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.ecwid.apiclient.v3.dto.profile.result

import com.ecwid.apiclient.v3.dto.common.ApiResultDTO

data class OrderStatusSettingsSearchResult(
val items: List<FetchedOrderStatusSettings> = listOf(),
) : ApiResultDTO
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.ecwid.apiclient.v3.dto.profile.result

import com.ecwid.apiclient.v3.dto.common.ApiResultDTO

data class OrderStatusSettingsUpdateResult(
val updateCount: Int = 0
) : ApiResultDTO
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,13 @@ internal class StoreProfileApiClientImpl(

override fun getPaymentOptions(request: PaymentOptionsRequest): PaymentOptionsResult =
apiClientHelper.makeObjectResultRequest(request)

override fun searchOrderStatusesSettings(request: OrderStatusSettingsSearchRequest): OrderStatusSettingsSearchResult =
apiClientHelper.makeObjectResultRequest(request)

override fun getOrderStatusSettingsDetails(request: OrderStatusSettingsDetailsRequest): FetchedOrderStatusSettings =
apiClientHelper.makeObjectResultRequest(request)

override fun updateOrderStatusSettings(request: OrderStatusSettingsUpdateRequest): OrderStatusSettingsUpdateResult =
apiClientHelper.makeObjectResultRequest(request)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.ecwid.apiclient.v3.dto.customergroup.result.FetchedCustomerGroup
import com.ecwid.apiclient.v3.dto.order.result.FetchedOrder
import com.ecwid.apiclient.v3.dto.product.result.FetchedProduct
import com.ecwid.apiclient.v3.dto.producttype.result.FetchedProductType
import com.ecwid.apiclient.v3.dto.profile.result.FetchedOrderStatusSettings
import com.ecwid.apiclient.v3.dto.profile.result.FetchedStoreProfile
import com.ecwid.apiclient.v3.dto.variation.result.FetchedVariation
import com.ecwid.apiclient.v3.rule.NonUpdatablePropertyRule.Ignored
Expand Down Expand Up @@ -258,7 +259,12 @@ val nonUpdatablePropertyRules: List<NonUpdatablePropertyRule<*, *>> = listOf(
ReadOnly(FetchedProduct.SubscriptionSettings::oneTimePurchaseMarkupPercent),
ReadOnly(FetchedProduct.SubscriptionSettings::oneTimePurchaseMarkupPercentFormatted),
ReadOnly(FetchedProduct.SubscriptionSettings::displayedOneTimePurchaseMarkupPercent),
ReadOnly(FetchedProduct.SubscriptionSettings::displayedOneTimePurchaseMarkupPercentFormatted)
ReadOnly(FetchedProduct.SubscriptionSettings::displayedOneTimePurchaseMarkupPercentFormatted),

ReadOnly(FetchedOrderStatusSettings::statusId),
ReadOnly(FetchedOrderStatusSettings::orderStatusType),
ReadOnly(FetchedOrderStatusSettings::defaultStatus),
ReadOnly(FetchedOrderStatusSettings::lastNameChangeDate),
)

sealed class NonUpdatablePropertyRule<T, R>(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ val nullablePropertyRules: List<NullablePropertyRule<*, *>> = listOf(
fetchedCouponNullablePropertyRules,
fetchedCustomerNullablePropertyRules,
fetchedExtrafieldConfigNullablePropertyRules,
fetchedOrderStatusSettingsNullablePropertyRules,
fetchedOrderNullablePropertyRules,
fetchedProductNullablePropertyRules,
fetchedProductTypeNullablePropertyRules,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.ecwid.apiclient.v3.rule.nullablepropertyrules

import com.ecwid.apiclient.v3.dto.profile.result.FetchedOrderStatusSettings
import com.ecwid.apiclient.v3.rule.NullablePropertyRule
import com.ecwid.apiclient.v3.rule.NullablePropertyRule.AllowNullable

val fetchedOrderStatusSettingsNullablePropertyRules: List<NullablePropertyRule<*, *>> = listOf(
AllowNullable(FetchedOrderStatusSettings::defaultStatus),
AllowNullable(FetchedOrderStatusSettings::name),
AllowNullable(FetchedOrderStatusSettings::nameTranslations),
AllowNullable(FetchedOrderStatusSettings::lastNameChangeDate),
)