module ProjectorPWS::Legacy

Legacy Module: Provides access to Legacy Web Services

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