$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.'