class EdoolsSdk::Course

Course class

Constants

COURSE_URL

Attributes

created_at[RW]
description[RW]
duration[RW]
forum_section_ids[RW]
id[RW]
image_url[RW]
library_resource[RW]
linear_requirements[RW]
name[RW]
path_ids[RW]
ready[RW]
updated_at[RW]

Public Class Methods

all() click to toggle source

Get all courses

Example:

>> Course.all!
=> [#<EdoolsSdk::Course:0x00000001aef0c8 @id=21530, @name="test 4", @description=nil, @image_url=nil, @duration=nil, @ready=nil, @path_ids=[], @forum_section_ids=[], @linear_requirements=nil, @library_resource={"id"=>1152227, "library"=>{"id"=>572}, "library_tags"=>[], "school_products"=>[]}, @created_at=#<Date: 2017-09-25 ((2458022j,0s,0n),+0s,2299161j)>, @updated_at=#<Date: 2017-09-25 ((2458022j,0s,0n),+0s,2299161j)>>]
# File lib/edools_sdk/course.rb, line 83
def self.all
  response = HTTP
    .headers('Authorization' => "Token token=\"#{ENV['edools_token']}\"")
    .get(COURSE_URL)

  return response if response.status >= 400 && response.status < 600

  body = response.parse(:json)

  body['courses'].map { |c| Course.parse_json(c) }
end
all!() click to toggle source

Get all courses, if anything goes wrong an exception will be raised

Example:

>> Course.all!
=> [#<EdoolsSdk::Course:0x00000001aef0c8 @id=21530, @name="test 4", @description=nil, @image_url=nil, @duration=nil, @ready=nil, @path_ids=[], @forum_section_ids=[], @linear_requirements=nil, @library_resource={"id"=>1152227, "library"=>{"id"=>572}, "library_tags"=>[], "school_products"=>[]}, @created_at=#<Date: 2017-09-25 ((2458022j,0s,0n),+0s,2299161j)>, @updated_at=#<Date: 2017-09-25 ((2458022j,0s,0n),+0s,2299161j)>>]
# File lib/edools_sdk/course.rb, line 66
def self.all!
  response = HTTP
    .headers('Authorization' => "Token token=\"#{ENV['edools_token']}\"")
    .get(COURSE_URL)

  raise "invalid status code #{response.status}" if response.status >= 400 && response.status < 600

  body = response.parse(:json)

  body['courses'].map { |c| Course.parse_json(c) }
end
create(props) click to toggle source

Create a course

Example:

>> Course.create("name" => "test")
=> #<EdoolsSdk::Course:0x00000001aef0c8 @id=21530, @name="test", @description=nil, @image_url=nil, @duration=nil, @ready=nil, @path_ids=[], @forum_section_ids=[], @linear_requirements=nil, @library_resource={"id"=>1152227, "library"=>{"id"=>572}, "library_tags"=>[], "school_products"=>[]}, @created_at=#<Date: 2017-09-25 ((2458022j,0s,0n),+0s,2299161j)>, @updated_at=#<Date: 2017-09-25 ((2458022j,0s,0n),+0s,2299161j)>>
# File lib/edools_sdk/course.rb, line 159
def self.create(props)
  response = HTTP
    .headers('Authorization' => "Token token=\"#{ENV['edools_token']}\"")
    .post(COURSE_URL, :json => props)

  return response if response.status != 201

  body = response.parse(:json)

  Course.parse_json(body)
end
create!(props) click to toggle source

Create a course, if anything goes wrong an exception will be raised

Example:

>> Course.create!("name" => "test")
=> #<EdoolsSdk::Course:0x00000001aef0c8 @id=21530, @name="test", @description=nil, @image_url=nil, @duration=nil, @ready=nil, @path_ids=[], @forum_section_ids=[], @linear_requirements=nil, @library_resource={"id"=>1152227, "library"=>{"id"=>572}, "library_tags"=>[], "school_products"=>[]}, @created_at=#<Date: 2017-09-25 ((2458022j,0s,0n),+0s,2299161j)>, @updated_at=#<Date: 2017-09-25 ((2458022j,0s,0n),+0s,2299161j)>>
# File lib/edools_sdk/course.rb, line 142
def self.create!(props)
  response = HTTP
    .headers('Authorization' => "Token token=\"#{ENV['edools_token']}\"")
    .post(COURSE_URL, :json => props)

  raise "invalid status code #{response.status}" if response.status != 201

  body = response.parse(:json)

  Course.parse_json(body)
end
new() click to toggle source
# File lib/edools_sdk/course.rb, line 22
def initialize
  @id = nil
  @name = nil
  @description = nil
  @image_url = nil
  @duration = nil
  @ready = nil
  @path_ids = nil
  @forum_section_ids = nil
  @linear_requirements = nil
  @library_resource = nil
  @created_at = nil
  @updated_at = nil
end
parse_json(props) click to toggle source

Parse json to Course object

# File lib/edools_sdk/course.rb, line 38
def self.parse_json(props)
  course = Course.new
  course.id = props['id']
  course.name = props['name']
  course.description = props['description']
  course.image_url = props['image_url']
  course.duration = props['duration']
  course.ready = props['ready']
  course.path_ids = props['path_ids']
  course.forum_section_ids = props['forum_section_ids']
  course.linear_requirements = props['linear_requirements']
  course.library_resource = props['library_resource']

  unless props['created_at'].nil?
    course.created_at = Date.parse(props['created_at'])
  end
  unless props['updated_at'].nil?
    course.updated_at = Date.parse(props['updated_at'])
  end

  course
end

Public Instance Methods

save() click to toggle source

Save a course

Example:

>> course_instance.save
=> #<EdoolsSdk::Course:0x00000001aef0c8 @id=21530, @name="test 4", @description=nil, @image_url=nil, @duration=nil, @ready=nil, @path_ids=[], @forum_section_ids=[], @linear_requirements=nil, @library_resource={"id"=>1152227, "library"=>{"id"=>572}, "library_tags"=>[], "school_products"=>[]}, @created_at=#<Date: 2017-09-25 ((2458022j,0s,0n),+0s,2299161j)>, @updated_at=#<Date: 2017-09-25 ((2458022j,0s,0n),+0s,2299161j)>>
# File lib/edools_sdk/course.rb, line 121
def save
  response = HTTP
    .headers('Authorization' => "Token token=\"#{ENV['edools_token']}\"")
    .post(COURSE_URL, :json => self.to_h)

  return response if response.status != 201

  body = response.parse(:json)

  course_saved = Course.parse_json(body)

  change_values(course_saved)

  course_saved
end
save!() click to toggle source

Save a course, if anything goes wrong an exception will be raised

Example:

>> course_instance.save!
=> #<EdoolsSdk::Course:0x00000001aef0c8 @id=21530, @name="test 4", @description=nil, @image_url=nil, @duration=nil, @ready=nil, @path_ids=[], @forum_section_ids=[], @linear_requirements=nil, @library_resource={"id"=>1152227, "library"=>{"id"=>572}, "library_tags"=>[], "school_products"=>[]}, @created_at=#<Date: 2017-09-25 ((2458022j,0s,0n),+0s,2299161j)>, @updated_at=#<Date: 2017-09-25 ((2458022j,0s,0n),+0s,2299161j)>>
# File lib/edools_sdk/course.rb, line 100
def save!
  response = HTTP
    .headers('Authorization' => "Token token=\"#{ENV['edools_token']}\"")
    .post(COURSE_URL, :json => self.to_h)

  raise "invalid status code #{response.status}" if response.status != 201

  body = response.parse(:json)

  course_saved = Course.parse_json(body)

  change_values(course_saved)

  course_saved
end

Private Instance Methods

change_values(course) click to toggle source
# File lib/edools_sdk/course.rb, line 173
def change_values(course)
  @id = course.id
  @name = course.name
  @description = course.description
  @image_url = course.image_url
  @duration = course.duration
  @ready = course.ready
  @path_ids = course.path_ids
  @forum_section_ids = course.forum_section_ids
  @linear_requirements = course.linear_requirements
  @library_resource = course.library_resource
  @created_at = course.created_at
  @updated_at = course.updated_at
end