Sha256: 34bed4fd33f43ff4a6761459a00b23d305ed4d50f2f3d9b726d277661bec8e39

Contents?: true

Size: 1.54 KB

Versions: 1

Compression:

Stored size: 1.54 KB

Contents

module Inforouter #:nodoc:
  module Responses #:nodoc:
    # Response to an infoRouter Get All Users API call.
    #
    # See http://www.inforouter.com/web-services-80/default.aspx?op=GetAllUsers
    class Users < Base
      response_success 'get_all_users_response/get_all_users_result/response/@success'
      error_message 'get_all_users_response/get_all_users_result/response/@error'

      class << self
        # Parse an infoRouter response.
        #
        # @param savon_response [Savon::Response] SOAP response.
        #
        # @return [Array]
        def parse(savon_response)
          response = new(savon_response)
          users = response.match('get_all_users_response/get_all_users_result/response/users/user')
          users.map do |user|
            Inforouter::User.new(
              :user_id => user[:@user_id].to_i,
              :domain => user[:@domain].strip,
              :user_name => user[:@user_name].strip,
              :first_name => user[:@first_name].strip,
              :last_name => user[:@last_name].strip,
              :last_logon => DateTime.strptime(user[:@last_logon_date], '%Y-%m-%d %H:%M:%S'),
              :last_password_change => DateTime.strptime(user[:@last_password_change_date], '%Y-%m-%d %H:%M:%S'),
              :authentication_authority => user[:@authentication_authority].strip,
              :read_only => user[:@read_only_user] == 'TRUE',
              :email => user[:@email].strip,
              :enabled => user[:@enabled] == 'TRUE'
            )
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
inforouter-0.2.0 lib/inforouter/responses/users.rb