ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
class.ilUserCertificateApiGUI.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21use Psr\Http\Message\ServerRequestInterface;
22
28{
29 final public const CMD_DOWNLOAD = 'download';
30
31 private readonly ilLogger $certificateLogger;
32 private readonly ServerRequestInterface $request;
33 private readonly ilLanguage $language;
34 private readonly ilCtrlInterface $ctrl;
35
36 public function __construct(
37 ?ilLanguage $language = null,
38 ?ServerRequestInterface $request = null,
41 ) {
42 global $DIC;
43
44 if ($language === null) {
45 $language = $DIC->language();
46 }
47 $this->language = $language;
48
49 if ($request === null) {
50 $request = $DIC->http()->request();
51 }
52 $this->request = $request;
53
54 if ($certificateLogger === null) {
55 $certificateLogger = $DIC->logger()->cert();
56 }
57 $this->certificateLogger = $certificateLogger;
58
59 if ($ctrl === null) {
60 $ctrl = $DIC->ctrl();
61 }
62 $this->ctrl = $ctrl;
63
64 $this->language->loadLanguageModule('cert');
65 }
66
67 public function executeCommand(): void
68 {
69 $cmd = $this->ctrl->getCmd();
70
71 switch ($cmd) {
73 $this->{$cmd}();
74 break;
75
76 default:
77 break;
78 }
79 }
80
81 public function download(): void
82 {
83 $userCertificateRepository = new ilUserCertificateRepository(null, $this->certificateLogger);
84 $pdfGenerator = new ilPdfGenerator($userCertificateRepository);
85
86 $userCertificateId = (int) $this->request->getQueryParams()['certificate_id'];
87
88 $userCertificate = $userCertificateRepository->fetchCertificate($userCertificateId);
89
90 $pdfAction = new ilCertificatePdfAction(
91 $pdfGenerator,
93 $this->language->txt('error_creating_certificate_pdf')
94 );
95
96 $pdfAction->downloadPdf($userCertificate->getUserId(), $userCertificate->getObjId());
97 }
98}
Just a wrapper class to create Unit Test for other classes.
language handling
Component logger with individual log levels by component id.
readonly ServerRequestInterface $request
__construct(?ilLanguage $language=null, ?ServerRequestInterface $request=null, ?ilLogger $certificateLogger=null, ?ilCtrlInterface $ctrl=null)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
global $DIC
Definition: shib_login.php:26