class Centaman::Service::CreateSecondaryMembers

Attributes

primary_member_id[R]
secondary_members[R]

Public Instance Methods

after_init(args) click to toggle source
# File lib/centaman/service/create_secondary_members.rb, line 9
def after_init(args)
  @primary_member_id = args.fetch(:primary_member_id, nil)
  @secondary_members = args.fetch(:secondary_members, [])
end
build_object(resp) click to toggle source
# File lib/centaman/service/create_secondary_members.rb, line 22
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_secondary_members.rb, line 14
def endpoint
  '/member_services/Member'
end
object_class() click to toggle source
# File lib/centaman/service/create_secondary_members.rb, line 18
def object_class
  Centaman::Object::Member
end
options_hash() click to toggle source
# File lib/centaman/service/create_secondary_members.rb, line 29
def options_hash
  request_body = secondary_members.map { |m| build_member(m) }
  request_body.to_json
end

Private Instance Methods

build_member(member) click to toggle source
# File lib/centaman/service/create_secondary_members.rb, line 36
def build_member(member)
  return {
    'FirstName' => member[:first_name].try(:squish).try(:upcase),
    'LastName' => member[:last_name].try(:squish).try(:upcase),
    'Gender' => member[:gender].try(:squish),
    'Title' => member[:title].try(:squish).try(:upcase),
    'DateOfBirth' => member[:date_of_birth],
    'IsPrimary' => false,
    'PrimaryMemberId' => primary_member_id
  } if member.is_a?(Hash)

  {
    'FirstName' => member.first_name.try(:squish).try(:upcase),
    'LastName' => member.last_name.try(:squish).try(:upcase),
    'Gender' => member.gender.try(:squish),
    'Title' => member.title.try(:squish).try(:upcase),
    'DateOfBirth' => member.date_of_birth,
    'IsPrimary' => false,
    'PrimaryMemberId' => primary_member_id
  }
end
create_error(resp) click to toggle source
# File lib/centaman/service/create_secondary_members.rb, line 58
def create_error(resp)
  message = resp.parsed_response || 'Unable to create the member record(s).'
  raise Centaman::Exceptions::CentamanError.new(message)
end