diff --git a/app/models/common_data.rb b/app/models/common_data.rb index 77da957c8e..893ddd6026 100644 --- a/app/models/common_data.rb +++ b/app/models/common_data.rb @@ -22,7 +22,7 @@ class CommonData client = CartoAPI::JsonClient.new(http_client_tag: 'common_data') response = begin client.get_visualizations_v1_from_url(@visualizations_api_url) - rescue => e + rescue StandardError => e CartoDB.notify_exception(e) nil end @@ -36,6 +36,8 @@ class CommonData end end + CartoDB.notify_error('common-data empty', url: @visualizations_api_url) if @datasets.empty? + @datasets end @@ -48,11 +50,10 @@ class CommonData def get_datasets(json) begin rows = JSON.parse(json).fetch('visualizations', []) - rescue => e + rescue StandardError => e CartoDB.notify_exception(e) rows = [] end - CartoDB.notify_error('common-data empty', { rows: rows, url: @visualizations_api_url}) if rows.nil? || rows.empty? datasets = [] rows.each do |row| diff --git a/lib/carto_api/json_client.rb b/lib/carto_api/json_client.rb index 0896f37a5e..58136fa4d0 100644 --- a/lib/carto_api/json_client.rb +++ b/lib/carto_api/json_client.rb @@ -10,11 +10,11 @@ module CartoAPI end def get_visualization_v1(username:, name:, params: {}) - JSON.parse(get(carto_url(username, "/api/v1/viz/#{name}", params: params1)).body) + JSON.parse(get(carto_url(username, "/api/v1/viz/#{name}", params: params)).body) end def get_visualizations_v1(username:, params: {}) - JSON.parse(get(carto_url(username, '/api/v1/viz', params: params1)).body) + JSON.parse(get(carto_url(username, '/api/v1/viz', params: params)).body) end # Deprecated diff --git a/spec/models/common_data_spec.rb b/spec/models/common_data_spec.rb index d466d9ca31..fb7da3de53 100644 --- a/spec/models/common_data_spec.rb +++ b/spec/models/common_data_spec.rb @@ -20,14 +20,16 @@ describe CommonData do it 'should return empty datasets response and notify error for SQL API error response' do stub_api_response(503) - CartoDB.expects(:notify_error).with('common-data empty', { rows: [] , url: 'http://common-data.example.com/api/v1/viz?type=table&privacy=public'}) + CartoDB.expects(:notify_error).with('common-data empty', + url: 'http://common-data.example.com/api/v1/viz?type=table&privacy=public') @common_data.datasets.should eq [] end it 'should return empty datasets and notify error for invalid json' do stub_api_response(200, INVALID_JSON_RESPONSE) - CartoDB.expects(:notify_error).with('common-data empty', { rows: [] , url: 'http://common-data.example.com/api/v1/viz?type=table&privacy=public'}) + CartoDB.expects(:notify_error).with('common-data empty', + url: 'http://common-data.example.com/api/v1/viz?type=table&privacy=public') @common_data.datasets.should eq [] end