circleci / rollcage

A Clojure client for Rollbar
Eclipse Public License 1.0
50 stars 28 forks source link

Try to avoid JSON encoding exceptions #33

Closed conormcd closed 6 years ago

conormcd commented 6 years ago

Rollcage uses cheshire to encode its payload before sending to Rollbar. Cheshire throws exceptions if an item in the map is not encodable using its standard set of encoders.

This change detects when a JsonGenerationException would be thrown and pre-processes the input to avoid throwing the exception. The approach taken is conservative and avoids stomping on custom encoders added by any codebase using this library.

codecov[bot] commented 6 years ago

Codecov Report

Merging #33 into master will increase coverage by 0.28%. The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #33      +/-   ##
==========================================
+ Coverage   96.66%   96.95%   +0.28%     
==========================================
  Files           2        3       +1     
  Lines         150      164      +14     
  Branches        3        3              
==========================================
+ Hits          145      159      +14     
  Misses          2        2              
  Partials        3        3
Impacted Files Coverage Δ
src/circleci/rollcage/core.clj 96.4% <100%> (-0.06%) :arrow_down:
src/circleci/rollcage/json.clj 100% <100%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update c1e1353...e054644. Read the comment docs.