Skip to content

Commit e2485f3

Browse files
fadi-georgejinliu9508
authored andcommitted
update deleteSubscription method to pass subscriptionType and subscriptionToken
1 parent 2afdc43 commit e2485f3

5 files changed

Lines changed: 39 additions & 9 deletions

File tree

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,13 @@ interface ISubscriptionBackendService {
4343
* Delete an existing subscription.
4444
*
4545
* @param appId The ID of the OneSignal application this subscription exists under.
46-
* @param subscriptionId The ID of the subscription to delete.
46+
* @param subscriptionType The type of the subscription to delete.
47+
* @param subscriptionToken The token/address of the subscription to delete.
4748
*/
4849
suspend fun deleteSubscription(
4950
appId: String,
50-
subscriptionId: String,
51+
subscriptionType: SubscriptionType,
52+
subscriptionToken: String,
5153
jwt: String? = null,
5254
)
5355

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,12 @@ internal class SubscriptionBackendService(
8888

8989
override suspend fun deleteSubscription(
9090
appId: String,
91-
subscriptionId: String,
91+
subscriptionType: SubscriptionType,
92+
subscriptionToken: String,
9293
jwt: String?,
9394
) {
94-
val response = _httpClient.delete("apps/$appId/subscriptions/$subscriptionId", OptionalHeaders(jwt = jwt))
95+
val type = subscriptionType.name.lowercase()
96+
val response = _httpClient.delete("apps/$appId/by/type/$type/token/$subscriptionToken/subscriptions", OptionalHeaders(jwt = jwt))
9597

9698
if (!response.isSuccess) {
9799
throw BackendException(response.statusCode, response.payload, response.retryAfterSeconds)

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/DeleteSubscriptionOperation.kt

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package com.onesignal.user.internal.operations
33
import com.onesignal.common.IDManager
44
import com.onesignal.core.internal.operations.GroupComparisonType
55
import com.onesignal.core.internal.operations.Operation
6+
import com.onesignal.user.internal.backend.SubscriptionObject
67
import com.onesignal.user.internal.operations.impl.executors.SubscriptionOperationExecutor
8+
import com.onesignal.user.internal.subscriptions.SubscriptionType
79

810
/**
911
* An [Operation] to delete a subscription from the OneSignal backend.
@@ -33,21 +35,45 @@ class DeleteSubscriptionOperation() : Operation(SubscriptionOperationExecutor.DE
3335
* and can be checked via [IDManager.isLocalId] to ensure correct processing.
3436
*/
3537
var subscriptionId: String
36-
get() = getStringProperty(::subscriptionId.name)
38+
get() = getStringProperty(::subscriptionId.name)
39+
private set(value) {
40+
setStringProperty(::subscriptionId.name, value)
41+
}
42+
43+
/**
44+
* The type of subscription.
45+
*/
46+
var type: SubscriptionType
47+
get() = getEnumProperty(::type.name)
3748
private set(value) {
38-
setStringProperty(::subscriptionId.name, value)
49+
setEnumProperty(::type.name, value)
3950
}
4051

52+
/**
53+
* The address-specific information for this subscription. Its contents depends on the type
54+
* of subscription:
55+
*
56+
* * [SubscriptionType.EMAIL]: An email address.
57+
* * [SubscriptionType.SMS]: A phone number in E.164 format.
58+
*/
59+
var address: String
60+
get() = getStringProperty(::address.name)
61+
private set(value) {
62+
setStringProperty(::address.name, value)
63+
}
64+
4165
override val createComparisonKey: String get() = "$appId.User.$onesignalId"
4266
override val modifyComparisonKey: String get() = "$appId.User.$onesignalId.Subscription.$subscriptionId"
4367
override val groupComparisonType: GroupComparisonType = GroupComparisonType.NONE
4468
override val canStartExecute: Boolean get() = !IDManager.isLocalId(onesignalId) && !IDManager.isLocalId(subscriptionId)
4569
override val applyToRecordId: String get() = subscriptionId
4670

47-
constructor(appId: String, onesignalId: String, subscriptionId: String) : this() {
71+
constructor(appId: String, onesignalId: String, subscriptionId: String, type: SubscriptionType, address: String) : this() {
4872
this.appId = appId
4973
this.onesignalId = onesignalId
5074
this.subscriptionId = subscriptionId
75+
this.type = type
76+
this.address = address
5177
}
5278

5379
override fun translateIds(map: Map<String, String>) {

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/impl/executors/SubscriptionOperationExecutor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ internal class SubscriptionOperationExecutor(
284284

285285
private suspend fun deleteSubscription(op: DeleteSubscriptionOperation): ExecutionResponse {
286286
try {
287-
_subscriptionBackend.deleteSubscription(op.appId, op.subscriptionId, _identityModelStore.model.jwtToken)
287+
_subscriptionBackend.deleteSubscription(op.appId, op.type, op.address, _identityModelStore.model.jwtToken)
288288

289289
// remove the subscription model as a HYDRATE in case for some reason it still exists.
290290
_subscriptionModelStore.remove(op.subscriptionId, ModelChangeTags.HYDRATE)

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/impl/listeners/SubscriptionModelStoreListener.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ internal class SubscriptionModelStoreListener(
3232
}
3333

3434
override fun getRemoveOperation(model: SubscriptionModel): Operation {
35-
return DeleteSubscriptionOperation(_configModelStore.model.appId, _identityModelStore.model.onesignalId, model.id)
35+
return DeleteSubscriptionOperation(_configModelStore.model.appId, _identityModelStore.model.onesignalId, model.id, model.type, model.address)
3636
}
3737

3838
override fun getUpdateOperation(

0 commit comments

Comments
 (0)