module ProjectorPWS::Legacy
Constants
- BASE_URL
Base URL
- URL_PATH
URL Path
- WSDL
Service Definition
Public Class Methods
export_cost_cards(url, username, password, account_code = nil, min_date = nil, max_date = nil, max_rows = nil)
click to toggle source
Export Cost Cards
# File lib/projector_pws/legacy.rb, line 65 def self.export_cost_cards url, username, password, account_code = nil, min_date = nil, max_date = nil, max_rows = nil # Prepare Params rparams = {} rparams['tns:MinIncurredDate'] = min_date.strftime '%Y-%m-%dz' if min_date rparams['tns:MaxIncurredDate'] = max_date.strftime '%Y-%m-%dz' if max_date rparams['tns:MaxRowsToReturn'] = max_rows if max_rows # Make the call with_auth(username, password, account_code, url) { |c, params| c.call(:export_cost_cards, params.merge(message: { request: { 'Parameters' => rparams } })).body[:export_cost_cards_response][:export_cost_cards_result][:data][:cost_cards][:cost_card] } end
export_expense_reports(url, username, password, account_code = nil, numbers_after = nil, max_rows = nil)
click to toggle source
Export Expense Reports
# File lib/projector_pws/legacy.rb, line 78 def self.export_expense_reports url, username, password, account_code = nil, numbers_after = nil, max_rows = nil # Prepare Params rparams = {} rparams['tns:MaxRowsToReturn'] = max_rows if max_rows rparams['tns:ExpenseReportNumbersAfter'] = numbers_after if numbers_after # Make the call with_auth(username, password, account_code, url) { |c, params| c.call(:export_expense_reports, params.merge(message: { request: { 'Parameters' => rparams } })).body[:export_expense_reports_response][:export_expense_reports_result][:data][:expense_reports][:expense_report] } end
export_resources(url, username, password, account_code = nil, max_rows = nil, include_inactive = false)
click to toggle source
Export Resources
# File lib/projector_pws/legacy.rb, line 54 def self.export_resources url, username, password, account_code = nil, max_rows = nil, include_inactive = false # Prepare Params rparams = {} rparams['tns:MaxRowsToReturn'] = max_rows if max_rows rparams['tns:IncludeInactiveFlag'] = include_inactive with_auth(username, password, account_code, url) { |c, params| c.call(:export_resources, params.merge(message: { request: { 'Parameters' => rparams } })).body[:export_resources_response][:export_resources_result][:data][:resources][:resource] } end
get_url(username, password, account_code = nil)
click to toggle source
Get URL for Account
# File lib/projector_pws/legacy.rb, line 49 def self.get_url username, password, account_code = nil with_auth(username, password, account_code) { |c, params| c.call(:get_web_service_url, params).body[:get_web_service_url_response][:get_web_service_url_result][:web_service_url] } end
open(url = BASE_URL) { |c| ... }
click to toggle source
Open Client
# File lib/projector_pws/legacy.rb, line 29 def self.open url = BASE_URL c = Savon.client soap_version: 2, wsdl: WSDL, endpoint: service_url(url), env_namespace: :soap return yield c if block_given? c end
service_url(base_url)
click to toggle source
Generate Service URL
# File lib/projector_pws/legacy.rb, line 90 def self.service_url base_url "#{base_url}/#{URL_PATH}" end
with_auth(username, password, account_code = nil, url = BASE_URL) { |c, { message: {}, soap_header: { 'tns:OpsAuthenticationHeader' => creds } }| ... }
click to toggle source
Pass with Authenticate
# File lib/projector_pws/legacy.rb, line 36 def self.with_auth username, password, account_code = nil, url = BASE_URL # Prepare Creds creds = {} creds['tns:AccountName'] = account_code if account_code creds['tns:EmailAddress'] = username creds['tns:Password'] = password # Open API open(url) { |c| yield c, { message: {}, soap_header: { 'tns:OpsAuthenticationHeader' => creds } } } end