19 declare(strict_types=1);
32 public const JOB_ID =
'xapi_deletion_cron';
40 private \ILIAS\DI\Container
$dic;
47 $DIC->language()->loadLanguageModule(
'cmix');
52 $lrsTypeId =
$settings->get(
'lrs_type_id',
'0');
57 $this->lrsType = null;
70 return $this->dic->language()->txt(
"cron_xapi_del");
75 return $this->dic->language()->txt(
"cron_xapi_del_desc");
96 return CronJobScheduleType::SCHEDULE_TYPE_DAILY;
118 $this->log->debug(
'run');
162 $newDeletedObjects = $this->model->getNewDeletedXapiObjects();
165 $deletedObjectData = array();
167 foreach ($newDeletedObjects as $deletedObject) {
168 $this->log->debug(
"delete for " . (
string)$deletedObject[
'obj_id']);
170 $this->model->setXapiObjAsUpdated($deletedObject[
'obj_id']);
173 (
int) $deletedObject[
'obj_id'],
174 (
int) $deletedObject[
'type_id'],
175 (
string) $deletedObject[
'activity_id'],
179 $done = $deleteRequest->delete();
183 $this->log->debug(
"deleted data for object: " . (
string)$deletedObject[
'obj_id']);
184 $deletedObjectData[] = $deletedObject[
'obj_id'];
185 $this->model->deleteXapiObjectEntry($deletedObject[
'obj_id']);
187 $this->log->debug(
"error: delete data for object: " . (
string) $deletedObject[
'obj_id']);
188 $this->model->resetUpdatedXapiObj($deletedObject[
'obj_id']);
195 $newDeletedUsers = $this->model->getNewDeletedUsers();
196 foreach ($newDeletedUsers as $deletedUser) {
197 $usrId = $deletedUser[
'usr_id'];
198 $objId = $deletedUser[
'obj_id'];
200 $this->model->setUserAsUpdated($usrId);
201 $xapiObject = $this->model->getXapiObjectData(
$objId);
203 if (in_array(
$objId, $deletedObjectData)) {
204 $this->log->debug(
"nothing to do, because of complete object data deletion in previous step");
209 (
int) $xapiObject[
'lrs_type_id'],
210 (
string) $xapiObject[
'activity_id'],
214 $done = $deleteRequest->delete();
217 $this->model->deleteUserEntry($usrId, $objId);
218 $this->log->debug(
"deleted object " . (
string) $objId .
" data for user " . (
string) $usrId);
220 $this->log->debug(
"error deleting object " . (
string) $objId .
" data for user " . (
string) $usrId);
221 $this->model->resetUpdatedXapiUser($usrId, $objId);
static getLogger(string $a_component_id)
Get component logger.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
hasAutoActivation()
@inheritdoc
Class ilCmiXapiStatementsDeleteRequest.
hasFlexibleSchedule()
@inheritdoc
ilCmiXapiLrsType $lrsType
getDefaultScheduleValue()