Sha256: c130fa52cd8f242e051e912f1d9035be73ceb358becca13ec0a143a3ec9f4521
Contents?: true
Size: 1.36 KB
Versions: 1
Compression:
Stored size: 1.36 KB
Contents
require 'alephant/logger' require 'json' module Alephant module Publisher module Request class DataMapper include Logger attr_reader :connection, :context def initialize(connection, context = {}) @connection = connection @context = context end def data raise NotImplementedError end protected def get(uri) before = Time.new response = connection.get(uri) raise InvalidApiResponse, "Status: #{response.status}" unless response.status == 200 logger.metric(:name => "PublisherRequestDataMapperRequestHTTPTime", :unit => 'Seconds', :value => Time.new - before) JSON::parse(response.body, :symbolize_names => true) rescue Faraday::ConnectionFailed logger.metric(:name => "PublisherRequestDataMapperConnectionFailed", :unit => "Count", :value => 1) raise ConnectionFailed rescue JSON::ParserError logger.metric(:name => "PublisherRequestDataMapperInvalidApiResponse", :unit => "Count", :value => 1) raise InvalidApiResponse, "JSON parsing error: #{response.body}" rescue StandardError => e logger.metric(:name => "PublisherRequestDataMapperApiError", :unit => "Count", :value => 1) raise ApiError, e.message end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
alephant-publisher-request-0.1.1 | lib/alephant/publisher/request/data_mapper.rb |