XAPI: Don't send statement already sent - refs BT#16742

pull/3680/head
Angel Fernando Quiroz Campos 5 years ago
parent 4f3f17a7d2
commit b837dd4651
  1. 18
      plugin/xapi/src/Hook/XApiActivityHookObserver.php
  2. 4
      plugin/xapi/src/Hook/XApiLearningPathEndHook.php

@ -133,4 +133,22 @@ abstract class XApiActivityHookObserver extends HookObserver
return $context->withPlatform($platform);
}
/**
* @param \Xabbuh\XApi\Model\Statement $statement
*
* @return bool
*/
protected function isStatementAlreadySent(Statement $statement)
{
$sharedStmt = Database::getManager()
->getRepository(SharedStatement::class)
->findOneByUuid($statement->getId()->getValue());
if ($sharedStmt) {
return true;
}
return false;
}
}

@ -51,6 +51,10 @@ class XApiLearningPathEndHook extends XApiActivityHookObserver implements HookLe
$statement = $this->createStatement();
if ($this->isStatementAlreadySent($statement)) {
return;
}
try {
$statement = $this->sendStatementToLrs($statement);

Loading…
Cancel
Save