Skip to content

Commit 40c8a3a

Browse files
mnoman09NomanShoaibmsohailhussain
authored
Added toString methods in optimizelyconfig response object (#36)
* added tostring method in optimizelyconfig response object * changed encodeVariablesMap to encodedVariablesMap Co-authored-by: mnoman09 <m.nomanshoaib09@gmail.com> Co-authored-by: Mirza Sohail Hussain <mirza.sohailhussain@gmail.com>
1 parent d7886b7 commit 40c8a3a

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed

lib/src/data_objects/decide_response.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
/// limitations under the License. *
1515
///**************************************************************************/
1616
17+
import 'dart:convert';
18+
1719
import 'package:optimizely_flutter_sdk/src/data_objects/base_response.dart';
1820
import 'package:optimizely_flutter_sdk/src/utils/constants.dart';
1921

@@ -58,6 +60,14 @@ class Decision {
5860
reasons = List<String>.from(json[Constants.reasons]);
5961
}
6062
}
63+
64+
@override
65+
String toString() {
66+
var encodedVariables = json.encode(variables);
67+
var encodedUserContext = json.encode(userContext);
68+
var reasonsString = reasons.join(",");
69+
return 'Decision {variationKey="$variationKey", enabled="$enabled", variables="$encodedVariables", ruleKey="$ruleKey", flagKey="$flagKey", userContext="$encodedUserContext", reasons="$reasonsString"}';
70+
}
6171
}
6272

6373
class BaseDecideResponse extends BaseResponse {

lib/src/data_objects/optimizely_config.dart

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
/// limitations under the License. *
1515
///**************************************************************************/
1616
17+
import 'dart:convert';
18+
1719
import 'package:optimizely_flutter_sdk/src/utils/constants.dart';
1820

1921
class OptimizelyConfig {
@@ -117,6 +119,23 @@ class OptimizelyConfig {
117119
'datafile': datafile
118120
};
119121
}
122+
123+
@override
124+
String toString() {
125+
var encodedExperimentsMap = json.encode(experimentsMap);
126+
var encodedFeaturesMap = json.encode(featuresMap);
127+
var encodedAttributes = json.encode(attributes);
128+
var encodedEvents = json.encode(events);
129+
var encodedAudiences = json.encode(audiences);
130+
return 'OptimizelyConfig {revision="$revision",'
131+
' sdkKey="$sdkKey",'
132+
' environmentKey="$environmentKey",'
133+
' events="$encodedEvents",'
134+
' audiences="$encodedAudiences",'
135+
' attributes="$encodedAttributes",'
136+
' featuresMap="$encodedFeaturesMap",'
137+
' experimentsMap="$encodedExperimentsMap"}';
138+
}
120139
}
121140

122141
// Represents the Audiences list in {@link OptimizelyConfigResponse}
@@ -135,6 +154,11 @@ class OptimizelyAudience {
135154

136155
Map<String, dynamic> toJson() =>
137156
{'id': id, 'name': name, 'conditions': conditions};
157+
158+
@override
159+
String toString() {
160+
return 'OptimizelyAudience {id="$id", name="$name", conditions="$conditions"}';
161+
}
138162
}
139163

140164
// Represents the Events's map in {@link OptimizelyConfigResponse}
@@ -153,6 +177,12 @@ class OptimizelyEvent {
153177

154178
Map<String, dynamic> toJson() =>
155179
{'id': id, 'key': key, 'experimentIds': experimentIds};
180+
181+
@override
182+
String toString() {
183+
var encodedExperimentIds = json.encode(experimentIds);
184+
return 'OptimizelyEvent {id="$id", key="$key", experimentIds="$encodedExperimentIds"}';
185+
}
156186
}
157187

158188
// Represents the Attribute's map in {@link OptimizelyConfigResponse}
@@ -167,6 +197,11 @@ class OptimizelyAttribute {
167197
id: parsedJson[Constants.id], key: parsedJson[Constants.key]);
168198
}
169199
Map<String, dynamic> toJson() => {'id': id, 'key': key};
200+
201+
@override
202+
String toString() {
203+
return 'OptimizelyAttribute {id="$id", key="$key"}';
204+
}
170205
}
171206

172207
// Represents the feature's map in {@link OptimizelyConfigResponse}
@@ -220,6 +255,13 @@ class OptimizelyFeature {
220255
'experimentRules': dynamicExperimentRules
221256
};
222257
}
258+
259+
@override
260+
String toString() {
261+
var encodedDeliveryRules = json.encode(deliveryRules);
262+
var encodedExperimentRules = json.encode(experimentRules);
263+
return 'OptimizelyFeature {id="$id", key="$key", deliveryRules="$encodedDeliveryRules", experimentRules="$encodedExperimentRules"}';
264+
}
223265
}
224266

225267
// Represents the experiment's map in {@link OptimizelyConfigResponse}
@@ -262,6 +304,12 @@ class OptimizelyExperiment {
262304
'variationsMap': dynamicVariationsMap
263305
};
264306
}
307+
308+
@override
309+
String toString() {
310+
var encodedVariationsMap = json.encode(variationsMap);
311+
return 'OptimizelyExperiment {id="$id", key="$key", audiences="$audiences", variationsMap="$encodedVariationsMap"}';
312+
}
265313
}
266314

267315
// Details of variation in {@link OptimizelyExperiment}
@@ -308,6 +356,12 @@ class OptimizelyVariation {
308356
'variablesMap': dynamicVariablesMap
309357
};
310358
}
359+
360+
@override
361+
String toString() {
362+
var encodedVariablesMap = json.encode(variablesMap);
363+
return 'OptimizelyVariation {id="$id", key="$key", featureEnabled="$featureEnabled", variablesMap="$encodedVariablesMap"}';
364+
}
311365
}
312366

313367
// Details of feature variable in {@link OptimizelyVariation}
@@ -329,4 +383,9 @@ class OptimizelyVariable {
329383

330384
Map<String, dynamic> toJson() =>
331385
{'id': id, 'key': key, 'type': type, 'value': value};
386+
387+
@override
388+
String toString() {
389+
return 'OptimizelyVariable {id="$id", key="$key", type="$type", value="$value"}';
390+
}
332391
}

0 commit comments

Comments
 (0)