Skip to content

Commit

Permalink
Merge pull request #528 from ably/ECO-4840/fix-transportParams-serial…
Browse files Browse the repository at this point in the history
…ization

fix(iOS): `transportParams` serialization
  • Loading branch information
ttypic authored Jun 21, 2024
2 parents 438cdbd + 0033a34 commit 3eb54d0
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
1 change: 1 addition & 0 deletions ios/Classes/codec/AblyFlutterReader.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ NS_ASSUME_NONNULL_BEGIN

+(ARTTokenDetails *)tokenDetailsFromDictionary: (NSDictionary *) dictionary;
+(ARTTokenParams *)tokenParamsFromDictionary: (NSDictionary *) dictionary;
+(NSDictionary<NSString *, ARTStringifiable *> *)transportParamsFromDictionary: (NSDictionary *) dictionary;

@end

Expand Down
17 changes: 16 additions & 1 deletion ios/Classes/codec/AblyFlutterReader.m
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,9 @@ use an explicitly received null from Dart (manifesting this side as a nil id)
READ_VALUE(clientOptions, idempotentRestPublishing, dictionary, TxClientOptions_idempotentRestPublishing);
READ_VALUE(clientOptions, fallbackHosts, dictionary, TxClientOptions_fallbackHosts);
READ_VALUE(clientOptions, fallbackHostsUseDefault, dictionary, TxClientOptions_fallbackHostsUseDefault);
READ_VALUE(clientOptions, transportParams, dictionary, TxClientOptions_transportParams);
ON_VALUE(^(const id value) {
clientOptions.transportParams = [AblyFlutterReader transportParamsFromDictionary: value];
}, dictionary, TxClientOptions_transportParams);
ON_VALUE(^(const id value) {
clientOptions.defaultTokenParams = [AblyFlutterReader tokenParamsFromDictionary: value];
}, dictionary, TxClientOptions_defaultTokenParams);
Expand Down Expand Up @@ -245,6 +247,19 @@ +(ARTTokenParams *)tokenParamsFromDictionary: (NSDictionary *) dictionary {
return tokenParams;
}


+(NSDictionary<NSString *, ARTStringifiable *> *)transportParamsFromDictionary: (NSDictionary *) dictionary {
NSMutableDictionary<NSString *, ARTStringifiable *> *result = [NSMutableDictionary dictionary];

for (NSString *key in dictionary) {
NSString *value = dictionary[key];
ARTStringifiable *stringifiable = [[ARTStringifiable alloc] initWithString:value];
result[key] = stringifiable;
}

return [result copy];
}

static AblyCodecDecoder readChannelMessageExtras = ^id<ARTJsonCompatible>(NSDictionary *const dictionary) {
return dictionary[TxMessageExtras_extras];
};
Expand Down

0 comments on commit 3eb54d0

Please sign in to comment.