Class: SoarSr::Validator

Inherits:
Object
  • Object
show all
Includes:
Jsender
Defined in:
lib/soar_sr/validator.rb

Direct Known Subclasses

Handler

Instance Method Summary collapse

Instance Method Details

#authorized?(result) ⇒ Boolean

Returns:

  • (Boolean)

Raises:



38
39
40
41
42
43
44
# File 'lib/soar_sr/validator.rb', line 38

def authorized?(result)
  raise ValidationError, 'not authorized' if (notifications_include?(result, 'E_authTokenRequired')) or 
                                             (notifications_include?(result, 'E_keyUnavailable')) or
                                             (notifications_include?(result, 'E_userMismatch')) or
                                             (notifications_include?(result, 'not authorized'))
  true
end

#contact?(contact) ⇒ Boolean

Returns:

  • (Boolean)

Raises:



70
71
72
73
74
75
# File 'lib/soar_sr/validator.rb', line 70

def contact?(contact)
  error = 'invalid contact details provided'
  raise ValidationError, error if not contact.is_a?(Hash)
  raise ValidationError, error if contact['name'].nil? or contact['name'].strip == ""
  true
end

#credentials?(credentials) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/soar_sr/validator.rb', line 34

def credentials?(credentials)
  provided?(credentials, 'credentials') and provided?(credentials['username'], 'username') and provided?(credentials['password'], 'password')
end

#identifier?(result, label) ⇒ Boolean

Returns:

  • (Boolean)

Raises:



46
47
48
49
# File 'lib/soar_sr/validator.rb', line 46

def identifier?(result, label)
  raise ValidationError, "invalid #{label} identifier provided" if notifications_include?(result, 'E_invalidKeyPassed')
  true
end

#key_provided?(field, key, label) ⇒ Boolean

Returns:

  • (Boolean)

Raises:



18
19
20
21
22
23
24
25
26
# File 'lib/soar_sr/validator.rb', line 18

def key_provided?(field, key, label)
  msg_no = "no #{label} provided"
  msg_invalid = "invalid #{label} provided"
  raise ValidationError, msg_no if field.nil?
  raise ValidationError, msg_invalid if (not field.is_a? Hash)
  raise ValidationError, msg_no if field[key].nil?
  raise ValidationError, msg_invalid if (not field[key].is_a? String) or (field[key].strip == "")
  true
end

#length_at_least?(field, min, label) ⇒ Boolean

Returns:

  • (Boolean)

Raises:



29
30
31
32
# File 'lib/soar_sr/validator.rb', line 29

def length_at_least?(field, min, label)
  raise ValidationError, "invalid #{label} provided" if (field.size < min)
  true
end

#meta?(meta) ⇒ Boolean

Returns:

  • (Boolean)

Raises:



56
57
58
59
# File 'lib/soar_sr/validator.rb', line 56

def meta?(meta)
  raise ValidationError, 'invalid meta' if not meta.is_a?(Hash)
  true
end

#one_of(type) ⇒ Object



77
78
79
80
81
82
# File 'lib/soar_sr/validator.rb', line 77

def one_of(type)
  result = type[0..-2]
  result = 'domain perspective' if result == 'domain'
  result = 'service component' if result == 'service-component'
  result
end

#present?(field) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/soar_sr/validator.rb', line 8

def present?(field)
  not (field.nil? or (field.is_a?(String) and field.strip == ""))
end

#provided?(field, label) ⇒ Boolean

Returns:

  • (Boolean)

Raises:



12
13
14
15
16
# File 'lib/soar_sr/validator.rb', line 12

def provided?(field, label)
  raise ValidationError, "no #{label} provided" if field.nil?
  raise ValidationError, "invalid #{label} provided" if (field.is_a?(String) and field.strip == "")
  true
end

#type?(type) ⇒ Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/soar_sr/validator.rb', line 61

def type?(type)
  ['domains', 'services', 'teams', 'service-components'].include?(type)
end

#uri?(uri) ⇒ Boolean

Returns:

  • (Boolean)

Raises:



51
52
53
54
# File 'lib/soar_sr/validator.rb', line 51

def uri?(uri)
  raise ValidationError, 'invalid URI' if not (uri =~ URI::DEFAULT_PARSER.regexp[:UNSAFE]).nil?
  true
end

#wadl?(definition) ⇒ Boolean

Returns:

  • (Boolean)

Raises:



65
66
67
68
# File 'lib/soar_sr/validator.rb', line 65

def wadl?(definition)
  raise ValidationError, 'invalid service definition provided' if not definition.include?("wadl")
  true
end