summaryrefslogtreecommitdiff
path: root/app/Http/RequestHandlers/ImportGedcomAction.php
diff options
context:
space:
mode:
authorGreg Roach <greg@subaqua.co.uk>2021-03-07 12:08:10 +0000
committerGreg Roach <greg@subaqua.co.uk>2021-03-09 08:54:01 +0000
commit5cd281f4f76e660b2e033b96db47543fa16f7748 (patch)
treede4a83a0954bd9ca0d7fb2fad236f994ed7c9050 /app/Http/RequestHandlers/ImportGedcomAction.php
parent4a81005e3a2026c16456c19677a9a528af00a3a3 (diff)
downloadwebtrees-5cd281f4f76e660b2e033b96db47543fa16f7748.tar.gz
webtrees-5cd281f4f76e660b2e033b96db47543fa16f7748.tar.bz2
webtrees-5cd281f4f76e660b2e033b96db47543fa16f7748.zip
Refactor Tree / TreeService to improve the import of large GEDCOM files.
Diffstat (limited to 'app/Http/RequestHandlers/ImportGedcomAction.php')
-rw-r--r--app/Http/RequestHandlers/ImportGedcomAction.php13
1 files changed, 11 insertions, 2 deletions
diff --git a/app/Http/RequestHandlers/ImportGedcomAction.php b/app/Http/RequestHandlers/ImportGedcomAction.php
index eab0d3b841..3b58e2a7ab 100644
--- a/app/Http/RequestHandlers/ImportGedcomAction.php
+++ b/app/Http/RequestHandlers/ImportGedcomAction.php
@@ -23,6 +23,7 @@ use Fisharebest\Webtrees\FlashMessages;
use Fisharebest\Webtrees\Functions\Functions;
use Fisharebest\Webtrees\I18N;
use Fisharebest\Webtrees\Registry;
+use Fisharebest\Webtrees\Services\TreeService;
use Fisharebest\Webtrees\Tree;
use Nyholm\Psr7\UploadedFile;
use Psr\Http\Message\ResponseInterface;
@@ -43,6 +44,14 @@ use const UPLOAD_ERR_OK;
*/
class ImportGedcomAction implements RequestHandlerInterface
{
+ /** @var TreeService */
+ private $tree_service;
+
+ public function __construct(TreeService $tree_service)
+ {
+ $this->tree_service = $tree_service;
+ }
+
/**
* @param ServerRequestInterface $request
*
@@ -71,7 +80,7 @@ class ImportGedcomAction implements RequestHandlerInterface
if ($upload instanceof UploadedFile) {
if ($upload->getError() === UPLOAD_ERR_OK) {
- $tree->importGedcomFile($upload->getStream(), basename($upload->getClientFilename()));
+ $this->tree_service->importGedcomFile($tree, $upload->getStream(), basename($upload->getClientFilename()));
} else {
FlashMessages::addMessage(Functions::fileUploadErrorText($upload->getError()), 'danger');
}
@@ -86,7 +95,7 @@ class ImportGedcomAction implements RequestHandlerInterface
if ($basename) {
$resource = $data_filesystem->readStream($basename);
$stream = app(StreamFactoryInterface::class)->createStreamFromResource($resource);
- $tree->importGedcomFile($stream, $basename);
+ $this->tree_service->importGedcomFile($tree, $stream, $basename);
} else {
FlashMessages::addMessage(I18N::translate('No GEDCOM file was received.'), 'danger');
}