Sha256: e72845573f07f23c33e800d0c9b4b38cfe8fb3755a1942c75c9631d6a0b59b30

Contents?: true

Size: 969 Bytes

Versions: 3

Compression:

Stored size: 969 Bytes

Contents

class UserOperations

  def initialize(b, navigator)
    @b = b
    @navigator = navigator
  end

  def login(user)
    @navigator.goto 'hd/index.ssp'
    @b.text_field(name: 'user_id').set user['username']
    @b.text_field(name: 'user_pwd').set user['password']
    @b.button(value: 'Log on').click
  end

  def get_request_ids(users)
    users = [users].flatten
    request_ids = users.map do |user|
      login user
      @navigator.goto 'hd/ticket/euTicketFind.ssp'
      @b.button(value: 'Find').click
      request_locations = get_request_locations
      request_locations.map { |l| l.match(/ticket_id=(\d+)/)[1].to_i }
    end
    request_ids.flatten
  end

  private

  def get_request_locations
    links = []
    5.times do
      links = @b.links(href: /euTicketView\.ssp\?ticket_id=/).to_a
      break unless links.empty?
      sleep 2
    end
    puts "No requests found.\n\n#{@b.html}" if links.empty?
    links.map { |link| link.href }.reverse
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
help_desk_dashboard-0.0.3 lib/help-desk-dashboard/providers/track-it/2003.10.1/user_operations.rb
help_desk_dashboard-0.0.2 lib/help-desk-dashboard/providers/track-it/2003.10.1/user_operations.rb
help_desk_dashboard-0.0.1 lib/help-desk-dashboard/providers/track-it/2003.10.1/user_operations.rb