Sha256: ef46628bf1e4b47caf4864ea1d818588625b8347e6602c200e9a9c1915cd2205

Contents?: true

Size: 1.28 KB

Versions: 4

Compression:

Stored size: 1.28 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_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:)
        options = {
          'IsSystem' => false,
          'FirstName' => first_name,
          'LastName' => last_name,
          'Email' => email,
          'Gender' => 1
        }
        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

4 entries across 4 versions & 1 rubygems

Version Path
rock_rms-3.1.0 lib/rock_rms/resources/person.rb
rock_rms-3.0.2 lib/rock_rms/resources/person.rb
rock_rms-3.0.1 lib/rock_rms/resources/person.rb
rock_rms-3.0.0 lib/rock_rms/resources/person.rb