Class: ShopifyClient::ResponseErrors

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/shopify-client/response_errors.rb

Direct Known Subclasses

ResponseUserErrors

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(errors = {}) ⇒ ResponseErrors

Returns a new instance of ResponseErrors.

Parameters:

  • errors (Hash) (defaults to: {})


22
23
24
# File 'lib/shopify-client/response_errors.rb', line 22

def initialize(errors = {})
  @errors = errors
end

Class Method Details

.from_response_data(data) ⇒ ResponseErrors

Certain error responses, such as ‘Not Found’, use a string rather than an object. For consistency, these messages are set under ‘resource’.

Parameters:

  • data (Hash)

    the complete response data

Returns:



12
13
14
15
16
17
18
# File 'lib/shopify-client/response_errors.rb', line 12

def from_response_data(data)
  errors = data['errors']

  return new if errors.nil?

  errors.is_a?(String) ? new('resource' => errors) : new(errors)
end

Instance Method Details

#eachObject

See Also:

  • Hash#each


50
51
52
# File 'lib/shopify-client/response_errors.rb', line 50

def each(...)
  @errors.dup.each(...)
end

#message?(message_patterns) ⇒ Boolean

message_patterns [Array<Regexp, String>]

Returns:

  • (Boolean)


36
37
38
39
40
41
42
43
44
45
# File 'lib/shopify-client/response_errors.rb', line 36

def message?(message_patterns)
  message_patterns.any? do |pattern|
    case pattern
    when Regexp
      messages.any? { |message| message.match?(pattern) }
    when String
      messages.include?(pattern)
    end
  end
end

#messagesArray<String]

Returns Array<String].

Returns:

  • (Array<String])

    Array<String]



27
28
29
30
31
# File 'lib/shopify-client/response_errors.rb', line 27

def messages
  @errors.map do |field, message|
    "#{message} [#{field}]"
  end
end

#to_hHash

Returns:

  • (Hash)


55
56
57
# File 'lib/shopify-client/response_errors.rb', line 55

def to_h
  @errors.dup
end