Skip to content

Commit be10255

Browse files
author
Rodrigo Gomez Palacio
committed
Update Subscription & User backend services to return offsets
Motivation: need the offsets to be available to set in the ConsistencyManager
1 parent 1505d07 commit be10255

File tree

5 files changed

+27
-8
lines changed

5 files changed

+27
-8
lines changed

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/backend/ISubscriptionBackendService.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ interface ISubscriptionBackendService {
2121
aliasLabel: String,
2222
aliasValue: String,
2323
subscription: SubscriptionObject,
24-
): String?
24+
): Pair<String, String?>?
2525

2626
/**
2727
* Update an existing subscription with the properties provided.
@@ -34,7 +34,7 @@ interface ISubscriptionBackendService {
3434
appId: String,
3535
subscriptionId: String,
3636
subscription: SubscriptionObject,
37-
)
37+
): String?
3838

3939
/**
4040
* Delete an existing subscription.

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/backend/IUserBackendService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ interface IUserBackendService {
4747
properties: PropertiesObject,
4848
refreshDeviceMetadata: Boolean,
4949
propertyiesDelta: PropertiesDeltasObject,
50-
)
50+
): String?
5151

5252
/**
5353
* Retrieve a user from the backend.

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/backend/impl/SubscriptionBackendService.kt

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ internal class SubscriptionBackendService(
1616
aliasLabel: String,
1717
aliasValue: String,
1818
subscription: SubscriptionObject,
19-
): String? {
19+
): Pair<String, String?>? {
2020
val jsonSubscription = JSONConverter.convertToJSON(subscription)
2121
jsonSubscription.remove("id")
2222
val requestJSON = JSONObject().put("subscription", jsonSubscription)
@@ -33,14 +33,19 @@ internal class SubscriptionBackendService(
3333
return null
3434
}
3535

36-
return subscriptionJSON.getString("id")
36+
var rywToken: String? = null
37+
if (responseJSON.has("ryw_token")) {
38+
rywToken = responseJSON.getString("ryw_token")
39+
}
40+
41+
return Pair(subscriptionJSON.getString("id"), rywToken)
3742
}
3843

3944
override suspend fun updateSubscription(
4045
appId: String,
4146
subscriptionId: String,
4247
subscription: SubscriptionObject,
43-
) {
48+
): String? {
4449
val requestJSON =
4550
JSONObject()
4651
.put("subscription", JSONConverter.convertToJSON(subscription))
@@ -50,6 +55,13 @@ internal class SubscriptionBackendService(
5055
if (!response.isSuccess) {
5156
throw BackendException(response.statusCode, response.payload, response.retryAfterSeconds)
5257
}
58+
59+
val responseBody = JSONObject(response.payload)
60+
return if (responseBody.has("ryw_token")) {
61+
responseBody.getString("ryw_token")
62+
} else {
63+
null
64+
}
5365
}
5466

5567
override suspend fun deleteSubscription(

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/backend/impl/UserBackendService.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ internal class UserBackendService(
5252
properties: PropertiesObject,
5353
refreshDeviceMetadata: Boolean,
5454
propertyiesDelta: PropertiesDeltasObject,
55-
) {
55+
): String? {
5656
val jsonObject =
5757
JSONObject()
5858
.put("refresh_device_metadata", refreshDeviceMetadata)
@@ -70,6 +70,13 @@ internal class UserBackendService(
7070
if (!response.isSuccess) {
7171
throw BackendException(response.statusCode, response.payload, response.retryAfterSeconds)
7272
}
73+
74+
val responseBody = JSONObject(response.payload)
75+
return if (responseBody.has("ryw_token")) {
76+
responseBody.getString("ryw_token")
77+
} else {
78+
null
79+
}
7380
}
7481

7582
override suspend fun getUser(

OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/backend/SubscriptionBackendServiceTests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class SubscriptionBackendServiceTests : FunSpec({
4242
val response = subscriptionBackendService.createSubscription("appId", aliasLabel, aliasValue, subscription)
4343

4444
// Then
45-
response shouldBe "subscriptionId"
45+
response shouldBe Pair("subscriptionId", null)
4646
coVerify {
4747
spyHttpClient.post(
4848
"apps/appId/users/by/$aliasLabel/$aliasValue/subscriptions",

0 commit comments

Comments
 (0)