19declare(strict_types=1);
34 public const JOB_ID =
'xapi_deletion_cron';
42 private \ILIAS\DI\Container
$dic;
49 $DIC->language()->loadLanguageModule(
'cmix');
54 $lrsTypeId = $settings->get(
'lrs_type_id',
'0');
59 $this->lrsType =
null;
72 return $this->dic->language()->txt(
"cron_xapi_del");
77 return $this->dic->language()->txt(
"cron_xapi_del_desc");
98 return JobScheduleType::DAILY;
120 $this->log->debug(
'run');
164 $newDeletedObjects = $this->model->getNewDeletedXapiObjects();
167 $deletedObjectData = array();
169 foreach ($newDeletedObjects as $deletedObject) {
170 $this->log->debug(
"delete for " . (
string) $deletedObject[
'obj_id']);
172 $this->model->setXapiObjAsUpdated($deletedObject[
'obj_id']);
175 (
int) $deletedObject[
'obj_id'],
176 (
int) $deletedObject[
'type_id'],
177 (
string) $deletedObject[
'activity_id'],
181 $done = $deleteRequest->delete();
185 $this->log->debug(
"deleted data for object: " . (
string) $deletedObject[
'obj_id']);
186 $deletedObjectData[] = $deletedObject[
'obj_id'];
187 $this->model->deleteXapiObjectEntry($deletedObject[
'obj_id']);
189 $this->log->debug(
"error: delete data for object: " . (
string) $deletedObject[
'obj_id']);
190 $this->model->resetUpdatedXapiObj($deletedObject[
'obj_id']);
197 $newDeletedUsers = $this->model->getNewDeletedUsers();
198 foreach ($newDeletedUsers as $deletedUser) {
199 $usrId = $deletedUser[
'usr_id'];
200 $objId = $deletedUser[
'obj_id'];
202 $this->model->setUserAsUpdated($usrId);
203 $xapiObject = $this->model->getXapiObjectData(
$objId);
205 if (in_array(
$objId, $deletedObjectData)) {
206 $this->log->debug(
"nothing to do, because of complete object data deletion in previous step");
211 (
int) $xapiObject[
'lrs_type_id'],
212 (
string) $xapiObject[
'activity_id'],
216 $done = $deleteRequest->delete();
219 $this->model->deleteUserEntry($usrId,
$objId);
220 $this->log->debug(
"deleted object " . (
string)
$objId .
" data for user " . (
string) $usrId);
222 $this->log->debug(
"error deleting object " . (
string)
$objId .
" data for user " . (
string) $usrId);
223 $this->model->resetUpdatedXapiUser($usrId,
$objId);
229 $cronResult->setStatus(JobResult::STATUS_OK);
231 $cronResult->setStatus(JobResult::STATUS_FAIL);
ilCmiXapiLrsType $lrsType
hasAutoActivation()
@inheritdoc
getDefaultScheduleValue()
hasFlexibleSchedule()
@inheritdoc
Class ilCmiXapiStatementsDeleteRequest.
static getLogger(string $a_component_id)
Get component logger.
Component logger with individual log levels by component id.