class MyBanner::SpreadsheetService

Attributes

spreadsheet_title[R]

Public Class Methods

new(spreadsheet_title) click to toggle source
# File lib/my_banner/spreadsheet_service.rb, line 9
def initialize(spreadsheet_title)
  @spreadsheet_title = spreadsheet_title
  #@sheet_name = "roster-todo" # todo: "roster-#{Date.today.to_s}"
  #@sheet_values = [["email", "registration_number", "net_id"]] + 27.times.map { |i| ["student#{i+1}@todo.edu", i+1, "student#{i+1}"] } # todo: get from roster
end

Public Instance Methods

client() click to toggle source
# File lib/my_banner/spreadsheet_service.rb, line 36
def client
  @client ||= SpreadsheetClient.new
end
drive_client() click to toggle source
# File lib/my_banner/spreadsheet_service.rb, line 64
def drive_client
  @drive_client ||= DriveClient.new
end
file_list() click to toggle source

@return Google::Apis::DriveV3::FileList

# File lib/my_banner/spreadsheet_service.rb, line 57
def file_list
  @file_list ||= begin
    request_options = {q: "mimeType='application/vnd.google-apps.spreadsheet'", order_by: "createdTime desc", page_size: 25}
    drive_client.list_files(request_options)
  end
end
new_spreadsheet() click to toggle source
# File lib/my_banner/spreadsheet_service.rb, line 40
def new_spreadsheet
  #roster_sheet = Google::Apis::SheetsV4::Sheet.new(properties: {title: sheet_name, sheet_type: "GRID"})
  #new_spreadsheet_attrs = { properties: {title: spreadsheet_title}, sheets: [roster_sheet] }
  new_spreadsheet_attrs = { properties: { title: spreadsheet_title } }
  Google::Apis::SheetsV4::Spreadsheet.new(new_spreadsheet_attrs)
end
spreadsheet() click to toggle source

@return Google::Apis::SheetsV4::Spreadsheet

# File lib/my_banner/spreadsheet_service.rb, line 28
def spreadsheet
  @spreadsheet ||= if spreadsheet_file
    client.get_spreadsheet(spreadsheet_file.id)
  else
    client.create_spreadsheet(new_spreadsheet)
  end
end
spreadsheet_file() click to toggle source

@return Google::Apis::DriveV3::File

# File lib/my_banner/spreadsheet_service.rb, line 52
def spreadsheet_file
  file_list.files.find { |f| f.name == spreadsheet_title }
end

Private Instance Methods

delete_spreadsheet() click to toggle source
# File lib/my_banner/spreadsheet_service.rb, line 70
def delete_spreadsheet # DANGER!
  drive_client.delete_file(spreadsheet.spreadsheet_id)
end