Class: CanvasFactory::Course

Inherits:
Object
  • Object
show all
Defined in:
lib/japanda/canvas_factory/course.rb

Overview

canvas course class

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}, merge = true) ⇒ Course

Returns a new instance of Course.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/japanda/canvas_factory/course.rb', line 7

def initialize(opts = {}, merge = true)
  @sections = []
  @modules = []
  @assignments = []
  @quizzes = []
  course_name_code = "auto#{SecureRandom.hex}"
  @course_request = {
    account_id: CANVAS_ACCOUNT_ID,
    course: {
      name: course_name_code,
      course_code: course_name_code,
      start_at: Time.now,
      end_at: Time.now + (30 * 24 * 60 * 60),
      license: 'public_domain',
      is_public: true,
      is_public_to_auth_users: false,
      public_syllabus: false,
      public_description: 'api created course',
      allow_student_wiki_edits: true,
      allow_wiki_comments: true,
      allow_student_forum_attachments: true,
      open_enrollment: true,
      self_enrollment: false,
      restrict_enrollments_to_course_dates: false,
      term_id: nil,
      # sis_course_id: '', # field is included only when user has permission to view SIS information
      # integration_id: '', # field is included only when user has permission to view SIS information
      hide_final_grades: true,
      apply_assignment_group_weights: false,
      syllabus_body: 'api syllabus',
      grading_standard_id: nil,
      course_format: 'online'
    },
    offer: true,
    enroll_me: false,
    enable_sis_reactivation: false
  }
  @course_request = Mergie.deep_merge(@course_request, opts, merge)
  create_course
end

Instance Attribute Details

#assignmentsObject (readonly)

Returns the value of attribute assignments.



4
5
6
# File 'lib/japanda/canvas_factory/course.rb', line 4

def assignments
  @assignments
end

#course_codeObject (readonly)

Returns the value of attribute course_code.



4
5
6
# File 'lib/japanda/canvas_factory/course.rb', line 4

def course_code
  @course_code
end

#course_idObject (readonly)

Returns the value of attribute course_id.



4
5
6
# File 'lib/japanda/canvas_factory/course.rb', line 4

def course_id
  @course_id
end

#course_nameObject (readonly)

Returns the value of attribute course_name.



4
5
6
# File 'lib/japanda/canvas_factory/course.rb', line 4

def course_name
  @course_name
end

#course_requestObject (readonly)

Returns the value of attribute course_request.



4
5
6
# File 'lib/japanda/canvas_factory/course.rb', line 4

def course_request
  @course_request
end

#course_responseObject (readonly)

Returns the value of attribute course_response.



4
5
6
# File 'lib/japanda/canvas_factory/course.rb', line 4

def course_response
  @course_response
end

#modulesObject (readonly)

Returns the value of attribute modules.



4
5
6
# File 'lib/japanda/canvas_factory/course.rb', line 4

def modules
  @modules
end

#quizzesObject (readonly)

Returns the value of attribute quizzes.



4
5
6
# File 'lib/japanda/canvas_factory/course.rb', line 4

def quizzes
  @quizzes
end

#sectionsObject (readonly)

Returns the value of attribute sections.



4
5
6
# File 'lib/japanda/canvas_factory/course.rb', line 4

def sections
  @sections
end

Instance Method Details

#add_assignment(opts = {}, merge = true) ⇒ Object



59
60
61
62
63
# File 'lib/japanda/canvas_factory/course.rb', line 59

def add_assignment(opts = {}, merge = true)
  assignment = CanvasFactory::Assignment.new(@course_id, opts, merge)
  @assignments << assignment
  assignment
end

#add_module(opts = {}, merge = true) ⇒ Object



53
54
55
56
57
# File 'lib/japanda/canvas_factory/course.rb', line 53

def add_module(opts = {}, merge = true)
  mod = CanvasFactory::Module.new(@course_id, opts, merge)
  @modules << mod
  mod
end

#add_quiz(opts = {}, merge = true) ⇒ Object



65
66
67
68
69
# File 'lib/japanda/canvas_factory/course.rb', line 65

def add_quiz(opts = {}, merge = true)
  quiz = CanvasFactory::Quiz.new(@course_id, opts, merge)
  @quizzes << quiz
  quiz
end

#add_section(opts = {}, merge = true) ⇒ Object



48
49
50
51
# File 'lib/japanda/canvas_factory/course.rb', line 48

def add_section(opts = {}, merge = true)
  section = CanvasFactory::Section.new(@course_id, opts, merge)
  @sections << section
end

#delete_courseObject



71
72
73
74
# File 'lib/japanda/canvas_factory/course.rb', line 71

def delete_course
  delete_end_point = "#{CANVAS_API_V1}/courses/#{@course_id}?event=delete"
  CanvasFactory.perform_delete(delete_end_point)
end