Class: JsonapiSpecHelpers::PayloadSanitizer
- Inherits:
-
Object
- Object
- JsonapiSpecHelpers::PayloadSanitizer
- Defined in:
- lib/jsonapi_spec_helpers/payload_sanitizer.rb
Instance Method Summary collapse
- #add_include(incl) ⇒ Object
- #data ⇒ Object
- #included ⇒ Object
-
#initialize(payload) ⇒ PayloadSanitizer
constructor
A new instance of PayloadSanitizer.
- #resource ⇒ Object
- #resource_identifier ⇒ Object
- #sanitize ⇒ Object
Constructor Details
#initialize(payload) ⇒ PayloadSanitizer
Returns a new instance of PayloadSanitizer.
3 4 5 6 |
# File 'lib/jsonapi_spec_helpers/payload_sanitizer.rb', line 3 def initialize(payload) @payload = payload @included = [] end |
Instance Method Details
#add_include(incl) ⇒ Object
34 35 36 |
# File 'lib/jsonapi_spec_helpers/payload_sanitizer.rb', line 34 def add_include(incl) @included.push(incl) if @included.index(incl).nil? end |
#data ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/jsonapi_spec_helpers/payload_sanitizer.rb', line 45 def data @data ||= {}.tap do |d| d[:id] = resource[:id] if resource[:id] d[:type] = resource[:type] d[:attributes] = resource[:attributes] end end |
#included ⇒ Object
30 31 32 |
# File 'lib/jsonapi_spec_helpers/payload_sanitizer.rb', line 30 def included @included end |
#resource ⇒ Object
8 9 10 |
# File 'lib/jsonapi_spec_helpers/payload_sanitizer.rb', line 8 def resource @resource ||= sane_resource(@payload) end |
#resource_identifier ⇒ Object
38 39 40 41 42 43 |
# File 'lib/jsonapi_spec_helpers/payload_sanitizer.rb', line 38 def resource_identifier {}.tap do |ri| ri[:id] = resource[:id] if resource[:id] ri[:type] = resource[:type] end end |
#sanitize ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/jsonapi_spec_helpers/payload_sanitizer.rb', line 12 def sanitize resource[:relationships].each_pair do |key, relationship_payload| set_default_relationship_payload(key, relationship_payload) if relationship_payload.is_a?(Array) relationship_payload.each do |p| process_relationship(key, p) end else process_relationship(key, relationship_payload) end end payload = { data: data } payload[:included] = @included payload end |