require_relative “../my_banner”
# namespace :my_banner do
task :parse_schedule do page = MyBanner::Schedule.new sections = page.sections puts "-----------------------" puts "SECTIONS: #{sections.count}" puts "-----------------------" sections.each do |section| puts "" puts "#{section.title.upcase}:" puts "" pp section.metadata puts "" end end # @example bundle exec rake create_calendars task :create_calendars do page = MyBanner::Schedule.new sections = page.sections puts "-----------------------" puts "SECTIONS: #{sections.count}" puts "-----------------------" sections.each do |section| puts "\nSECTION: #{section.abbreviation} (#{section.title})" service = MyBanner::CalendarService.new(section) calendar = service.calendar puts "\nCALENDAR: #{calendar.summary} (#{calendar.id})" meetings = section.meetings puts "\nMEETINGS: #{meetings.count}" meetings.each do |meeting| puts " + #{meeting.to_s}" end events = service.events puts "\nFUTURE EVENTS: #{events.count}" events.each do |event| event_start = event.start.date_time.try(:strftime, "%Y-%m-%d %H:%M") || event.start.date.try(:strftime, "%Y-%m-%d") event_end = event.end.date_time.try(:strftime, "%Y-%m-%d %H:%M") || event.end.date.try(:strftime, "%Y-%m-%d") puts " + #{event_start} ... #{event_end} (#{event.class})" end service.execute puts "\n-----------------------" end end # @example bundle exec rake clear_calendars task :clear_calendars do page = MyBanner::Schedule.new sections = page.sections sections.each do |section| service = MyBanner::CalendarService.new(section) service.send(:delete_events) end end # @example bundle exec rake create_spreadsheets task :create_spreadsheets do page = MyBanner::Schedule.new sections = page.sections puts "-----------------------" puts "SECTIONS: #{sections.count}" puts "-----------------------" sections.each do |section| puts "\nSECTION: #{section.abbreviation} (#{section.title.upcase})\n" course = section.course start_month = section.term_start.strftime("%Y%m") spreadsheet_title = "Gradebook - #{course} (#{start_month})" service = MyBanner::SpreadsheetService.new(spreadsheet_title) spreadsheet = service.spreadsheet puts "SPREADSHEET: #{spreadsheet.properties.title.upcase} (#{spreadsheet.spreadsheet_id})" puts "SHEETS:" spreadsheet.sheets.each do |sheet| grid_props = sheet.properties.grid_properties puts " + #{sheet.properties.title.upcase} (#{grid_props.row_count} rows x #{grid_props.column_count} cols)" end #puts "DATA:" #setter_response = service.update_values #getter_response = service.client.get_spreadsheet_values(spreadsheet.spreadsheet_id, setter_response.updated_range) #getter_response.values.each do |row| # puts " #{row.join(" | ")}" #end end end # @example bundle exec rake delete_spreadsheets task :delete_spreadsheets do page = MyBanner::Schedule.new sections = page.sections puts "-----------------------" puts "SECTIONS: #{sections.count}" puts "-----------------------" sections.each do |section| puts "\nSECTION: #{section.abbreviation} (#{section.title.upcase})\n" course = section.course start_month = section.term_start.strftime("%Y%m") spreadsheet_title = "Gradebook - #{course} (#{start_month})" service = MyBanner::SpreadsheetService.new(spreadsheet_title) spreadsheet = service.spreadsheet puts "SPREADSHEET: #{spreadsheet.properties.title.upcase} (#{spreadsheet.spreadsheet_id})" puts "DELETING..." service.send(:delete_spreadsheet) # temporary, helps to test file creation end end
end