Class: Learndot::Courses

Inherits:
Object
  • Object
show all
Defined in:
lib/learndot/courses.rb

Instance Method Summary collapse

Constructor Details

#initialize(api) ⇒ Courses

Returns a new instance of Courses.



2
3
4
# File 'lib/learndot/courses.rb', line 2

def initialize(api)
  @api = api
end

Instance Method Details

#enrolled(course_id) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/learndot/courses.rb', line 38

def enrolled(course_id)
  enrollments = @api.search(:enrolment, { 'componentId' => [course_id] })
  return [] if enrollments.empty?

  conditions = {
    'id'     => enrollments.collect { | k, cs | cs['id'] },
  }
  enrollments = @api.search(:enrolment, conditions)
  return [] if enrollments.empty?

  conditions = {
    'id'     => enrollments.collect { | k, cs | cs['contactId'] },
  }
  contacts = @api.search(:contact, conditions)

  contacts.collect do | k, cs |
    { :id => cs['id'], :name => cs['_displayName_'], :email => cs['email'] }
  end
end

#enrollment_count(course_id) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/learndot/courses.rb', line 24

def enrollment_count(course_id)
  enrollments = @api.search(:enrolment, { 'componentId' => [course_id] })

  if ! enrollments.empty?
    enrollment_ids         = enrollments.collect { | k, cs | cs['id'] }
    enrollment_conditions = {
      'id'     => enrollment_ids,
    }
    count = @api.count('enrolment', enrollment_conditions)
  end

  return count || 0
end

#retrieve(conditions, options = {orderBy: 'Name', asc: true}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/learndot/courses.rb', line 6

def retrieve(conditions, options = {orderBy: 'Name', asc: true})
  courses = @api.search(:learning_component, conditions, options)

  if !courses.empty?
    course_ids    = courses.collect { | k, c | c['id']    }.uniq

    courses    = @api.search(:learning_component,   { 'id' => course_ids    })

    courses.collect do | course_id, course |
      course[:id]           = course['id']
      course[:name]         = course['name']
      course[:components]   = course['components']

      course
    end
  end
end