-
-
Notifications
You must be signed in to change notification settings - Fork 111
Expand file tree
/
Copy pathCapabilities.php
More file actions
61 lines (54 loc) · 1.69 KB
/
Capabilities.php
File metadata and controls
61 lines (54 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 LibreCode coop and contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Libresign;
use OCA\Libresign\Service\EnvelopeService;
use OCA\Libresign\Service\SignatureTextService;
use OCA\Libresign\Service\SignerElementsService;
use OCP\App\IAppManager;
use OCP\Capabilities\IPublicCapability;
/**
* @psalm-import-type LibresignCapabilities from ResponseDefinitions
*/
class Capabilities implements IPublicCapability {
public const FEATURES = [
'customize-signature'
];
public function __construct(
protected SignerElementsService $signerElementsService,
protected SignatureTextService $signatureTextService,
protected IAppManager $appManager,
protected EnvelopeService $envelopeService,
) {
}
/**
* @return array{
* libresign?: LibresignCapabilities,
* }
*/
public function getCapabilities(): array {
$capabilities = [
'features' => self::FEATURES,
'config' => [
'sign-elements' => [
'is-available' => $this->signerElementsService->isSignElementsAvailable(),
'can-create-signature' => $this->signerElementsService->canCreateSignature(),
'full-signature-width' => $this->signatureTextService->getFullSignatureWidth(),
'full-signature-height' => $this->signatureTextService->getFullSignatureHeight(),
'signature-width' => $this->signatureTextService->getSignatureWidth(),
'signature-height' => $this->signatureTextService->getSignatureHeight(),
],
'envelope' => [
'is-available' => $this->envelopeService->isEnabled(),
],
],
'version' => $this->appManager->getAppVersion('libresign'),
];
return [
'libresign' => $capabilities,
];
}
}