Module: ScormEngine::Api::Endpoints::Courses::Import

Included in:
ScormEngine::Api::Endpoints
Defined in:
lib/scorm_engine/api/endpoints/courses/import.rb

Instance Method Summary collapse

Instance Method Details

#get_course_import(options = {}) ⇒ ScormEngine::Models::CourseImport

This method will check the status of a course import.

Parameters:

  • options (Hash) (defaults to: {})

Options Hash (options):

  • :id (String)

    The id of the import to check.

Returns:

See Also:



69
70
71
72
73
74
75
76
77
78
# File 'lib/scorm_engine/api/endpoints/courses/import.rb', line 69

def get_course_import(options = {})
  require_options(options, :id)

  response = get("courses/importJobs/#{options[:id]}")

  # jobId is not always returned. :why:
  result = response&.success? ? ScormEngine::Models::CourseImport.new_from_api({ "jobId" => options[:id] }.merge(response.body)) : nil

  Response.new(raw_response: response, result: result)
end

#post_course_import(options = {}) ⇒ ScormEngine::Models::CourseImport

Import a course

Either the actual contents of the zip file to import may be posted, or JSON that references the remote location to import from.

Parameters:

  • options (Hash) (defaults to: {})

Options Hash (options):

  • :url (String)

    URL path to the .zip package representing the course or the manifest file defining the course.

  • :course_id (String)

    A unique identifier your application will use to identify the course after import. Your application is responsible both for generating this unique ID and for keeping track of the ID for later use.

  • :may_create_new_version (Boolean) — default: false

    Is it OK to create a new version of this course? If this is set to false and the course already exists, the upload will fail. If true and the course already exists then a new version will be created. No effect if the course doesn’t already exist.

  • :name (String) — default: value of :course

    A unique identifier that may be used as part of the directory name on disk.

Returns:

See Also:



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

def post_course_import(options = {})
  require_options(options, :course_id, :url)

  query_params = {
    course: options[:course_id],
    mayCreateNewVersion: !!options[:may_create_new_version]
  }

  body = {
    url: options[:url],
    courseName: options[:name] || options[:course_id]
  }

  response = post("courses/importJobs", query_params, body)

  result = response&.success? ? ScormEngine::Models::CourseImport.new_from_api(response.body) : nil

  Response.new(raw_response: response, result: result)
end