Skip to content

Commit 7fe6a47

Browse files
committed
Send timezone_id on createuser
1 parent fea6fa1 commit 7fe6a47

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@ interface IUserBackendService {
1414
* the application.
1515
* @param subscriptions The subscriptions that should also be created and associated with the user. If subscriptions are already owned by a different user
1616
* they will be transferred to this user.
17+
* @param properties The properties for this user. For new users this should include the timezone_id property.
1718
*
1819
* @return The backend response
1920
*/
20-
suspend fun createUser(appId: String, identities: Map<String, String>, subscriptions: List<SubscriptionObject>): CreateUserResponse
21+
suspend fun createUser(appId: String, identities: Map<String, String>, subscriptions: List<SubscriptionObject>, properties: Map<String, String>): CreateUserResponse
2122
// TODO: Change to send only the push subscription, optimally
2223

2324
/**

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ internal class UserBackendService(
1414
private val _httpClient: IHttpClient,
1515
) : IUserBackendService {
1616

17-
override suspend fun createUser(appId: String, identities: Map<String, String>, subscriptions: List<SubscriptionObject>): CreateUserResponse {
17+
override suspend fun createUser(appId: String, identities: Map<String, String>, subscriptions: List<SubscriptionObject>, properties: Map<String, String>): CreateUserResponse {
1818
val requestJSON = JSONObject()
1919

2020
if (identities.isNotEmpty()) {
@@ -26,6 +26,10 @@ internal class UserBackendService(
2626
.put("subscriptions", JSONConverter.convertToJSON(subscriptions))
2727
}
2828

29+
if (properties.isNotEmpty()) {
30+
requestJSON.put("properties", JSONObject().putMap(properties))
31+
}
32+
2933
val response = _httpClient.post("apps/$appId/users", requestJSON)
3034

3135
if (!response.isSuccess) {

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

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
package com.onesignal.user.internal.operations.impl.executors
22

33
import android.os.Build
4-
import com.onesignal.common.AndroidUtils
5-
import com.onesignal.common.DeviceUtils
6-
import com.onesignal.common.NetworkUtils
7-
import com.onesignal.common.OneSignalUtils
8-
import com.onesignal.common.RootToolsInternalMethods
4+
import com.onesignal.common.*
95
import com.onesignal.common.exceptions.BackendException
106
import com.onesignal.common.modeling.ModelChangeTags
117
import com.onesignal.core.internal.application.IApplicationService
@@ -16,10 +12,8 @@ import com.onesignal.core.internal.operations.ExecutionResult
1612
import com.onesignal.core.internal.operations.IOperationExecutor
1713
import com.onesignal.core.internal.operations.Operation
1814
import com.onesignal.debug.internal.logging.Logging
19-
import com.onesignal.user.internal.backend.IUserBackendService
15+
import com.onesignal.user.internal.backend.*
2016
import com.onesignal.user.internal.backend.IdentityConstants
21-
import com.onesignal.user.internal.backend.SubscriptionObject
22-
import com.onesignal.user.internal.backend.SubscriptionObjectType
2317
import com.onesignal.user.internal.identity.IdentityModelStore
2418
import com.onesignal.user.internal.operations.CreateSubscriptionOperation
2519
import com.onesignal.user.internal.operations.DeleteSubscriptionOperation
@@ -99,6 +93,8 @@ internal class LoginUserOperationExecutor(
9993
private suspend fun createUser(createUserOperation: LoginUserOperation, operations: List<Operation>): ExecutionResponse {
10094
var identities = mapOf<String, String>()
10195
var subscriptions = mapOf<String, SubscriptionObject>()
96+
val properties = mutableMapOf<String, String>()
97+
properties["timezone_id"] = TimeUtils.getTimeZoneId()!!
10298

10399
if (createUserOperation.externalId != null) {
104100
val mutableIdentities = identities.toMutableMap()
@@ -118,7 +114,7 @@ internal class LoginUserOperationExecutor(
118114

119115
try {
120116
val subscriptionList = subscriptions.toList()
121-
val response = _userBackend.createUser(createUserOperation.appId, identities, subscriptionList.map { it.second })
117+
val response = _userBackend.createUser(createUserOperation.appId, identities, subscriptionList.map { it.second }, properties)
122118
val idTranslations = mutableMapOf<String, String>()
123119
// Add the "local-to-backend" ID translation to the IdentifierTranslator for any operations that were
124120
// *not* executed but still reference the locally-generated IDs.

0 commit comments

Comments
 (0)