File tree Expand file tree Collapse file tree
personalization-sdk/src/main/kotlin/com/personalization Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ import com.personalization.di.DaggerSdkComponent
2121import com.personalization.features.notification.data.mapper.toNotificationData
2222import com.personalization.features.notification.presentation.helpers.NotificationHelper
2323import com.personalization.handlers.notifications.NotificationHandler
24+ import com.personalization.sdk.domain.repositories.NPSRepository
2425import com.personalization.sdk.domain.usecases.network.AddTaskToQueueUseCase
2526import com.personalization.sdk.domain.usecases.network.InitNetworkUseCase
2627import com.personalization.sdk.domain.usecases.network.SendNetworkMethodUseCase
@@ -111,6 +112,9 @@ open class SDK {
111112 @Inject
112113 lateinit var notificationHelper: NotificationHelper
113114
115+ @Inject
116+ lateinit var NPSRepository : NPSRepository
117+
114118 /* *
115119 * @param shopId Shop key
116120 */
@@ -404,6 +408,22 @@ open class SDK {
404408 }
405409 }
406410
411+ fun review (
412+ rate : Int ,
413+ channel : String ,
414+ category : String ,
415+ orderId : String? = null,
416+ comment : String? = null,
417+ listener : OnApiCallbackListener ? = null
418+ ) = NPSRepository .review(
419+ rate = rate,
420+ channel = channel,
421+ category = category,
422+ orderId = orderId,
423+ comment = comment,
424+ listener = listener
425+ )
426+
407427 /* *
408428 * Request a dynamic block of recommendations
409429 *
Original file line number Diff line number Diff line change @@ -3,10 +3,12 @@ package com.personalization.sdk.data.di
33import com.personalization.sdk.data.repositories.advertising.AdvertisingRepositoryImpl
44import com.personalization.sdk.data.repositories.network.NetworkRepositoryImpl
55import com.personalization.sdk.data.repositories.notification.NotificationRepositoryImpl
6+ import com.personalization.sdk.data.repositories.nps.NPSRepositoryImpl
67import com.personalization.sdk.data.repositories.preferences.PreferencesRepositoryImpl
78import com.personalization.sdk.data.repositories.recommendation.RecommendationRepositoryImpl
89import com.personalization.sdk.data.repositories.userSettings.UserSettingsRepositoryImpl
910import com.personalization.sdk.domain.repositories.AdvertisingRepository
11+ import com.personalization.sdk.domain.repositories.NPSRepository
1012import com.personalization.sdk.domain.repositories.NetworkRepository
1113import com.personalization.sdk.domain.repositories.NotificationRepository
1214import com.personalization.sdk.domain.repositories.PreferencesRepository
@@ -39,4 +41,7 @@ abstract class RepositoriesModule {
3941 @Binds
4042 abstract fun bindAdvertisingRepository (impl : AdvertisingRepositoryImpl ): AdvertisingRepository
4143
44+ @Binds
45+ abstract fun bindNPSRepository (impl : NPSRepositoryImpl ): NPSRepository
46+
4247}
Original file line number Diff line number Diff line change 1+ package com.personalization.sdk.data.repositories.nps
2+
3+ import com.personalization.api.OnApiCallbackListener
4+ import com.personalization.sdk.domain.repositories.NPSRepository
5+ import com.personalization.sdk.domain.usecases.network.SendNetworkMethodUseCase
6+ import org.json.JSONObject
7+ import javax.inject.Inject
8+
9+ private const val METHOD_CREATE = " nps/create"
10+ private const val KEY_RATE = " rate"
11+ private const val KEY_CHANNEL = " channel"
12+ private const val KEY_CATEGORY = " category"
13+ private const val KEY_ORDER_ID = " order_id"
14+ private const val KEY_COMMENT = " comment"
15+
16+ class NPSRepositoryImpl @Inject constructor(
17+ private val sendNetworkMethodUseCase : SendNetworkMethodUseCase
18+ ) : NPSRepository {
19+
20+ override fun review (
21+ rate : Int ,
22+ channel : String ,
23+ category : String ,
24+ orderId : String? ,
25+ comment : String? ,
26+ listener : OnApiCallbackListener ?
27+ ) {
28+ val params = JSONObject ().apply {
29+ put(KEY_RATE , rate)
30+ put(KEY_CHANNEL , channel)
31+ put(KEY_CATEGORY , category)
32+ orderId?.let { put(KEY_ORDER_ID , it) }
33+ comment?.let { put(KEY_COMMENT , it) }
34+ }
35+
36+ sendNetworkMethodUseCase.postAsync(
37+ method = METHOD_CREATE ,
38+ params = params,
39+ listener = listener
40+ )
41+ }
42+ }
Original file line number Diff line number Diff line change 1+ package com.personalization.sdk.domain.repositories
2+
3+ import com.personalization.api.OnApiCallbackListener
4+
5+ interface NPSRepository {
6+ fun review (
7+ rate : Int ,
8+ channel : String ,
9+ category : String ,
10+ orderId : String? ,
11+ comment : String? ,
12+ listener : OnApiCallbackListener ? = null
13+ )
14+ }
You can’t perform that action at this time.
0 commit comments