Module: GradesService

Defined in:
app/services/grades_service.rb,
app/services/grades_service/account.rb,
app/services/grades_service/queries/zero_grader_submissions.rb,
app/services/grades_service/commands/zero_out_assignment_grades.rb,
app/services/grades_service/commands/zero_out_assignment_grades_rollback.rb

Defined Under Namespace

Modules: Account, Commands, Queries

Class Method Summary collapse

Class Method Details

.save_audit(options) ⇒ Object



22
23
24
25
26
27
# File 'app/services/grades_service.rb', line 22

def self.save_audit(options)
  return if options[:dry_run]
  s3 = Aws::S3::Resource.new(region: ENV['AWS_REGION'], access_key_id: ENV['S3_ACCESS_KEY_ID'], secret_access_key: ENV['S3_ACCESS_KEY'])
  obj = s3.bucket(ENV['S3_BUCKET_NAME']).object('zero_grader/' + options[:log_file])
  obj.upload_file('/tmp/' + options[:log_file])
end

.submissionsObject



18
19
20
# File 'app/services/grades_service.rb', line 18

def self.submissions
  Queries::ZeroGraderSubmissions.new.query
end

.zero_out_grades!(options = {}) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'app/services/grades_service.rb', line 4

def self.zero_out_grades!(options={})
  settings = SettingsService.get_settings(object: :school, id: 1)
  return unless settings
  return unless settings['zero_out_past_due'] == 'on'

  options[:log_file] = 'zero_grader_audit_' + Time.now.strftime('%Y%m%d%H%M') + '.csv'
  FileUtils.touch('/tmp/' + options[:log_file])

  submissions.find_each do |submission|
    Commands::ZeroOutAssignmentGrades.new(submission).call!(options)
  end
  save_audit(options)
end