Plugin: XAPI: Internal log accept statement ID null - refs BT#18201

pull/4376/head
Angel Fernando Quiroz Campos 3 years ago
parent 1284429650
commit dd515f2c62
  1. 3
      plugin/xapi/README.md
  2. 6
      plugin/xapi/src/Entity/InternalLog.php
  3. 25
      plugin/xapi/src/Lrs/Utils/InternalLogUtil.php

@ -77,7 +77,6 @@ To update, execute this queries:
CREATE TABLE xapi_internal_log (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, statement_id VARCHAR(255) NOT NULL, verb VARCHAR(255) NOT NULL, object_id VARCHAR(255) NOT NULL, activity_name VARCHAR(255) DEFAULT NULL, activity_description VARCHAR(255) DEFAULT NULL, score_scaled DOUBLE PRECISION DEFAULT NULL, score_raw DOUBLE PRECISION DEFAULT NULL, score_min DOUBLE PRECISION DEFAULT NULL, score_max DOUBLE PRECISION DEFAULT NULL, created_at DATETIME DEFAULT NULL, INDEX IDX_C1C667ACA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB;
ALTER TABLE xapi_internal_log ADD CONSTRAINT FK_C1C667ACA76ED395 FOREIGN KEY (user_id) REFERENCES user (id);
```
- asda
**From 0.3 (beta) [2021-11-11]**
@ -86,4 +85,6 @@ ALTER TABLE xapi_internal_log ADD CONSTRAINT FK_C1C667ACA76ED395 FOREIGN KEY (us
ALTER TABLE xapi_internal_log ADD CONSTRAINT FK_C1C667ACA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE;
ALTER TABLE xapi_tool_launch ADD CONSTRAINT FK_E18CB58391D79BD3 FOREIGN KEY (c_id) REFERENCES course (id) ON DELETE CASCADE;
ALTER TABLE xapi_tool_launch ADD CONSTRAINT FK_E18CB583613FECDF FOREIGN KEY (session_id) REFERENCES session (id) ON DELETE CASCADE;
ALTER TABLE xapi_internal_log CHANGE statement_id statement_id varchar(255) NULL;
```

@ -30,7 +30,7 @@ class InternalLog
/**
* @var string
*
* @ORM\Column(name="statement_id", type="string")
* @ORM\Column(name="statement_id", type="string", nullable=true)
*/
private $statementId;
/**
@ -105,12 +105,12 @@ class InternalLog
return $this;
}
public function getStatementId(): string
public function getStatementId(): ?string
{
return $this->statementId;
}
public function setStatementId(string $statementId): InternalLog
public function setStatementId(?string $statementId): InternalLog
{
$this->statementId = $statementId;

@ -22,23 +22,24 @@ class InternalLogUtil
return;
}
$internalLog = new InternalLog();
$internalLog->setUser($user);
$languageIso = api_get_language_isocode();
$internalLog->setVerb(
XApiPlugin::extractVerbInLanguage($statement->getVerb()->getDisplay(), $languageIso)
);
$statementObject = $statement->getObject();
if (!$statementObject instanceof Activity) {
return;
}
$internalLog->setObjectId($statementObject->getId()->getValue());
$internalLog->setStatementId($statement->getId()->getValue());
$languageIso = api_get_language_isocode();
$statementVerbString = XApiPlugin::extractVerbInLanguage($statement->getVerb()->getDisplay(), $languageIso);
$internalLog = new InternalLog();
$internalLog
->setUser($user)
->setVerb($statementVerbString)
->setObjectId($statementObject->getId()->getValue());
if (null !== $statementId = $statement->getId()) {
$internalLog->setStatementId($statementId->getValue());
}
if (null !== $definition = $statementObject->getDefinition()) {
if (null !== $nameInLanguages = $definition->getName()) {
@ -81,7 +82,7 @@ class InternalLogUtil
$em->flush();
}
private static function getUserFromActor(Actor $actor)
private static function getUserFromActor(Actor $actor): ?object
{
if (!$actor instanceof Agent) {
return null;

Loading…
Cancel
Save