Module: NetSuite::Configuration
Instance Method Summary collapse
- #account(account = nil) ⇒ Object
- #account=(account) ⇒ Object
- #api_version(version = nil) ⇒ Object
- #api_version=(version) ⇒ Object
- #attributes ⇒ Object
- #auth_header(credentials = {}) ⇒ Object
- #cache_wsdl(client) ⇒ Object
- #cached_wsdl ⇒ Object
- #clear_wsdl_cache ⇒ Object
- #connection(params = {}, credentials = {}) ⇒ Object
- #consumer_key(consumer_key = nil) ⇒ Object
- #consumer_key=(consumer_key) ⇒ Object
- #consumer_secret(consumer_secret = nil) ⇒ Object
- #consumer_secret=(consumer_secret) ⇒ Object
- #email(email = nil) ⇒ Object
- #email=(email) ⇒ Object
- #filters(list = nil) ⇒ Object
- #filters=(list) ⇒ Object
- #log(path = nil) ⇒ Object
- #log=(path) ⇒ Object
- #log_level(value = nil) ⇒ Object
- #log_level=(value) ⇒ Object
- #logger(value = nil) ⇒ Object
- #logger=(value) ⇒ Object
- #namespaces ⇒ Object
- #password(password = nil) ⇒ Object
- #password=(password) ⇒ Object
- #read_timeout(timeout = nil) ⇒ Object
- #read_timeout=(timeout) ⇒ Object
- #reset! ⇒ Object
- #role(role = nil) ⇒ Object
- #role=(role) ⇒ Object
- #sandbox(flag = nil) ⇒ Object
- #sandbox=(flag) ⇒ Object
- #sandbox? ⇒ Boolean
- #silent(value = nil) ⇒ Object
- #silent=(value) ⇒ Object
- #soap_header(headers = nil) ⇒ Object
- #soap_header=(headers) ⇒ Object
- #token_auth(credentials) ⇒ Object
- #token_id(token_id = nil) ⇒ Object
- #token_id=(token_id) ⇒ Object
- #token_secret(token_secret = nil) ⇒ Object
- #token_secret=(token_secret) ⇒ Object
- #user_auth(credentials) ⇒ Object
- #wsdl(wsdl = nil) ⇒ Object
- #wsdl=(wsdl) ⇒ Object
- #wsdl_cache ⇒ Object
- #wsdl_domain(wsdl_domain = nil) ⇒ Object
- #wsdl_domain=(wsdl_domain) ⇒ Object
Instance Method Details
#account(account = nil) ⇒ Object
261 262 263 264 265 266 267 |
# File 'lib/netsuite/configuration.rb', line 261 def account(account = nil) if account self.account = account else attributes[:account] end end |
#account=(account) ⇒ Object
257 258 259 |
# File 'lib/netsuite/configuration.rb', line 257 def account=(account) attributes[:account] = account end |
#api_version(version = nil) ⇒ Object
79 80 81 82 83 84 85 |
# File 'lib/netsuite/configuration.rb', line 79 def api_version(version = nil) if version self.api_version = version else attributes[:api_version] ||= '2015_1' end end |
#api_version=(version) ⇒ Object
87 88 89 90 91 92 93 94 |
# File 'lib/netsuite/configuration.rb', line 87 def api_version=(version) if attributes[:api_version] != version attributes[:wsdl] = nil attributes[:wsdl_domain] = nil end attributes[:api_version] = version end |
#attributes ⇒ Object
13 14 15 |
# File 'lib/netsuite/configuration.rb', line 13 def attributes @attributes ||= {} end |
#auth_header(credentials = {}) ⇒ Object
169 170 171 172 173 174 175 |
# File 'lib/netsuite/configuration.rb', line 169 def auth_header(credentials={}) if !credentials[:consumer_key].blank? || !consumer_key.blank? token_auth(credentials) else user_auth(credentials) end end |
#cache_wsdl(client) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/netsuite/configuration.rb', line 67 def cache_wsdl(client) # NOTE the Savon::Client doesn't pull the wsdl content upon # instantiation; it pulls it when it recieves the #call method. # If we force it to pull the wsdl here, it will duplicate the call later. # So, we stash the entire client and fetch just the wsdl from it after # it completes its call # For reference, see: # https://github.com/savonrb/savon/blob/d64925d3add33fa5531577ce9e3a28a7a93618b1/lib/savon/client.rb#L35-L37 # https://github.com/savonrb/savon/blob/d64925d3add33fa5531577ce9e3a28a7a93618b1/lib/savon/operation.rb#L22 wsdl_cache[wsdl] ||= client end |
#cached_wsdl ⇒ Object
58 59 60 61 62 63 64 65 |
# File 'lib/netsuite/configuration.rb', line 58 def cached_wsdl cached = wsdl_cache.fetch(wsdl, nil) if cached.is_a? String cached elsif cached.is_a? Savon::Client wsdl_cache[wsdl] = cached.instance_eval { @wsdl.xml } end end |
#clear_wsdl_cache ⇒ Object
54 55 56 |
# File 'lib/netsuite/configuration.rb', line 54 def clear_wsdl_cache @wsdl_cache = {} end |
#connection(params = {}, credentials = {}) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/netsuite/configuration.rb', line 17 def connection(params={}, credentials={}) client = Savon.client({ wsdl: cached_wsdl || wsdl, read_timeout: read_timeout, namespaces: namespaces, soap_header: auth_header(credentials).update(soap_header), pretty_print_xml: true, filters: filters, logger: logger, log_level: log_level, log: !silent, # turn off logging entirely if configured }.update(params)) cache_wsdl(client) return client end |
#consumer_key(consumer_key = nil) ⇒ Object
273 274 275 276 277 278 279 |
# File 'lib/netsuite/configuration.rb', line 273 def consumer_key(consumer_key = nil) if consumer_key self.consumer_key = consumer_key else attributes[:consumer_key] end end |
#consumer_key=(consumer_key) ⇒ Object
269 270 271 |
# File 'lib/netsuite/configuration.rb', line 269 def consumer_key=(consumer_key) attributes[:consumer_key] = consumer_key end |
#consumer_secret(consumer_secret = nil) ⇒ Object
285 286 287 288 289 290 291 |
# File 'lib/netsuite/configuration.rb', line 285 def consumer_secret(consumer_secret = nil) if consumer_secret self.consumer_secret = consumer_secret else attributes[:consumer_secret] end end |
#consumer_secret=(consumer_secret) ⇒ Object
281 282 283 |
# File 'lib/netsuite/configuration.rb', line 281 def consumer_secret=(consumer_secret) attributes[:consumer_secret] = consumer_secret end |
#email(email = nil) ⇒ Object
237 238 239 240 241 242 243 |
# File 'lib/netsuite/configuration.rb', line 237 def email(email = nil) if email self.email = email else attributes[:email] end end |
#email=(email) ⇒ Object
233 234 235 |
# File 'lib/netsuite/configuration.rb', line 233 def email=(email) attributes[:email] = email end |
#filters(list = nil) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/netsuite/configuration.rb', line 33 def filters(list = nil) if list self.filters = list else attributes[:filters] ||= [ :password, :email, :consumerKey, :token ] end end |
#filters=(list) ⇒ Object
46 47 48 |
# File 'lib/netsuite/configuration.rb', line 46 def filters=(list) attributes[:filters] = list end |
#log(path = nil) ⇒ Object
333 334 335 336 |
# File 'lib/netsuite/configuration.rb', line 333 def log(path = nil) self.log = path if path attributes[:log] end |
#log=(path) ⇒ Object
329 330 331 |
# File 'lib/netsuite/configuration.rb', line 329 def log=(path) attributes[:log] = path end |
#log_level(value = nil) ⇒ Object
359 360 361 362 |
# File 'lib/netsuite/configuration.rb', line 359 def log_level(value = nil) self.log_level = value || :debug attributes[:log_level] end |
#log_level=(value) ⇒ Object
364 365 366 |
# File 'lib/netsuite/configuration.rb', line 364 def log_level=(value) attributes[:log_level] ||= value end |
#logger(value = nil) ⇒ Object
338 339 340 341 342 343 344 |
# File 'lib/netsuite/configuration.rb', line 338 def logger(value = nil) if value.nil? attributes[:logger] ||= ::Logger.new((log && !log.empty?) ? log : $stdout) else attributes[:logger] = value end end |
#logger=(value) ⇒ Object
346 347 348 |
# File 'lib/netsuite/configuration.rb', line 346 def logger=(value) attributes[:logger] = value end |
#namespaces ⇒ Object
196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 |
# File 'lib/netsuite/configuration.rb', line 196 def namespaces { 'xmlns:platformMsgs' => "urn:messages_#{api_version}.platform.webservices.netsuite.com", 'xmlns:platformCore' => "urn:core_#{api_version}.platform.webservices.netsuite.com", 'xmlns:platformCommon' => "urn:common_#{api_version}.platform.webservices.netsuite.com", 'xmlns:listRel' => "urn:relationships_#{api_version}.lists.webservices.netsuite.com", 'xmlns:tranSales' => "urn:sales_#{api_version}.transactions.webservices.netsuite.com", 'xmlns:tranPurch' => "urn:purchases_#{api_version}.transactions.webservices.netsuite.com", 'xmlns:actSched' => "urn:scheduling_#{api_version}.activities.webservices.netsuite.com", 'xmlns:setupCustom' => "urn:customization_#{api_version}.setup.webservices.netsuite.com", 'xmlns:listAcct' => "urn:accounting_#{api_version}.lists.webservices.netsuite.com", 'xmlns:tranBank' => "urn:bank_#{api_version}.transactions.webservices.netsuite.com", 'xmlns:tranCust' => "urn:customers_#{api_version}.transactions.webservices.netsuite.com", 'xmlns:tranEmp' => "urn:employees_#{api_version}.transactions.webservices.netsuite.com", 'xmlns:tranInvt' => "urn:inventory_#{api_version}.transactions.webservices.netsuite.com", 'xmlns:listSupport' => "urn:support_#{api_version}.lists.webservices.netsuite.com", 'xmlns:tranGeneral' => "urn:general_#{api_version}.transactions.webservices.netsuite.com", 'xmlns:commGeneral' => "urn:communication_#{api_version}.general.webservices.netsuite.com", 'xmlns:listMkt' => "urn:marketing_#{api_version}.lists.webservices.netsuite.com", 'xmlns:listWebsite' => "urn:website_#{api_version}.lists.webservices.netsuite.com", 'xmlns:fileCabinet' => "urn:filecabinet_#{api_version}.documents.webservices.netsuite.com", 'xmlns:listEmp' => "urn:employees_#{api_version}.lists.webservices.netsuite.com" } end |
#password(password = nil) ⇒ Object
249 250 251 252 253 254 255 |
# File 'lib/netsuite/configuration.rb', line 249 def password(password = nil) if password self.password = password else attributes[:password] end end |
#password=(password) ⇒ Object
245 246 247 |
# File 'lib/netsuite/configuration.rb', line 245 def password=(password) attributes[:password] = password end |
#read_timeout(timeout = nil) ⇒ Object
321 322 323 324 325 326 327 |
# File 'lib/netsuite/configuration.rb', line 321 def read_timeout(timeout = nil) if timeout self.read_timeout = timeout else attributes[:read_timeout] ||= 60 end end |
#read_timeout=(timeout) ⇒ Object
317 318 319 |
# File 'lib/netsuite/configuration.rb', line 317 def read_timeout=(timeout) attributes[:read_timeout] = timeout end |
#reset! ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/netsuite/configuration.rb', line 5 def reset! NetSuite::Utilities.clear_cache! clear_wsdl_cache attributes.clear end |
#role(role = nil) ⇒ Object
225 226 227 228 229 230 231 |
# File 'lib/netsuite/configuration.rb', line 225 def role(role = nil) if role self.role = role else attributes[:role] ||= '3' end end |
#role=(role) ⇒ Object
221 222 223 |
# File 'lib/netsuite/configuration.rb', line 221 def role=(role) attributes[:role] = role end |
#sandbox(flag = nil) ⇒ Object
105 106 107 108 109 110 111 |
# File 'lib/netsuite/configuration.rb', line 105 def sandbox(flag = nil) if flag.nil? attributes[:sandbox] ||= false else self.sandbox = flag end end |
#sandbox=(flag) ⇒ Object
96 97 98 99 100 101 102 103 |
# File 'lib/netsuite/configuration.rb', line 96 def sandbox=(flag) if attributes[:sandbox] != flag attributes[:wsdl] = nil attributes[:wsdl_domain] = nil end attributes[:sandbox] = flag end |
#sandbox? ⇒ Boolean
113 114 115 |
# File 'lib/netsuite/configuration.rb', line 113 def sandbox? !!sandbox end |
#silent(value = nil) ⇒ Object
350 351 352 353 |
# File 'lib/netsuite/configuration.rb', line 350 def silent(value=nil) self.silent = value if !value.nil? attributes[:silent] end |
#silent=(value) ⇒ Object
355 356 357 |
# File 'lib/netsuite/configuration.rb', line 355 def silent=(value) attributes[:silent] ||= value end |
#soap_header(headers = nil) ⇒ Object
161 162 163 164 165 166 167 |
# File 'lib/netsuite/configuration.rb', line 161 def soap_header(headers = nil) if headers self.soap_header = headers else attributes[:soap_header] ||= {} end end |
#soap_header=(headers) ⇒ Object
157 158 159 |
# File 'lib/netsuite/configuration.rb', line 157 def soap_header=(headers) attributes[:soap_header] = headers end |
#token_auth(credentials) ⇒ Object
186 187 188 189 190 191 192 193 194 |
# File 'lib/netsuite/configuration.rb', line 186 def token_auth(credentials) NetSuite::Passports::Token.new( credentials[:account] || account, credentials[:consumer_key] || consumer_key, credentials[:consumer_secret] || consumer_secret, credentials[:token_id] || token_id, credentials[:token_secret] || token_secret ).passport end |
#token_id(token_id = nil) ⇒ Object
297 298 299 300 301 302 303 |
# File 'lib/netsuite/configuration.rb', line 297 def token_id(token_id = nil) if token_id self.token_id = token_id else attributes[:token_id] end end |
#token_id=(token_id) ⇒ Object
293 294 295 |
# File 'lib/netsuite/configuration.rb', line 293 def token_id=(token_id) attributes[:token_id] = token_id end |
#token_secret(token_secret = nil) ⇒ Object
309 310 311 312 313 314 315 |
# File 'lib/netsuite/configuration.rb', line 309 def token_secret(token_secret = nil) if token_secret self.token_secret = token_secret else attributes[:token_secret] end end |
#token_secret=(token_secret) ⇒ Object
305 306 307 |
# File 'lib/netsuite/configuration.rb', line 305 def token_secret=(token_secret) attributes[:token_secret] = token_secret end |
#user_auth(credentials) ⇒ Object
177 178 179 180 181 182 183 184 |
# File 'lib/netsuite/configuration.rb', line 177 def user_auth(credentials) NetSuite::Passports::User.new( credentials[:account] || account, credentials[:email] || email, credentials[:password] || password, credentials[:role] || role ).passport end |
#wsdl(wsdl = nil) ⇒ Object
121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/netsuite/configuration.rb', line 121 def wsdl(wsdl = nil) if wsdl self.wsdl = wsdl else attributes[:wsdl] ||= begin if sandbox "https://webservices.sandbox.netsuite.com/wsdl/v#{api_version}_0/netsuite.wsdl" else "https://#{wsdl_domain}/wsdl/v#{api_version}_0/netsuite.wsdl" end end end end |
#wsdl=(wsdl) ⇒ Object
117 118 119 |
# File 'lib/netsuite/configuration.rb', line 117 def wsdl=(wsdl) attributes[:wsdl] = wsdl end |
#wsdl_cache ⇒ Object
50 51 52 |
# File 'lib/netsuite/configuration.rb', line 50 def wsdl_cache @wsdl_cache ||= {} end |
#wsdl_domain(wsdl_domain = nil) ⇒ Object
135 136 137 138 139 140 141 142 143 144 145 146 |
# File 'lib/netsuite/configuration.rb', line 135 def wsdl_domain(wsdl_domain = nil) if wsdl_domain self.wsdl_domain = wsdl_domain else # if sandbox, this parameter is ignored if sandbox 'webservices.sandbox.netsuite.com' else attributes[:wsdl_domain] ||= 'webservices.netsuite.com' end end end |
#wsdl_domain=(wsdl_domain) ⇒ Object
148 149 150 151 152 153 154 155 |
# File 'lib/netsuite/configuration.rb', line 148 def wsdl_domain=(wsdl_domain) if attributes[:wsdl_domain] != wsdl_domain # reset full wsdl url to ensure it's regenerated with the updated `wsdl_domain` next time it's needed attributes[:wsdl] = nil end attributes[:wsdl_domain] = wsdl_domain end |