class Centaman::Service::CreateMember

Attributes

address[R]
date_of_birth[R]
email[R]
first_name[R]
gender[R]
is_primary[R]
last_name[R]
password[R]
phone[R]
title[R]

Public Instance Methods

after_init(args) click to toggle source
# File lib/centaman/service/create_member.rb, line 10
def after_init(args)
  @first_name = args[:first_name].try(:squish)
  @last_name = args[:last_name].try(:squish)
  @address = args[:address].try(:symbolize_keys)
  @gender = args[:gender].try(:squish)
  @title = args[:title].try(:squish)
  @date_of_birth = args[:date_of_birth]
  @email = args[:email].try(:squish)
  @phone = args[:phone]
  @is_primary = args[:is_primary] || false
  @password = args[:password] || SecureRandom.hex
end
build_object(resp) click to toggle source
# File lib/centaman/service/create_member.rb, line 31
def build_object(resp)
  return build_objects(resp) if resp.respond_to?(:map)
  return create_error(resp) unless resp.respond_to?(:merge)
  @build_object ||= object_class.new(resp.merge(additional_hash_to_serialize_after_response))
end
endpoint() click to toggle source
# File lib/centaman/service/create_member.rb, line 23
def endpoint
  '/member_services/Member'
end
home_address() click to toggle source
# File lib/centaman/service/create_member.rb, line 53
def home_address
  return if !address
  {
    'street1': address[:street_address].try(:squish).try(:upcase),
    'street2': address[:street_address_two].try(:squish).try(:upcase),
    'suburb': address[:suburb].try(:squish).try(:upcase),
    'city': address[:city].try(:squish).try(:upcase),
    'state': address[:state].try(:squish).try(:upcase),
    'postcode': address[:zip].try(:squish).try(:upcase),
    'country': address[:country].try(:squish).try(:upcase),
    'homePhone': phone.try(:delete, "^0-9"),
    'workPhone': address[:work_phone].try(:delete, "^0-9"),
    'mobilePhone': address[:mobile_phone].try(:delete, "^0-9")
  }
end
object_class() click to toggle source
# File lib/centaman/service/create_member.rb, line 27
def object_class
  Centaman::Object::Member
end
options_hash() click to toggle source
# File lib/centaman/service/create_member.rb, line 37
def options_hash
  [
    {
      'FirstName' => first_name.try(:upcase),
      'LastName' => last_name.try(:upcase),
      'HomeAddress' => home_address,
      'Gender' => gender,
      'Title' => title.try(:upcase),
      'DateOfBirth' => date_of_birth,
      'Email' => email.try(:upcase),
      'Password' => password,
      'IsPrimary' => is_primary
    }
  ].to_json
end

Private Instance Methods

create_error(resp) click to toggle source
# File lib/centaman/service/create_member.rb, line 71
def create_error(resp)
  message = resp.parsed_response || 'Unable to create primary member record.'
  raise Centaman::Exceptions::CentamanError.new(message)
end