Skip to content

Commit 808ac16

Browse files
committed
Add support for report advices endpoints
1 parent 62c4321 commit 808ac16

5 files changed

Lines changed: 39 additions & 0 deletions

File tree

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

Lines changed: 3 additions & 0 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.*
@@ -277,6 +279,7 @@ interface ApplicationStorageApiClient {
277279
// Report API
278280
interface ReportsApiClient {
279281
fun fetchReport(request: ReportRequest): FetchedReportResponse
282+
fun getReportAdvice(request: ReportAdviceRequest): FetchedReportAdviceResponse
280283
}
281284

282285
// Recurring subscriptions
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.ecwid.apiclient.v3.dto.report.request
2+
3+
import com.ecwid.apiclient.v3.dto.ApiRequest
4+
import com.ecwid.apiclient.v3.dto.report.enums.ReportType
5+
import com.ecwid.apiclient.v3.impl.RequestInfo
6+
import com.ecwid.apiclient.v3.responsefields.ResponseFields
7+
8+
data class ReportAdviceRequest(
9+
val reportType: ReportType = ReportType.allTraffic,
10+
): ApiRequest {
11+
12+
override fun toRequestInfo() = RequestInfo.createGetRequest(
13+
pathSegments = listOf(
14+
"reports",
15+
reportType.toString(),
16+
"tip"
17+
),
18+
params = emptyMap(),
19+
responseFields = ResponseFields.All
20+
)
21+
22+
}
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.report.result
2+
3+
data class FetchedReportAdviceResponse(
4+
val tip: String? = null
5+
)

src/main/kotlin/com/ecwid/apiclient/v3/impl/ReportsApiClientImpl.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ package com.ecwid.apiclient.v3.impl
22

33
import com.ecwid.apiclient.v3.ApiClientHelper
44
import com.ecwid.apiclient.v3.ReportsApiClient
5+
import com.ecwid.apiclient.v3.dto.report.request.ReportAdviceRequest
56
import com.ecwid.apiclient.v3.dto.report.request.ReportRequest
7+
import com.ecwid.apiclient.v3.dto.report.result.FetchedReportAdviceResponse
68
import com.ecwid.apiclient.v3.dto.report.result.FetchedReportResponse
79

810
class ReportsApiClientImpl(
@@ -12,4 +14,7 @@ class ReportsApiClientImpl(
1214
override fun fetchReport(request: ReportRequest) =
1315
apiClientHelper.makeObjectResultRequest<FetchedReportResponse>(request)
1416

17+
override fun getReportAdvice(request: ReportAdviceRequest) =
18+
apiClientHelper.makeObjectResultRequest<FetchedReportAdviceResponse>(request)
19+
1520
}

src/test/kotlin/com/ecwid/apiclient/v3/rule/NullablePropertyRules.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ import com.ecwid.apiclient.v3.dto.product.result.ProductInventoryUpdateResult
1818
import com.ecwid.apiclient.v3.dto.productreview.request.UpdatedProductReviewStatus
1919
import com.ecwid.apiclient.v3.dto.profile.request.StoreProfileRequest
2020
import com.ecwid.apiclient.v3.dto.profile.result.FetchedLatestStats
21+
import com.ecwid.apiclient.v3.dto.report.request.ReportAdviceRequest
2122
import com.ecwid.apiclient.v3.dto.report.request.ReportRequest
23+
import com.ecwid.apiclient.v3.dto.report.result.FetchedReportAdviceResponse
2224
import com.ecwid.apiclient.v3.dto.report.result.FetchedReportResponse
2325
import com.ecwid.apiclient.v3.dto.storage.result.FetchedStorageData
2426
import com.ecwid.apiclient.v3.dto.variation.request.ProductVariationsRequest
@@ -95,6 +97,8 @@ val otherNullablePropertyRules: List<NullablePropertyRule<*, *>> = listOf(
9597
AllowNullable(FetchedReportResponse::comparePeriodDataset),
9698
AllowNullable(FetchedReportResponse::additionalData),
9799

100+
AllowNullable(FetchedReportAdviceResponse::tip),
101+
98102
AllowNullable(FetchedReportResponse.FetchedDataset::startTimeStamp),
99103
AllowNullable(FetchedReportResponse.FetchedDataset::endTimeStamp),
100104
AllowNullable(FetchedReportResponse.FetchedDataset::percentage),

0 commit comments

Comments
 (0)