8000 feat: include object identifiers in invalid object errors · optimizely/ruby-sdk@c035384 · GitHub
[go: up one dir, main page]

Skip to content

Commit c035384

Browse files
committed
feat: include object identifiers in invalid object errors
- Include object identifiers in errors when objects not found in datafile This makes the `id` or `key` of the object that was not found available to the user or the custom error handler. One example of why this is useful is that the `key` of an experiment could be used within a custom error handler to fetch the details of the experiment. This would indicate whether the experiment has been paused (in which case the error could be ignored) or archived (in which case the code referencing the experiment should be removed from the application).
1 parent 2911c5c commit c035384

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

lib/optimizely/config/datafile_project_config.rb

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ def get_experiment_from_key(experiment_key)
238238
return experiment if experiment
239239

240240
@logger.log Logger::ERROR, "Experiment key '#{experiment_key}' is not in datafile."
241-
@error_handler.handle_error InvalidExperimentError
241+
@error_handler.handle_error InvalidExperimentError.new("Experiment key '#{experiment_key}' is not in datafile.")
242242
nil
243243
end
244244

@@ -253,7 +253,7 @@ def get_experiment_from_id(experiment_id)
253253
return experiment if experiment
254254

255255
@logger.log Logger::ERROR, "Experiment id '#{experiment_id}' is not in datafile."
256-
@error_handler.handle_error InvalidExperimentError
256+
@error_handler.handle_error InvalidExperimentError.new("Experiment id '#{experiment_id}' is not in datafile.")
257257
nil
258258
end
259259

@@ -268,7 +268,7 @@ def get_experiment_key(experiment_id)
268268
return experiment['key'] unless experiment.nil?
269269

270270
@logger.log Logger::ERROR, "Experiment id '#{experiment_id}' is not in datafile."
271-
@error_handler.handle_error InvalidExperimentError
271+
@error_handler.handle_error InvalidExperimentError.new("Experiment id '#{experiment_id}' is not in datafile.")
272272
nil
273273
end
274274

@@ -282,8 +282,8 @@ def get_event_from_key(event_key)
282282
event = @event_key_map[event_key]
283283
return event if event
284284

285-
@logger.log Logger::ERROR, "Event '#{event_key}' is not in datafile."
286-
@error_handler.handle_error InvalidEventError
285+
@logger.log Logger::ERROR, "Event key '#{event_key}' is not in datafile."
286+
@error_handler.handle_error InvalidEventError.new("Event key '#{event_key}' is not in datafile.")
287287
nil
288288
end
289289

@@ -297,8 +297,8 @@ def get_audience_from_id(audience_id)
297297
audience = @audience_id_map[audience_id]
298298
return audience if audience
299299

300-
@logger.log Logger::ERROR, "Audience '#{audience_id}' is not in datafile."
301-
@error_handler.handle_error InvalidAudienceError
300+
@logger.log Logger::ERROR, "Audience id '#{audience_id}' is not in datafile."
301+
@error_handler.handle_error InvalidAudienceError.new("Audience id '#{audience_id}' is not in datafile.")
302302
nil
303303
end
304304

@@ -323,12 +323,12 @@ def get_variation_from_id(experiment_key, variation_id)
323323
return variation if variation
324324

325325
@logger.log Logger::ERROR, "Variation id '#{variation_id}' is not in datafile."
326-
@error_handler.handle_error InvalidVariationError
326+
@error_handler.handle_error InvalidVariationError.new("Variation id '#{variation_id}' is not in datafile.")
327327
return nil
328328
end
329329

330330
@logger.log Logger::ERROR, "Experiment key '#{experiment_key}' is not in datafile."
331-
@error_handler.handle_error InvalidExperimentError
331+
@error_handler.handle_error InvalidExperimentError.new("Experiment key '#{experiment_key}' is not in datafile.")
332332
nil
333333
end
334334

@@ -346,12 +346,12 @@ def get_variation_from_id_by_experiment_id(experiment_id, variation_id)
346346
return variation if variation
347347

348348
@logger.log Logger::ERROR, "Variation id '#{variation_id}' is not in datafile."
349-
@error_handler.handle_error InvalidVariationError
349+
@error_handler.handle_error InvalidVariationError.new("Variation id '#{variation_id}' is not in datafile.")
350350
return nil
351351
end
352352

353353
@logger.log Logger::ERROR, "Experiment id '#{experiment_id}' is not in datafile."
354-
@error_handler.handle_error InvalidExperimentError
354+
@error_handler.handle_error InvalidExperimentError.new("Experiment id '#{experiment_id}' is not in datafile.")
355355
nil
356356
end
357357

@@ -369,12 +369,12 @@ def get_variation_id_from_key_by_experiment_id(experiment_id, variation_key)
369369
return variation['id'] if variation
370370

371371
@logger.log Logger::ERROR, "Variation key '#{variation_key}' is not in datafile."
372-
@error_handler.handle_error InvalidVariationError
372+
@error_handler.handle_error In 6D40 validVariationError.new("Variation key '#{variation_key}' is not in datafile.")
373373
return nil
374374
end
375375

376376
@logger.log Logger::ERROR, "Experiment id '#{experiment_id}' is not in datafile."
377-
@error_handler.handle_error InvalidExperimentError
377+
@error_handler.handle_error InvalidExperimentError.new("Experiment id '#{experiment_id}' is not in datafile.")
378378
nil
379379
end
380380

@@ -392,12 +392,12 @@ def get_variation_id_from_key(experiment_key, variation_key)
392392
return variation['id'] if variation
393393

394394
@logger.log Logger::ERROR, "Variation key '#{variation_key}' is not in datafile."
395-
@error_handler.handle_error InvalidVariationError
395+
@error_handler.handle_error InvalidVariationError.new("Variation key '#{variation_key}' is not in datafile.")
396396
return nil
397397
end
398398

399399
@logger.log Logger::ERROR, "Experiment key '#{experiment_key}' is not in datafile."
400-
@error_handler.handle_error InvalidExperimentError
400+
@error_handler.handle_error InvalidExperimentError.new("Experiment key '#{experiment_key}' is not in datafile.")
401401
nil
402402
end
403403

@@ -411,8 +411,8 @@ def get_whitelisted_variations(experiment_id)
411411
experiment = @experiment_id_map[experiment_id]
412412
return experiment['forcedVariations'] if experiment
413413

414-
@logger.log Logger::ERROR, "Experiment ID '#{experiment_id}' is not in datafile."
415-
@error_handler.handle_error InvalidExperimentError
414+
@logger.log Logger::ERROR, "Experiment id '#{experiment_id}' is not in datafile."
415+
@error_handler.handle_error InvalidExperimentError.new("Experiment id '#{experiment_id}' is not in datafile.")
416416
end
417417

418418
def get_attribute_id(attribute_key)
@@ -435,7 +435,7 @@ def get_attribute_id(attribute_key)
435435
return attribute_key if has_reserved_prefix
436436

437437
@logger.log Logger::ERROR, "Attribute key '#{attribute_key}' is not in datafile."
438-
@error_handler.handle_error InvalidAttributeError
438+
@error_handler.handle_error InvalidAttributeError.new("Attribute key '#{attribute_key}' is not in datafile.")
439439
nil
440440
end
441441

@@ -454,7 +454,7 @@ def variation_id_exists?(experiment_id, variation_id)
454454
return true if variation
455455

456456
@logger.log Logger::ERROR, "Variation ID '#{variation_id}' is not in datafile."
457-
@error_handler.handle_error InvalidVariationError
457+
@error_handler.handle_error InvalidVariationError.new("Variation ID '#{variation_id}' is not in datafile.")
458458
end
459459

460460
false

spec/config/datafile_project_config_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -808,14 +808,14 @@
808808
describe 'get_event_from_key' do
809809
it 'should log a message when provided event key is invalid' do
810810
config.get_event_from_key('invalid_key')
811-
expect(spy_logger).to have_received(:log).with(Logger::ERROR, "Event 'invalid_key' is not in datafile.")
811+
expect(spy_logger).to have_received(:log).with(Logger::ERROR, "Event key 'invalid_key' is not in datafile.")
812812
end
813813
end
814814

815815
describe 'get_audience_from_id' do
816816
it 'should log a message when provided audience ID is invalid' do
817817
config.get_audience_from_id('invalid_id')
818-
expect(spy_logger).to have_received(:log).with(Logger::ERROR, "Audience 'invalid_id' is not in datafile.")
818+
expect(spy_logger).to have_received(:log).with(Logger::ERROR, "Audience id 'invalid_id' is not in datafile.")
819819
end
820820
end
821821

@@ -919,7 +919,7 @@
919919
it 'should log a message when there is no experiment key map for the experiment' do
920920
config.get_whitelisted_variations('invalid_key')
921921
expect(spy_logger).to have_received(:log).with(Logger::ERROR,
922-
"Experiment ID 'invalid_key' is not in datafile.")
922+
"Experiment id 'invalid_key' is not in datafile.")
923923
end
924924
end
925925

0 commit comments

Comments
 (0)
0