getRepository(SharedStatement::class) ->findBy( ['uuid' => null, 'sent' => false], null, 100 ); $countNotSent = count($notSentSharedStatements); if ($countNotSent > 0) { echo '['.time().'] Trying to send '.$countNotSent.' statements to LRS'.PHP_EOL; $client = XApiPlugin::create()->getXapiStatementCronClient(); /** @var SharedStatement $notSentSharedStatement */ foreach ($notSentSharedStatements as $notSentSharedStatement) { $notSentStatement = $statementSerializer->deserializeStatement( json_encode($notSentSharedStatement->getStatement()) ); if (null == $notSentStatement->getId()) { $notSentStatement = $notSentStatement->withId( StatementId::fromUuid(Uuid::uuid4()) ); } try { echo '['.time()."] Sending shared statement ({$notSentSharedStatement->getId()})"; $sentStatement = $client->storeStatement($notSentStatement); echo "\t\tStatement ID received: \"{$sentStatement->getId()->getValue()}\""; } catch (ConflictException $e) { echo $e->getMessage().PHP_EOL; continue; } catch (XApiException $e) { echo $e->getMessage().PHP_EOL; continue; } $notSentSharedStatement ->setUuid($sentStatement->getId()->getValue()) ->setSent(true); $em->persist($notSentSharedStatement); echo "\t\tShared statement updated".PHP_EOL; } $em->flush(); } else { echo 'No statements to process.'.PHP_EOL; }