diff options
Diffstat (limited to 'app/services/metrics/dashboard/transient_embed_service.rb')
-rw-r--r-- | app/services/metrics/dashboard/transient_embed_service.rb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/app/services/metrics/dashboard/transient_embed_service.rb b/app/services/metrics/dashboard/transient_embed_service.rb index ce81f337e47..cb6ca215447 100644 --- a/app/services/metrics/dashboard/transient_embed_service.rb +++ b/app/services/metrics/dashboard/transient_embed_service.rb @@ -23,7 +23,9 @@ module Metrics override :get_raw_dashboard def get_raw_dashboard - JSON.parse(params[:embed_json]) + Gitlab::Json.parse(params[:embed_json]) + rescue JSON::ParserError => e + invalid_embed_json!(e.message) end override :sequence @@ -35,6 +37,10 @@ module Metrics def identifiers Digest::SHA256.hexdigest(params[:embed_json]) end + + def invalid_embed_json!(message) + raise DashboardProcessingError.new("Parsing error for param :embed_json. #{message}") + end end end end |