Skip to content

Commit

Permalink
recover invalid UpdateSubscriptionOperation
Browse files Browse the repository at this point in the history
  • Loading branch information
nan-li committed Jul 27, 2024
1 parent 429c1c9 commit f18de03
Showing 1 changed file with 20 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,9 @@ internal class OperationModelStore(prefs: IPreferencesService) : ModelStore<Oper
IdentityOperationExecutor.SET_ALIAS -> SetAliasOperation()
IdentityOperationExecutor.DELETE_ALIAS -> DeleteAliasOperation()
SubscriptionOperationExecutor.CREATE_SUBSCRIPTION -> CreateSubscriptionOperation()
SubscriptionOperationExecutor.UPDATE_SUBSCRIPTION -> UpdateSubscriptionOperation()
SubscriptionOperationExecutor.UPDATE_SUBSCRIPTION -> {
return processUpdateSubscriptionOperation(jsonObject)
}
SubscriptionOperationExecutor.DELETE_SUBSCRIPTION -> DeleteSubscriptionOperation()
SubscriptionOperationExecutor.TRANSFER_SUBSCRIPTION -> TransferSubscriptionOperation()
LoginUserOperationExecutor.LOGIN_USER -> LoginUserOperation()
Expand All @@ -69,4 +71,21 @@ internal class OperationModelStore(prefs: IPreferencesService) : ModelStore<Oper

return operation
}

/**
* Initialize a [UpdateSubscriptionOperation]. This is a special case to recover a
* cached operation that are missing the onesignalId, by discarding it.
*
* @param jsonObject The [JSONObject] to initialize this model from.
*/
private fun processUpdateSubscriptionOperation(jsonObject: JSONObject): Operation? {
return if (jsonObject.has("onesignalId")) {
val operation = UpdateSubscriptionOperation()
operation.initializeFromJson(jsonObject)
operation
} else {
Logging.error("${SubscriptionOperationExecutor.UPDATE_SUBSCRIPTION} jsonObject must have 'onesignalId' attribute")
null
}
}
}

0 comments on commit f18de03

Please sign in to comment.