-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: do not modify custom attributes casing #234
Conversation
Pull request title looks good 👍! If this pull request gets merged, it will cause a new release of the software. Example: If this project's latest release version is All merged pull requests will eventually get deployed. But some types of pull requests will trigger a deployment (such as features and bug fixes) while some pull requests will wait to get deployed until a later time. To merge this pull request, add the label This project uses a special format for pull requests titles. Expand this section to learn more (expand by clicking the ᐅ symbol on the left side of this sentence)...This project uses a special format for pull requests titles. Don't worry, it's easy! This pull request title should be in this format:
If your pull request introduces breaking changes to the code, use this format:
where
Examples:
Need more examples? Want to learn more about this format? Check out the official docs. Note: If your pull request does multiple things such as adding a feature and makes changes to the CI server and fixes some bugs then you might want to consider splitting this pull request up into multiple smaller pull requests. |
Codecov Report
@@ Coverage Diff @@
## develop #234 +/- ##
===========================================
+ Coverage 51.03% 52.30% +1.26%
===========================================
Files 100 100
Lines 1107 1107
===========================================
+ Hits 565 579 +14
+ Misses 542 528 -14
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
Since we changed the JsonAdapter, this probably breaks backwards compitability with queue storage. If a customer has items in the Queue using SDK v1 and then runs v2, I imagine the app would crash because the JsonAdapter no longer can read the old v1 queue data. The fix is to:
|
Besides, this use case before merging I need to:
|
"last_name": "Green", | ||
"HOBBY": "football", | ||
"nested": [ | ||
"is adult": true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the space in is adult
intentional ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. I wanted to test this scenario in case a customer wanted to send us an attribute with a space in it.
@@ -0,0 +1,18 @@ | |||
import Foundation | |||
|
|||
public enum CustomAttributesSampleData { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CustomAttributesSampleData - is this for device attributes / profile attributes or just a set of data for any scenario requiring user data ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Set of samples for all places we accept custom attributes - identify, track, profile, device.
I'll add a comment to the file saying that. It would be helpful.
// 3. Open Xcode > Window > Devices and Simulators > Select your iPhone that's plugged in > Select app in Installed App | ||
// section > Select "..." icon > Download container. | ||
// 4. You can now browse the files saved to the app. Copy and paste files from there that you care about. | ||
public class SampleDataFilesUtil { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not clear with the use of this class and it's functions. Where are the files getting saved being used ?
private var responseQueue: [HttpResponse] = [] | ||
private var responseToAlwaysReturn: HttpResponse? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about renaming this variable responseToAlwaysReturn
, always return (what) ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have added few comments, rest all changes look good to me !
## [2.0.0-beta.1](1.2.7...2.0.0-beta.1) (2022-12-09) ### ⚠ BREAKING CHANGES * make delivered push metric more reliable * remove FCM dependency from cocoapods (#210) * singleton API only way to use SDK now (#209) ### Bug Fixes * add sdkwrapperconfig to rich push SDK config ([#226](#226)) ([e43b4cf](e43b4cf)) * do not modify custom attributes casing ([#234](#234)) ([8160fdf](8160fdf)) * fix compile time errors notification service extensions ([#214](#214)) ([bd5911b](bd5911b)) * make delivered push metric more reliable ([0478e52](0478e52)) * sdk not able to compile in ios app ([#225](#225)) ([e4d1b3f](e4d1b3f)) ### Code Refactoring * remove FCM dependency from cocoapods ([#210](#210)) ([3547076](3547076)) * singleton API only way to use SDK now ([#209](#209)) ([72b7477](72b7477))
## [2.0.0](1.2.7...2.0.0) (2022-12-13) ### ⚠ BREAKING CHANGES * make delivered push metric more reliable * remove FCM dependency from cocoapods (#210) * singleton API only way to use SDK now (#209) ### Bug Fixes * add sdkwrapperconfig to rich push SDK config ([#226](#226)) ([e43b4cf](e43b4cf)) * do not modify custom attributes casing ([#234](#234)) ([8160fdf](8160fdf)) * fix compile time errors notification service extensions ([#214](#214)) ([bd5911b](bd5911b)) * make delivered push metric more reliable ([0478e52](0478e52)) * sdk not able to compile in ios app ([#225](#225)) ([e4d1b3f](e4d1b3f)) ### Code Refactoring * remove FCM dependency from cocoapods ([#210](#210)) ([3547076](3547076)) * singleton API only way to use SDK now ([#209](#209)) ([72b7477](72b7477))
## [2.0.0](1.2.4...2.0.0) (2023-02-23) ### ⚠ BREAKING CHANGES * make delivered push metric more reliable * remove FCM dependency from cocoapods (customerio#210) * singleton API only way to use SDK now (customerio#209) ### Features * add in-app event listener ([customerio#211](https://github.com/nagyist/customerio-ios/issues/211)) ([737d43b](737d43b)) * in-app feature no longer requires orgId ([customerio#252](https://github.com/nagyist/customerio-ios/issues/252)) ([acd12da](acd12da)) ### Bug Fixes * access modifier for metric ([customerio#263](https://github.com/nagyist/customerio-ios/issues/263)) ([e641982](e641982)) * add sdkwrapperconfig to rich push SDK config ([customerio#226](https://github.com/nagyist/customerio-ios/issues/226)) ([e43b4cf](e43b4cf)) * added reusable code for wrapper SDKs ([customerio#247](https://github.com/nagyist/customerio-ios/issues/247)) ([36adf15](36adf15)) * async running BQ operations in loop ([customerio#250](https://github.com/nagyist/customerio-ios/issues/250)) ([f0a3d9c](f0a3d9c)) * device attributes shows sdk version instead of wrapper version ([e2462b9](e2462b9)) * do not modify custom attributes casing ([customerio#234](https://github.com/nagyist/customerio-ios/issues/234)) ([8160fdf](8160fdf)) * download rich push images from CDN ([customerio#237](https://github.com/nagyist/customerio-ios/issues/237)) ([b30cf02](b30cf02)) * fix compile time errors notification service extensions ([customerio#214](https://github.com/nagyist/customerio-ios/issues/214)) ([bd5911b](bd5911b)) * fix compile time errors notification service extensions ([customerio#216](https://github.com/nagyist/customerio-ios/issues/216)) ([6e8484a](6e8484a)) * in-app missing event ([customerio#259](https://github.com/nagyist/customerio-ios/issues/259)) ([43b3e97](43b3e97)) * make delivered push metric more reliable ([0478e52](0478e52)) * modify in-app event listener action parameters to new name ([customerio#255](https://github.com/nagyist/customerio-ios/issues/255)) ([b46528a](b46528a)) * prevent stackoverflow while executing background queue with lots of tasks in it ([customerio#245](https://github.com/nagyist/customerio-ios/issues/245)) ([ef0c428](ef0c428)) * push images and processing simple push ([customerio#230](https://github.com/nagyist/customerio-ios/issues/230)) ([f109f04](f109f04)) * region visibility modifier to be used by wrappers ([customerio#260](https://github.com/nagyist/customerio-ios/issues/260)) ([f0edfbc](f0edfbc)) * revert 2.0.2 as it was found unstable ([customerio#249](https://github.com/nagyist/customerio-ios/issues/249)) ([51b5831](51b5831)) * sdk not able to compile in ios app ([customerio#225](https://github.com/nagyist/customerio-ios/issues/225)) ([e4d1b3f](e4d1b3f)) * universal links deep links open host app ([customerio#268](https://github.com/nagyist/customerio-ios/issues/268)) ([29c95b5](29c95b5)) * universal links when touch a push notification open host app ([customerio#265](https://github.com/nagyist/customerio-ios/issues/265)) ([7dcaf73](7dcaf73)) * update the gist version in podspec ([customerio#256](https://github.com/nagyist/customerio-ios/issues/256)) ([5451488](5451488)) ### Code Refactoring * remove FCM dependency from cocoapods ([customerio#210](https://github.com/nagyist/customerio-ios/issues/210)) ([3547076](3547076)) * singleton API only way to use SDK now ([customerio#209](https://github.com/nagyist/customerio-ios/issues/209)) ([72b7477](72b7477))
Closes: https://github.com/customerio/issues/issues/8724
Closes: #223
In this PR:
JsonAdapter
to no longer modify JSON keys casing at all. It is convenient for us to do this, but it could create this bug again in the future. Instead, Swift objects that want to use snake_case JSON key must implementCodingKeys
in thestruct
(you will see examples in this PR).QA tests:
Test backwards compatibility with Queue storage since Queue saves data into JSON.
1.21.2
of RH. Do lots of random activities in the app so the Queue adds different types of events to the queue.Complete each step to get your pull request merged in. Learn more about the workflow this project uses.