Exception: ZendeskAppsSupport::Validations::ValidationError

Inherits:
StandardError
  • Object
show all
Defined in:
lib/zendesk_apps_support/validations/validation_error.rb

Defined Under Namespace

Classes: DeserializationError

Constant Summary collapse

KEY_PREFIX =
'txt.apps.admin.error.app_build.'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key, data = nil) ⇒ ValidationError

Returns a new instance of ValidationError.



47
48
49
50
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 47

def initialize(key, data = nil)
  @key = key
  @data = symbolize_keys(data || {})
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



45
46
47
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 45

def data
  @data
end

#keyObject (readonly)

Returns the value of attribute key.



45
46
47
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 45

def key
  @key
end

Class Method Details

.from_hash(hash) ⇒ Object



26
27
28
29
30
31
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 26

def from_hash(hash)
  raise DeserializationError, hash unless hash['class']
  klass = constantize(hash['class'])
  raise DeserializationError, hash unless klass <= self
  klass.vivify(hash)
end

.from_json(json) ⇒ Object

Turn a JSON string into a ValidationError.



18
19
20
21
22
23
24
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 18

def from_json(json)
  hash = JSON.parse(json)
  raise DeserializationError, json unless hash.is_a?(Hash)
  from_hash(hash)
rescue JSON::ParserError, NameError
  raise DeserializationError, json
end

.vivify(hash) ⇒ Object

Turn a Hash into a ValidationError. Used within from_json.



34
35
36
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 34

def vivify(hash)
  new(hash['key'], hash['data'])
end

Instance Method Details

#as_jsonObject



60
61
62
63
64
65
66
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 60

def as_json(*)
  {
    'class' => self.class.to_s,
    'key'   => key,
    'data'  => data
  }
end

#to_jsonObject



56
57
58
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 56

def to_json(*)
  JSON.generate(as_json)
end

#to_sObject



52
53
54
# File 'lib/zendesk_apps_support/validations/validation_error.rb', line 52

def to_s
  ZendeskAppsSupport::I18n.t("#{KEY_PREFIX}#{key}", data)
end