Skip to content

Commit

Permalink
feat(cache): cache extracted fields from collabora
Browse files Browse the repository at this point in the history
Signed-off-by: Elizabeth Danzberger <[email protected]>
  • Loading branch information
elzody committed Aug 19, 2024
1 parent 533ebf5 commit 04024fc
Showing 1 changed file with 18 additions and 2 deletions.
20 changes: 18 additions & 2 deletions lib/Service/TemplateFieldService.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,20 @@
use OCP\Files\Template\Field;
use OCP\Files\Template\FieldType;
use OCP\Http\Client\IClientService;
use OCP\ICache;
use OCP\ICacheFactory;
use Psr\Log\LoggerInterface;

class TemplateFieldService {
private ICache $cache;

public function __construct(
private IClientService $clientService,
private CapabilitiesService $capabilitiesService,
private AppConfig $appConfig,
private IRootFolder $rootFolder,
private LoggerInterface $logger
private LoggerInterface $logger,
private ICacheFactory $cacheFactory
) {
}

Expand All @@ -44,6 +49,14 @@ public function extractFields(Node|int $file) {
throw new NotFoundException();
}

$localCache = $this->cacheFactory->createLocal('richdocuments_templates/');
$cacheName = $file->getId() . "/" . $file->getEtag();
$cachedResponse = $localCache->get($cacheName);

if ($cachedResponse !== null) {
return $cachedResponse;
}

$collaboraUrl = $this->appConfig->getCollaboraUrlInternal();
$httpClient = $this->clientService->newClient();

Expand Down Expand Up @@ -81,7 +94,10 @@ public function extractFields(Node|int $file) {
];
}

return array_merge([], ...$fields);
$fields = array_merge([], ...$fields);
$localCache->set($cacheName, $fields, 3600);

return $fields;
} catch (\Exception $e) {
$this->logger->error($e->getMessage());
return [];
Expand Down

0 comments on commit 04024fc

Please sign in to comment.