Sha256: f0d448f7c571d177f0090a536e8359c66a3cc32438fe3f309ba95001efb2bc8c

Contents?: true

Size: 1.75 KB

Versions: 11

Compression:

Stored size: 1.75 KB

Contents

module RockRMS
  class Client
    module Person
      def list_people(options = {})
        res = get(people_path, options)
        Response::Person.format(res)
      end

      def find_person(id)
        res = get(people_path(id))
        Response::Person.format(res)
      end

      def find_person_by_alias_id(id)
        Response::Person.format(get("People/GetByPersonAliasId/#{id}"))
      end

      def find_person_by_email(email)
        res = get("People/GetByEmail/#{email}")
        Response::Person.format(res)
      end

      NAME_SEARCH_DEFAULTS = {
        includeHtml: false,
        includeDetails: true,
        includeBusinesses: false,
        includeDeceased: false
      }.freeze

      def find_person_by_name(full_name, options = {})
        priority = options.merge(name: full_name)

        Response::Person.format(
          get('People/Search', NAME_SEARCH_DEFAULTS.merge(priority))
        )
      end

      def create_person(first_name:, last_name:, email:, connection_status_value_id: nil, record_status_value_id: nil, record_type_value_id: 1)
        options = {
          'IsSystem' => false,
          'FirstName' => first_name,
          'LastName' => last_name,
          'Email' => email,
          'Gender' => 1,
          'ConnectionStatusValueId' => connection_status_value_id,
          'RecordStatusValueId'     => record_status_value_id,
          'RecordTypeValueId'     => record_type_value_id,
        }

        # RecordTypeValueId 1 = Person
        # RecordTypeValueId 2 = Business

        post(people_path, options)
      end

      def update_person(id, options = {})
        put(people_path(id), options)
      end

      private

      def people_path(id = nil)
        id ? "People/#{id}" : 'People'
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
rock_rms-6.0.8 lib/rock_rms/resources/person.rb
rock_rms-6.0.7 lib/rock_rms/resources/person.rb
rock_rms-6.0.6 lib/rock_rms/resources/person.rb
rock_rms-6.0.5 lib/rock_rms/resources/person.rb
rock_rms-6.0.4 lib/rock_rms/resources/person.rb
rock_rms-6.0.3 lib/rock_rms/resources/person.rb
rock_rms-6.0.1 lib/rock_rms/resources/person.rb
rock_rms-6.0.0 lib/rock_rms/resources/person.rb
rock_rms-5.18.0 lib/rock_rms/resources/person.rb
rock_rms-5.17.0 lib/rock_rms/resources/person.rb
rock_rms-5.16.0 lib/rock_rms/resources/person.rb