ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ILIAS\Certificate\API\UserCertificateAPI Class Reference
+ Inheritance diagram for ILIAS\Certificate\API\UserCertificateAPI:
+ Collaboration diagram for ILIAS\Certificate\API\UserCertificateAPI:

Public Member Functions

 __construct (?UserDataRepository $user_data_repository=null, ?ilCertificateTemplateRepository $template_repository=null, ?ilCertificateQueueRepository $queue_repository=null, ?ilCertificateTypeClassMap $type_class_map=null, ?ilLogger $logger=null, ?ilObjectDataCache $object_data_cache=null,)
 
 getUserCertificateData (UserDataFilter $filter, array $ilCtrlStack=[])
 
 getUserCertificateDataMaxCount (UserDataFilter $filter)
 
 certificateCriteriaMetForGivenTemplate (int $usr_id, ilCertificateTemplate $template)
 
 certificateCriteriaMet (int $usr_id, int $obj_id)
 
 isActiveCertificateTemplateAvailableFor (int $obj_id)
 

Private Member Functions

 processEntry (int $userId, ilCertificateTemplate $template)
 

Private Attributes

readonly UserDataRepository $user_data_repository
 
readonly ilCertificateTemplateRepository $template_repository
 
readonly ilCertificateTypeClassMap $type_class_map
 
readonly ilCertificateQueueRepository $queue_repository
 
readonly ilLogger $logger
 
readonly ilObjectDataCache $object_data_cache
 

Detailed Description

Definition at line 43 of file UserCertificateAPI.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Certificate\API\UserCertificateAPI::__construct ( ?UserDataRepository  $user_data_repository = null,
?ilCertificateTemplateRepository  $template_repository = null,
?ilCertificateQueueRepository  $queue_repository = null,
?ilCertificateTypeClassMap  $type_class_map = null,
?ilLogger  $logger = null,
?ilObjectDataCache  $object_data_cache = null 
)

Definition at line 52 of file UserCertificateAPI.php.

References $DIC, ILIAS\Certificate\API\UserCertificateAPI\$logger, and ILIAS\Repository\logger().

59  {
60  global $DIC;
61 
62  $this->logger = $logger ?? $DIC->logger()->cert();
63  $this->object_data_cache = $object_data_cache ?? $DIC['ilObjDataCache'];
64  $this->user_data_repository = $user_data_repository ?? new UserDataRepository(
65  $DIC->database(),
66  $DIC->ctrl()
67  );
68  $this->template_repository = $template_repository ?? new ilCertificateTemplateDatabaseRepository(
69  $DIC->database(),
71  );
72  $this->type_class_map = $type_class_map ?? new ilCertificateTypeClassMap();
73  $this->queue_repository = $queue_repository ?? new ilCertificateQueueRepository(
74  $DIC->database(),
76  );
77  }
readonly ilObjectDataCache $object_data_cache
readonly ilCertificateTypeClassMap $type_class_map
readonly ilCertificateQueueRepository $queue_repository
global $DIC
Definition: feed.php:28
readonly UserDataRepository $user_data_repository
readonly ilCertificateTemplateRepository $template_repository
+ Here is the call graph for this function:

Member Function Documentation

◆ certificateCriteriaMet()

ILIAS\Certificate\API\UserCertificateAPI::certificateCriteriaMet ( int  $usr_id,
int  $obj_id 
)
Exceptions
ilCertificateConsumerNotSupported
ilCertificateIssuingObjectNotFound
ilCertificateOwnerNotFound
ilCouldNotFindCertificateTemplate
ilInvalidCertificateException

Implements ILIAS\Certificate\API\UserCertificateApiInterface.

Definition at line 108 of file UserCertificateAPI.php.

References ILIAS\Certificate\API\UserCertificateAPI\certificateCriteriaMetForGivenTemplate().

108  : void
109  {
110  $type = $this->object_data_cache->lookupType($obj_id);
111  if (!$this->type_class_map->typeExistsInMap($type)) {
112  throw new ilCertificateConsumerNotSupported(sprintf(
113  "Oject type '%s' is not supported by the certificate component!",
114  $type
115  ));
116  }
117 
118  $template = $this->template_repository->fetchCurrentlyActiveCertificate($obj_id);
119 
120  $this->certificateCriteriaMetForGivenTemplate($usr_id, $template);
121  }
certificateCriteriaMetForGivenTemplate(int $usr_id, ilCertificateTemplate $template)
+ Here is the call graph for this function:

◆ certificateCriteriaMetForGivenTemplate()

ILIAS\Certificate\API\UserCertificateAPI::certificateCriteriaMetForGivenTemplate ( int  $usr_id,
ilCertificateTemplate  $template 
)
Exceptions
ilCertificateIssuingObjectNotFound
ilCertificateOwnerNotFound
ilInvalidCertificateException

Implements ILIAS\Certificate\API\UserCertificateApiInterface.

Definition at line 89 of file UserCertificateAPI.php.

References ilCertificateTemplate\getId(), ilCertificateTemplate\getObjId(), ilCertificateTemplate\getObjType(), ilCertificateTemplate\isCurrentlyActive(), ILIAS\Repository\logger(), and ILIAS\Certificate\API\UserCertificateAPI\processEntry().

Referenced by ILIAS\Certificate\API\UserCertificateAPI\certificateCriteriaMet().

89  : void
90  {
91  if (!$template->isCurrentlyActive()) {
92  $this->logger->debug(sprintf(
93  'Did not trigger certificate achievement for inactive template: usr_id: %s/obj_id: %s/type: %s/template_id: %s',
94  $usr_id,
95  $template->getObjId(),
96  $template->getObjType(),
97  $template->getId()
98  ));
99  return;
100  }
101 
102  $this->processEntry(
103  $usr_id,
104  $template
105  );
106  }
processEntry(int $userId, ilCertificateTemplate $template)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getUserCertificateData()

ILIAS\Certificate\API\UserCertificateAPI::getUserCertificateData ( UserDataFilter  $filter,
array  $ilCtrlStack = [] 
)
Parameters
list<class-string>$ilCtrlStack An array of ilCtrl-enabled GUI class names that are used to create the link, if this is an empty array (default) no link will be generated
Returns
array<int, UserCertificateDto>

Implements ILIAS\Certificate\API\UserCertificateApiInterface.

Definition at line 79 of file UserCertificateAPI.php.

79  : array
80  {
81  return $this->user_data_repository->getUserData($filter, $ilCtrlStack);
82  }

◆ getUserCertificateDataMaxCount()

ILIAS\Certificate\API\UserCertificateAPI::getUserCertificateDataMaxCount ( UserDataFilter  $filter)

Implements ILIAS\Certificate\API\UserCertificateApiInterface.

Definition at line 84 of file UserCertificateAPI.php.

84  : int
85  {
86  return $this->user_data_repository->getUserCertificateDataMaxCount($filter);
87  }

◆ isActiveCertificateTemplateAvailableFor()

ILIAS\Certificate\API\UserCertificateAPI::isActiveCertificateTemplateAvailableFor ( int  $obj_id)

Implements ILIAS\Certificate\API\UserCertificateApiInterface.

Definition at line 123 of file UserCertificateAPI.php.

123  : bool
124  {
125  try {
126  return $this->template_repository->fetchCurrentlyActiveCertificate($obj_id)->isCurrentlyActive();
128  return false;
129  }
130  }

◆ processEntry()

ILIAS\Certificate\API\UserCertificateAPI::processEntry ( int  $userId,
ilCertificateTemplate  $template 
)
private
Exceptions
ilCertificateIssuingObjectNotFound
ilCertificateOwnerNotFound
ilCouldNotFindCertificateTemplate
ilInvalidCertificateException

Definition at line 138 of file UserCertificateAPI.php.

References ilCertificateTemplate\getId(), ilCertificateTemplate\getObjId(), ilCertificateTemplate\getObjType(), ilCronConstants\IN_PROGRESS, and ILIAS\Repository\logger().

Referenced by ILIAS\Certificate\API\UserCertificateAPI\certificateCriteriaMetForGivenTemplate().

141  : void {
142  $this->logger->debug(sprintf(
143  'Trigger persisting certificate achievement for: usr_id: %s/obj_id: %s/type: %s/template_id: %s',
144  $userId,
145  $template->getObjId(),
146  $template->getObjType(),
147  $template->getId()
148  ));
149 
150  $entry = new ilCertificateQueueEntry(
151  $template->getObjId(),
152  $userId,
153  $this->type_class_map->getPlaceHolderClassNameByType($template->getObjType()),
155  $template->getId(),
156  time()
157  );
158 
159  $mode = (new ilSetting('certificate'))->get(
160  'persistent_certificate_mode',
161  'persistent_certificate_mode_cron'
162  );
163  if ($mode === 'persistent_certificate_mode_instant') {
164  $cronjob = new ilCertificateCron();
165  $cronjob->init();
166  $cronjob->processEntry(0, $entry, []);
167  return;
168  }
169 
170  $this->queue_repository->addToQueue($entry);
171  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $logger

readonly ilLogger ILIAS\Certificate\API\UserCertificateAPI::$logger
private

◆ $object_data_cache

readonly ilObjectDataCache ILIAS\Certificate\API\UserCertificateAPI::$object_data_cache
private

Definition at line 50 of file UserCertificateAPI.php.

◆ $queue_repository

readonly ilCertificateQueueRepository ILIAS\Certificate\API\UserCertificateAPI::$queue_repository
private

Definition at line 48 of file UserCertificateAPI.php.

◆ $template_repository

readonly ilCertificateTemplateRepository ILIAS\Certificate\API\UserCertificateAPI::$template_repository
private

Definition at line 46 of file UserCertificateAPI.php.

◆ $type_class_map

readonly ilCertificateTypeClassMap ILIAS\Certificate\API\UserCertificateAPI::$type_class_map
private

Definition at line 47 of file UserCertificateAPI.php.

◆ $user_data_repository

readonly UserDataRepository ILIAS\Certificate\API\UserCertificateAPI::$user_data_repository
private

Definition at line 45 of file UserCertificateAPI.php.


The documentation for this class was generated from the following file: