From c0baf2639fc90f3b939de1c3672ea8fa0292adf1 Mon Sep 17 00:00:00 2001 From: hasibprince Date: Tue, 20 Jun 2023 00:09:28 +0600 Subject: [PATCH 1/2] added api for category apps list --- .../java/com/aurora/gplayapi/GooglePlayApi.kt | 1 + .../gplayapi/helpers/CategoryAppsHelper.kt | 32 +++++++++++++++++++ .../java/com/aurora/gplayapi/helpers/Chart.kt | 8 +++++ .../aurora/gplayapi/helpers/ClusterHelper.kt | 2 +- .../gplayapi/helpers/TopChartsHelper.kt | 7 ---- 5 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/aurora/gplayapi/helpers/CategoryAppsHelper.kt create mode 100644 src/main/java/com/aurora/gplayapi/helpers/Chart.kt diff --git a/src/main/java/com/aurora/gplayapi/GooglePlayApi.kt b/src/main/java/com/aurora/gplayapi/GooglePlayApi.kt index 0c8c26c..577ff17 100644 --- a/src/main/java/com/aurora/gplayapi/GooglePlayApi.kt +++ b/src/main/java/com/aurora/gplayapi/GooglePlayApi.kt @@ -194,6 +194,7 @@ class GooglePlayApi(private val authData: AuthData) { const val PURCHASE_URL = "$URL_FDFE/purchase" const val PURCHASE_HISTORY_URL = "$URL_FDFE/purchaseHistory" const val TOP_CHART_URL = "$URL_FDFE/listTopChartItems" + const val LIST = "$URL_FDFE/list" const val URL_AUTH = "$URL_BASE/auth" const val URL_BULK_DETAILS = "$URL_FDFE/bulkDetails" const val URL_BULK_PREFETCH = "$URL_FDFE/bulkPrefetch" diff --git a/src/main/java/com/aurora/gplayapi/helpers/CategoryAppsHelper.kt b/src/main/java/com/aurora/gplayapi/helpers/CategoryAppsHelper.kt new file mode 100644 index 0000000..4b4a64d --- /dev/null +++ b/src/main/java/com/aurora/gplayapi/helpers/CategoryAppsHelper.kt @@ -0,0 +1,32 @@ +package com.aurora.gplayapi.helpers + +import com.aurora.gplayapi.GooglePlayApi +import com.aurora.gplayapi.data.models.AuthData +import com.aurora.gplayapi.data.models.StreamCluster +import com.aurora.gplayapi.data.providers.HeaderProvider +import com.aurora.gplayapi.network.IHttpClient +import java.util.HashMap + +class CategoryAppsHelper(authData: AuthData) : ClusterHelper(authData) { + + override fun using(httpClient: IHttpClient) = apply { + this.httpClient = httpClient + } + + fun getCategoryAppsList(category: String): StreamCluster { + val headers: MutableMap = HeaderProvider.getDefaultHeaders(authData) + val params: MutableMap = HashMap() + params["c"] = "3" + params["cat"] = category + params["ctr"] = Chart.TOP_SELLING_FREE.value + + val playResponse = httpClient.get(GooglePlayApi.LIST, headers, params) + + return if (playResponse.isSuccessful) { + val listResponse = getListResponseFromBytes(playResponse.responseBytes) + val streamCluster = getStreamCluster(listResponse) + streamCluster + } else + StreamCluster() + } +} \ No newline at end of file diff --git a/src/main/java/com/aurora/gplayapi/helpers/Chart.kt b/src/main/java/com/aurora/gplayapi/helpers/Chart.kt new file mode 100644 index 0000000..d90ed90 --- /dev/null +++ b/src/main/java/com/aurora/gplayapi/helpers/Chart.kt @@ -0,0 +1,8 @@ +package com.aurora.gplayapi.helpers + +enum class Chart(var value: String) { + TOP_SELLING_FREE("apps_topselling_free"), + TOP_SELLING_PAID("apps_topselling_paid"), + TOP_GROSSING("apps_topgrossing"), + MOVERS_SHAKERS("apps_movers_shakers"); +} \ No newline at end of file diff --git a/src/main/java/com/aurora/gplayapi/helpers/ClusterHelper.kt b/src/main/java/com/aurora/gplayapi/helpers/ClusterHelper.kt index 2b1f506..10929e6 100644 --- a/src/main/java/com/aurora/gplayapi/helpers/ClusterHelper.kt +++ b/src/main/java/com/aurora/gplayapi/helpers/ClusterHelper.kt @@ -22,7 +22,7 @@ import com.aurora.gplayapi.data.providers.HeaderProvider.getDefaultHeaders import com.aurora.gplayapi.network.IHttpClient import java.util.* -class ClusterHelper(authData: AuthData) : BaseHelper(authData) { +open class ClusterHelper(authData: AuthData) : BaseHelper(authData) { override fun using(httpClient: IHttpClient) = apply { this.httpClient = httpClient diff --git a/src/main/java/com/aurora/gplayapi/helpers/TopChartsHelper.kt b/src/main/java/com/aurora/gplayapi/helpers/TopChartsHelper.kt index 083d054..d6d30c9 100644 --- a/src/main/java/com/aurora/gplayapi/helpers/TopChartsHelper.kt +++ b/src/main/java/com/aurora/gplayapi/helpers/TopChartsHelper.kt @@ -44,13 +44,6 @@ class TopChartsHelper(authData: AuthData) : BaseHelper(authData) { StreamCluster() } - enum class Chart(var value: String) { - TOP_SELLING_FREE("apps_topselling_free"), - TOP_SELLING_PAID("apps_topselling_paid"), - TOP_GROSSING("apps_topgrossing"), - MOVERS_SHAKERS("apps_movers_shakers"); - } - enum class Type(var value: String) { GAME("GAME"), APPLICATION("APPLICATION"); -- GitLab From e1d5870d2b207bae6eb44d9f6df974ccba4a995b Mon Sep 17 00:00:00 2001 From: hasibprince Date: Tue, 20 Jun 2023 18:44:30 +0600 Subject: [PATCH 2/2] refactor: CategoryAppsHelper --- .../aurora/gplayapi/helpers/CategoryAppsHelper.kt | 12 ++++++++++-- .../com/aurora/gplayapi/helpers/ClusterHelper.kt | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/aurora/gplayapi/helpers/CategoryAppsHelper.kt b/src/main/java/com/aurora/gplayapi/helpers/CategoryAppsHelper.kt index 4b4a64d..d771e5a 100644 --- a/src/main/java/com/aurora/gplayapi/helpers/CategoryAppsHelper.kt +++ b/src/main/java/com/aurora/gplayapi/helpers/CategoryAppsHelper.kt @@ -7,10 +7,13 @@ import com.aurora.gplayapi.data.providers.HeaderProvider import com.aurora.gplayapi.network.IHttpClient import java.util.HashMap -class CategoryAppsHelper(authData: AuthData) : ClusterHelper(authData) { +class CategoryAppsHelper(authData: AuthData) : BaseHelper(authData) { + + private val streamCluster = ClusterHelper(authData) override fun using(httpClient: IHttpClient) = apply { this.httpClient = httpClient + streamCluster.using(httpClient) } fun getCategoryAppsList(category: String): StreamCluster { @@ -26,7 +29,12 @@ class CategoryAppsHelper(authData: AuthData) : ClusterHelper(authData) { val listResponse = getListResponseFromBytes(playResponse.responseBytes) val streamCluster = getStreamCluster(listResponse) streamCluster - } else + } else { StreamCluster() + } + } + + fun next(nextPageUrl: String): StreamCluster { + return streamCluster.next(nextPageUrl) } } \ No newline at end of file diff --git a/src/main/java/com/aurora/gplayapi/helpers/ClusterHelper.kt b/src/main/java/com/aurora/gplayapi/helpers/ClusterHelper.kt index 10929e6..2b1f506 100644 --- a/src/main/java/com/aurora/gplayapi/helpers/ClusterHelper.kt +++ b/src/main/java/com/aurora/gplayapi/helpers/ClusterHelper.kt @@ -22,7 +22,7 @@ import com.aurora.gplayapi.data.providers.HeaderProvider.getDefaultHeaders import com.aurora.gplayapi.network.IHttpClient import java.util.* -open class ClusterHelper(authData: AuthData) : BaseHelper(authData) { +class ClusterHelper(authData: AuthData) : BaseHelper(authData) { override fun using(httpClient: IHttpClient) = apply { this.httpClient = httpClient -- GitLab