Sha256: 6d81ddeb1413f31cce3008e8c3b033b1664352e767f96f8f474c01765dc8ced3

Contents?: true

Size: 1.25 KB

Versions: 1

Compression:

Stored size: 1.25 KB

Contents

$stdout.sync = true

require_relative '../lib/help-desk-dashboard/app_config'
require_relative '../lib/help-desk-dashboard/extensions'
require_relative '../lib/help-desk-dashboard/provider_factory'
require_relative '../lib/help-desk-dashboard/web_generator'

ENV['HTTP_PROXY'] = nil
ENV['CONFIG_FILE'] ||= 'config.json'
config = AppConfig.from_file ENV['CONFIG_FILE']

provider_factory = ProviderFactory.new
provider = provider_factory.create config[:provider]
requests = provider.get_requests(config.users_with_password, threads: config[:threads]).map do |r|
  r.pick :id, :title, :status, :deadline, :assigned_to, :submitted_by, :submitted_on, :resolved_on
end

requests_by_submitter = requests.group_by { |r| r[:submitted_by] }

teams = config[:teams].map do |team|
  {
      team_name: team[:name],
      title: "#{team[:name]} Help Desk Requests",
      requests: team[:members].map { |username| requests_by_submitter[username] }.flatten
  }
end

requests.each do |r|
  user = config[:users].find { |u| u[:username] == r[:assigned_to] }
  r[:assigned_to] = user[:name] if user
  user = config[:users].find { |u| u[:username] == r[:submitted_by] }
  r[:submitted_by] = user[:name] if user
end

generator = WebGenerator.new config[:output_dir]
generator.generate teams

puts 'Done.'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
help_desk_dashboard-0.0.3 bin/help_desk_dashboard.rb