Sha256: 8130ee07006dfc7635caf5b4e6feae4dbb6e8830cb0b5c3c59e96bf4a5a0a0b5

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

module MajesticSeo
  module Api
    class Response
      attr_accessor :response, :code, :success, :error_message, :full_error, :items, :parsed_items

      def initialize(response = nil)
        self.response             =   response
        self.success              =   false
        self.items                =   []
        self.parsed_items         =   []

        parse_response
      end

      def parse_response
        if self.response.is_a?(Faraday::Response)
          self.response           =   (self.response && self.response.body) ? self.response.body : nil
          
          if self.response
            self.code             =   self.response.fetch("Code", "")
            self.success          =   self.code.downcase.eql?("ok")
            self.error_message    =   self.response.fetch("ErrorMessage", "")
            self.full_error       =   self.response.fetch("FullError", "")
          
            if success?
              self.parsed_items   =   self.response.fetch("DataTables", {}).fetch("Results", {}).fetch("Data", [])
            end
          end
        end
      end

      def success?
        self.success
      end

      def stacktrace
        self.full_error
      end

    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
majestic_seo_api-1.4.0 lib/majestic_seo/api/response.rb