Module: ProjectorPWS::Legacy
- Defined in:
- lib/projector_pws/legacy.rb
Overview
Legacy Module: Provides access to Legacy Web Services
Constant Summary collapse
- WSDL =
Service Definition
'https://secure.projectorpsa.com/OpsProjectorWebSvc/OpsProjectorSvc.asmx?wsdl'
- URL_PATH =
URL Path
'OpsProjectorWebSvc/OpsProjectorSvc.asmx'
- BASE_URL =
Base URL
'https://secure.projectorpsa.com'
Class Method Summary collapse
-
.export_cost_cards(url, username, password, account_code = nil, min_date = nil, max_date = nil, max_rows = nil) ⇒ Object
Export Cost Cards.
-
.export_expense_reports(url, username, password, account_code = nil, numbers_after = nil, max_rows = nil) ⇒ Object
Export Expense Reports.
-
.export_resources(url, username, password, account_code = nil, max_rows = nil, include_inactive = false) ⇒ Object
Export Resources.
-
.get_url(username, password, account_code = nil) ⇒ Object
Get URL for Account.
-
.open(url = BASE_URL) ⇒ Object
Open Client.
-
.service_url(base_url) ⇒ Object
Generate Service URL.
-
.with_auth(username, password, account_code = nil, url = BASE_URL) ⇒ Object
Pass with Authenticate.
Class Method Details
.export_cost_cards(url, username, password, account_code = nil, min_date = nil, max_date = nil, max_rows = nil) ⇒ Object
Export Cost Cards
65 66 67 68 69 70 71 72 73 74 75 |
# 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) ⇒ Object
Export Expense Reports
78 79 80 81 82 83 84 85 86 87 |
# 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) ⇒ Object
Export Resources
54 55 56 57 58 59 60 61 62 |
# 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) ⇒ Object
Get URL for Account
49 50 51 |
# 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) ⇒ Object
Open Client
29 30 31 32 33 |
# 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) ⇒ Object
Generate Service URL
90 91 92 |
# 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) ⇒ Object
Pass with Authenticate
36 37 38 39 40 41 42 43 44 45 46 |
# 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 |