class PupilfirstXapi::Statements::TargetCompleted

Public Class Methods

new(repository, uri_for) click to toggle source
# File lib/pupilfirst_xapi/statements/target_completed.rb, line 4
def initialize(repository, uri_for)
  @repository = repository
  @uri_for = uri_for
end

Public Instance Methods

call(actor_id:, resource_id:) click to toggle source
# File lib/pupilfirst_xapi/statements/target_completed.rb, line 9
def call(actor_id:, resource_id:)
  submission = @repository.call(:timeline_event, resource_id)
  return unless submission.passed?

  actor = @repository.call(:user, actor_id)
  target = submission.target

  Xapi.create_statement(
    actor: Actors.agent(actor),
    verb: Verbs::COMPLETED_ASSIGNMENT,
    object: Objects.target(target, @uri_for)
  )
end