Sha256: 86ef686783a0acc952b39fe4c4a41ecb4f903850ddc353706b4fe838aeb6b90a

Contents?: true

Size: 920 Bytes

Versions: 16

Compression:

Stored size: 920 Bytes

Contents

module Roqua
  module CoreApi
    # @api private
    class UpdatePerson < ActiveInteraction::Base
      model :session, class: Sessions::OAuthSession
      model :person,  class: Models::Person

      # Saves the person attributes to server.
      # Returns true on success, false on validation errors.
      # Adds errors to person object based on I18n errors.messages.
      # Raises on other errors.
      def execute
        response = session.patch "/people/#{person.id}", person: person.serializable_hash
        if response.code == 422
          errors_to_object(response, person)
          false
        else
          true
        end
      end

      private

      def errors_to_object(json, obj)
        json['errors'].each do |attribute, errors|
          errors.each do |error|
            obj.errors.add(attribute, I18n.t("errors.messages.#{error}"))
          end
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
roqua-core-api-0.0.29 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.28 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.27 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.26 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.25 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.24 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.22 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.21 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.20 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.19 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.18 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.17 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.16 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.15 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.14 lib/roqua/core_api/update_person.rb
roqua-core-api-0.0.13 lib/roqua/core_api/update_person.rb