Sha256: 5cb628058c42edb75e6ef445f524aa4696da41b00a580c208726d643d47d5681

Contents?: true

Size: 1.32 KB

Versions: 9

Compression:

Stored size: 1.32 KB

Contents

# frozen_string_literal: true

module ZohoHub
  class Response
    def initialize(params)
      @params = params || {}
    end

    def invalid_data?
      if data.is_a?(Array)
        return data.first[:code] == 'MANDATORY_NOT_FOUND'
      end

      data[:code] == 'INVALID_DATA'
    end

    # {:code=>"INVALID_TOKEN", :details=>{}, :message=>"invalid oauth token", :status=>"error"}
    def invalid_token?
      return false if data.is_a?(Array)

      data[:code] == 'INVALID_TOKEN'
    end

    def authentication_failure?
      return false if data.is_a?(Array)

      data[:code] == 'AUTHENTICATION_FAILURE'
    end

    def empty?
      @params.empty?
    end

    def data
      data = @params[:data] if @params.dig(:data)
      data ||= @params

      return data.first if data.is_a?(Array) && data.size == 1

      data
    end

    def msg
      msg = data[:message]
      msg << ", error in #{data.dig(:details, :api_name)}" if data.dig(:code) == 'INVALID_DATA'

      if data.dig(:details, :expected_data_type)
        expected = data.dig(:details, :expected_data_type)
        field = data.dig(:details, :api_name)
        parent_api_name = data.dig(:details, :parent_api_name)

        msg << ", expected #{expected} for '#{field}'"
        msg << " in #{parent_api_name}" if parent_api_name
      end

      msg
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
zoho_hub-0.1.56 lib/zoho_hub/response.rb
zoho_hub-0.1.55 lib/zoho_hub/response.rb
zoho_hub-0.1.54 lib/zoho_hub/response.rb
zoho_hub-0.1.53 lib/zoho_hub/response.rb
zoho_hub-0.1.52 lib/zoho_hub/response.rb
zoho_hub-0.1.51 lib/zoho_hub/response.rb
zoho_hub-0.1.50 lib/zoho_hub/response.rb
zoho_hub-0.1.49 lib/zoho_hub/response.rb
zoho_hub-0.1.48 lib/zoho_hub/response.rb