Skip to content

Commit a4844c8

Browse files
author
yolo
committed
Added extrafield config endpoints
1 parent 4009044 commit a4844c8

19 files changed

Lines changed: 350 additions & 1 deletion

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,11 @@ interface StoreProfileApiClient {
123123
fun removeInvoiceLogo(request: InvoiceLogoRemoveRequest): InvoiceLogoRemoveResult
124124
fun uploadEmailLogo(request: EmailLogoUploadRequest): EmailLogoUploadResult
125125
fun removeEmailLogo(request: EmailLogoRemoveRequest): EmailLogoRemoveResult
126+
fun searchExtrafieldConfigs(request: ExtrafieldConfigSearchRequest): ExtrafieldConfigSearchResult
127+
fun getExtrafieldConfigDetails(request: ExtrafieldConfigDetailsRequest): FetchedExtrafieldConfig
128+
fun createExtrafieldConfig(request: ExtrafieldConfigCreateRequest): FetchedExtrafieldConfig
129+
fun updateExtrafieldConfig(request: ExtrafieldConfigUpdateRequest): ExtrafieldConfigUpdateResult
130+
fun deleteExtrafieldConfig(request: ExtrafieldConfigDeleteRequest): ExtrafieldConfigDeleteResult
126131
}
127132

128133
// Products
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.ecwid.apiclient.v3.converter
2+
3+
import com.ecwid.apiclient.v3.dto.profile.request.UpdatedExtrafieldConfig
4+
import com.ecwid.apiclient.v3.dto.profile.result.FetchedExtrafieldConfig
5+
6+
fun FetchedExtrafieldConfig.toUpdated(): UpdatedExtrafieldConfig {
7+
return UpdatedExtrafieldConfig(
8+
key = key,
9+
title = title,
10+
type = type,
11+
textPlaceholder = textPlaceholder,
12+
tip = tip,
13+
options = options?.map(FetchedExtrafieldConfig.FetchedExtrafieldOptionConfig::toUpdated),
14+
value = value,
15+
available = available,
16+
required = required,
17+
checkoutDisplaySection = checkoutDisplaySection,
18+
orderDetailsDisplaySection = orderDetailsDisplaySection,
19+
showForCountry = showForCountry,
20+
showForPaymentMethodIds = showForPaymentMethodIds,
21+
showForShippingMethodIds = showForShippingMethodIds,
22+
showInInvoice = showInInvoice,
23+
showInNotifications = showInNotifications,
24+
orderBy = orderBy,
25+
surchargeType = surchargeType,
26+
surchargeTaxable = surchargeTaxable,
27+
showZeroSurchargeInTotal = showZeroSurchargeInTotal,
28+
surchargeShortName = surchargeShortName?.toUpdated(),
29+
titleTranslated = titleTranslated,
30+
textPlaceholderTranslated = textPlaceholderTranslated,
31+
tipTranslated = tipTranslated,
32+
valueTranslated = valueTranslated
33+
)
34+
}
35+
36+
fun FetchedExtrafieldConfig.FetchedExtrafieldOptionConfig.toUpdated(): UpdatedExtrafieldConfig.UpdatedExtrafieldOptionConfig {
37+
return UpdatedExtrafieldConfig.UpdatedExtrafieldOptionConfig(
38+
title = title,
39+
subtitle = subtitle,
40+
surcharge = surcharge,
41+
titleTranslated = titleTranslated,
42+
subtitleTranslated = subtitleTranslated
43+
)
44+
}
45+
46+
fun FetchedExtrafieldConfig.FetchedExtrafieldSurchargeConfig.toUpdated(): UpdatedExtrafieldConfig.UpdatedExtrafieldSurchargeConfig {
47+
return UpdatedExtrafieldConfig.UpdatedExtrafieldSurchargeConfig(
48+
name = name,
49+
showSurchargePercentValue = showSurchargePercentValue,
50+
nameTranslated = nameTranslated
51+
)
52+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.ecwid.apiclient.v3.dto.profile.enums
2+
3+
enum class CheckoutDisplaySection {
4+
email, shipping_address, pickup_details, shipping_methods, pickup_methods, payment_details, billing_address, order_comments;
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.ecwid.apiclient.v3.dto.profile.enums
2+
3+
enum class ExtrafieldType {
4+
text, select, datetime, toggle_button_group, textarea, checkbox, radio_buttons
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.ecwid.apiclient.v3.dto.profile.enums
2+
3+
enum class OrderDetailsDisplaySection {
4+
shipping_info, billing_info, customer_info, order_comments, shipping_address, shipping_methods, pickup_details, pickup_methods, payment_details
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.ecwid.apiclient.v3.dto.profile.enums
2+
3+
enum class SurchargeType {
4+
percent, absolute
5+
}
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.profile.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 ExtrafieldConfigCreateRequest(
8+
val newConfig: UpdatedExtrafieldConfig = UpdatedExtrafieldConfig()
9+
) : ApiRequest {
10+
override fun toRequestInfo() = RequestInfo.createPostRequest(
11+
pathSegments = listOf(
12+
"profile",
13+
"extrafields"
14+
),
15+
httpBody = HttpBody.JsonBody(
16+
obj = newConfig
17+
)
18+
)
19+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.ecwid.apiclient.v3.dto.profile.request
2+
3+
import com.ecwid.apiclient.v3.dto.ApiRequest
4+
import com.ecwid.apiclient.v3.impl.RequestInfo
5+
6+
data class ExtrafieldConfigDeleteRequest(
7+
val extrafieldKey: String = ""
8+
) : ApiRequest {
9+
override fun toRequestInfo() = RequestInfo.createDeleteRequest(
10+
pathSegments = listOf(
11+
"profile",
12+
"extrafields",
13+
extrafieldKey
14+
),
15+
params = mapOf()
16+
)
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.ecwid.apiclient.v3.dto.profile.request
2+
3+
import com.ecwid.apiclient.v3.dto.ApiRequest
4+
import com.ecwid.apiclient.v3.impl.RequestInfo
5+
6+
data class ExtrafieldConfigDetailsRequest(
7+
val extrafieldKey: String = ""
8+
) : ApiRequest {
9+
override fun toRequestInfo() = RequestInfo.createGetRequest(
10+
pathSegments = listOf(
11+
"profile",
12+
"extrafields",
13+
extrafieldKey
14+
),
15+
params = mapOf()
16+
)
17+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.ecwid.apiclient.v3.dto.profile.request
2+
3+
import com.ecwid.apiclient.v3.dto.ApiRequest
4+
import com.ecwid.apiclient.v3.impl.RequestInfo
5+
6+
class ExtrafieldConfigSearchRequest : ApiRequest {
7+
override fun toRequestInfo() = RequestInfo.createGetRequest(
8+
pathSegments = listOf(
9+
"profile",
10+
"extrafields"
11+
),
12+
params = mapOf()
13+
)
14+
}

0 commit comments

Comments
 (0)