lib/centaman/service/create_primary_member.rb in centaman-6.0.4 vs lib/centaman/service/create_primary_member.rb in centaman-6.0.5
- old
+ new
@@ -2,20 +2,22 @@
module Centaman
class Service::CreatePrimaryMember < Centaman::Service
include Centaman::JsonWrapper
- attr_reader :first_name, :last_name, :gender, :title, :date_of_birth,
- :email, :password
+ attr_reader :first_name, :last_name, :address, :gender, :title,
+ :date_of_birth, :email, :password, :phone
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]
@password = args[:password] || SecureRandom.hex
end
def endpoint
'/member_services/Member'
@@ -34,17 +36,34 @@
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' => true
}
].to_json
+ end
+
+ 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
private
def create_error(resp)