Class: CanvasFactory::Module

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

Overview

canvas module class

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

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



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/japanda/canvas_factory/module.rb', line 7

def initialize(course_id, opts = {}, merge = true)
  @module_items = []
  @course_id = course_id
  @request = {
    module: {
      name: "module-#{Time.now.to_i}",
      unlock_at: DateTime.now.iso8601,
      require_sequential_progress: true
    }
  }
  @request = Mergie.deep_merge(@request, opts, merge)
  create_module
  self
end

Instance Attribute Details

#course_idObject (readonly)

Returns the value of attribute course_id.



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

def course_id
  @course_id
end

#module_idObject (readonly)

Returns the value of attribute module_id.



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

def module_id
  @module_id
end

#module_itemsObject (readonly)

Returns the value of attribute module_items.



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

def module_items
  @module_items
end

#nameObject (readonly)

Returns the value of attribute name.



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

def name
  @name
end

#publish_requestObject (readonly)

Returns the value of attribute publish_request.



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

def publish_request
  @publish_request
end

#publish_responseObject (readonly)

Returns the value of attribute publish_response.



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

def publish_response
  @publish_response
end

#publishedObject (readonly)

Returns the value of attribute published.



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

def published
  @published
end

#requestObject (readonly)

Returns the value of attribute request.



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

def request
  @request
end

#responseObject (readonly)

Returns the value of attribute response.



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

def response
  @response
end

Instance Method Details

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

content can be assignment or quiz …



22
23
24
25
26
# File 'lib/japanda/canvas_factory/module.rb', line 22

def add_module_item(content, opts = {}, merge = true) # content can be assignment or quiz ...
  module_item = CanvasFactory::ModuleItem.new(@course_id, @module_id, content, opts, merge)
  @module_items << module_item
  module_item
end

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



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/japanda/canvas_factory/module.rb', line 28

def publish(opts = {}, merge = true)
  @publish_request = {
    module: {
      published: true
    }
  }
  @publish_request = Mergie.deep_merge(@publish_request, opts, merge)
  publish_ep = "#{CANVAS_API_V1}/courses/#{@course_id}/modules/#{@module_id}"
  @publish_response = CanvasFactory.perform_put(publish_ep, @publish_request)
  @published = @publish_response['published']
end