Skip to content

Commit 2b6b7d4

Browse files
committed
don't send notification_types of -1
* The SDK defaults `notification_types` to be -1 instead of `nil` to simplify caching, as it seems Swift has issues on decoding Optional Ints. * This way, `notification_types` can be non-Optional. However, because -1 is effectively a `nil` value, don't send this to server.
1 parent b1ec345 commit 2b6b7d4

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

iOS_SDK/OneSignalSDK/OneSignalUser/Source/OSUserRequests.swift

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -256,8 +256,12 @@ class OSRequestCreateUser: OneSignalRequest, OSUserRequest {
256256
pushSubscriptionObject["type"] = pushSubscriptionModel.type.rawValue
257257
pushSubscriptionObject["token"] = pushSubscriptionModel.address
258258
pushSubscriptionObject["enabled"] = pushSubscriptionModel.enabled
259-
pushSubscriptionObject["notification_types"] = pushSubscriptionModel.notificationTypes
260-
259+
260+
// notificationTypes defaults to -1 instead of nil, don't send if it's -1
261+
if (pushSubscriptionModel.notificationTypes != -1) {
262+
pushSubscriptionObject["notification_types"] = pushSubscriptionModel.notificationTypes
263+
}
264+
261265
var params: [String: Any] = [:]
262266
params["identity"] = [:]
263267
if let externalId = identityModel.externalId {
@@ -863,8 +867,13 @@ class OSRequestUpdateSubscription: OneSignalRequest, OSUserRequest {
863867
var subscriptionParams = subscriptionObject
864868
subscriptionParams.removeValue(forKey: "address")
865869
subscriptionParams.removeValue(forKey: "notificationTypes")
866-
subscriptionParams["token"] = subscriptionModel.address ?? ""
867-
subscriptionParams["notification_types"] = subscriptionModel.notificationTypes
870+
subscriptionParams["token"] = subscriptionModel.address
871+
872+
// notificationTypes defaults to -1 instead of nil, don't send if it's -1
873+
if (subscriptionModel.notificationTypes != -1) {
874+
subscriptionParams["notification_types"] = subscriptionModel.notificationTypes
875+
}
876+
868877
subscriptionParams["enabled"] = subscriptionModel.enabled
869878
// TODO: The above is not quite right. If we hydrate, we will over-write any pending updates
870879
// May use subscriptionObject, but enabled and notification_types should be sent together...

0 commit comments

Comments
 (0)