Class: JsonApiClient::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/patches/json_api_client/resource.rb

Direct Known Subclasses

FlexCommerceApi::BaseResource

Instance Method Summary collapse

Instance Method Details

#saveObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/patches/json_api_client/resource.rb', line 6

def save
  return false unless valid?

  self.last_result_set = if persisted?
    self.class.requestor.update(self)
  else
    self.class.requestor.create(self)
  end

  if last_result_set.has_errors?
    last_result_set.errors.each do |error|
      if error.source_parameter
        errors.add(error.source_parameter, error.title || error.detail)
      else
        errors.add(:base, error.title || error.detail)
      end
    end
    false
  else
    self.errors.clear if self.errors
    mark_as_persisted!
    if updated = last_result_set.first
      self.attributes = updated.attributes
      # This line has been added as part of https://github.com/chingor13/json_api_client/pull/238
      self.links.attributes = updated.links.attributes
      self.relationships.attributes = updated.relationships.attributes
      clear_changes_information
      # This line has been added as part of https://github.com/JsonApiClient/json_api_client/pull/285
      self.relationships.clear_changes_information
    end
    true
  end
end