function _opigno_tincan_activities_create_and_send_statements in Opigno TinCan API 3.x
Same name and namespace in other branches
- 8 modules/opigno_tincan_activities/opigno_tincan_activities.module \_opigno_tincan_activities_create_and_send_statements()
The main function for building tincan statement object for opigno activity.
Parameters
\Drupal\opigno_module\Entity\OpignoAnswerInterface $answer: Answer object.
Throws
\Exception
1 call to _opigno_tincan_activities_create_and_send_statements()
- opigno_tincan_activities_opigno_answer_insert in modules/
opigno_tincan_activities/ opigno_tincan_activities.module - Implements hook_ENTITY_TYPE_insert().
File
- modules/
opigno_tincan_activities/ opigno_tincan_activities.module, line 66 - Contains opigno_tincan_activities.module.
Code
function _opigno_tincan_activities_create_and_send_statements(OpignoAnswerInterface $answer) {
$opigno_module = $answer
->getModule();
$activity = $answer
->getActivity();
$statement_properties = opigno_tincan_activities_get_verb_and_definition_type($activity
->getType());
// Statement creation.
$statement = OpignoTinCanApiStatements::statementBaseCreation($statement_properties['verb'], $statement_properties['definition_type'], $activity);
if ($statement === FALSE) {
return;
}
// Learning path is the main group for activities.
$learning_path_id = OpignoGroupContext::getCurrentGroupId();
// Context creation.
$context = new Context();
OpignoTinCanApiStatements::contextSetParents($context, [
$opigno_module
->id(),
], OpignoTincanApiTinCanActivityDefinitionTypes::$module);
OpignoTinCanApiStatements::contextSetGrouping($context, [
$learning_path_id,
], OpignoTincanApiTinCanActivityDefinitionTypes::$group);
$language_id = $opigno_module
->language()
->getId();
OpignoTinCanApiStatements::contextSetLanguage($context, $language_id);
// Set result.
_opigno_tincan_activities_set_results($statement, $activity, $answer);
// Set statement context.
$statement
->setContext($context);
// Sending statement.
OpignoTinCanApiStatements::sendStatement($statement);
}