Class: NetSuite::Actions::Login

Inherits:
Object
  • Object
show all
Defined in:
lib/netsuite/actions/login.rb

Class Method Summary collapse

Class Method Details

.call(credentials) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/netsuite/actions/login.rb', line 6

def self.call(credentials)
  passport = NetSuite::Configuration.auth_header.dup
  passport['platformMsgs:passport']['platformCore:email'] = credentials[:email] || ''
  passport['platformMsgs:passport']['platformCore:password'] = credentials[:password] || ''
  passport['platformMsgs:passport']['platformCore:role'] = credentials[:role] || ''

  begin
    response = NetSuite::Configuration.connection(soap_header: {}).call :login, message: passport
  rescue Savon::SOAPFault => e
    error_details = e.to_hash[:fault]

    return NetSuite::Response.new(
      success: false,
      errors: [ NetSuite::Error.new(
        code: error_details[:detail][:invalid_credentials_fault][:code],
        message: error_details[:faultstring]
      )],
      body: error_details
    )
  end

  NetSuite::Response.new(
    success: response.to_hash[:login_response][:session_response][:status][:@is_success] == 'true',
    body: response.to_hash[:login_response][:session_response][:base_ref]
  )
end