From 9d7582caa637dfe6cfce619ca47ea84b7d84b3c2 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 28 Apr 2021 10:06:30 +0300 Subject: [PATCH] field loading usage and changes --- .../FieldProcessing/Import/CountsLoader.php | 65 +++++++++++++++++++ .../FollowersLoader.php} | 4 +- .../metadata/app/fieldProcessing.json | 2 +- .../Resources/metadata/recordDefs/Import.json | 5 ++ application/Espo/Services/Import.php | 21 ++---- 5 files changed, 77 insertions(+), 20 deletions(-) create mode 100644 application/Espo/Classes/FieldProcessing/Import/CountsLoader.php rename application/Espo/Core/FieldProcessing/{Misc/StreamLoader.php => Stream/FollowersLoader.php} (97%) create mode 100644 application/Espo/Resources/metadata/recordDefs/Import.json diff --git a/application/Espo/Classes/FieldProcessing/Import/CountsLoader.php b/application/Espo/Classes/FieldProcessing/Import/CountsLoader.php new file mode 100644 index 0000000000..7cda12d35e --- /dev/null +++ b/application/Espo/Classes/FieldProcessing/Import/CountsLoader.php @@ -0,0 +1,65 @@ +entityManager = $entityManager; + } + + public function process(Entity $entity, LoaderParams $params): void + { + /* @var $repository ImportRepository */ + $repository = $this->entityManager->getRepository('Import'); + + $importedCount = $repository->countResultRecords($entity, 'imported'); + $duplicateCount = $repository->countResultRecords($entity, 'duplicates'); + $updatedCount = $repository->countResultRecords($entity, 'updated'); + + $entity->set([ + 'importedCount' => $importedCount, + 'duplicateCount' => $duplicateCount, + 'updatedCount' => $updatedCount, + ]); + } +} diff --git a/application/Espo/Core/FieldProcessing/Misc/StreamLoader.php b/application/Espo/Core/FieldProcessing/Stream/FollowersLoader.php similarity index 97% rename from application/Espo/Core/FieldProcessing/Misc/StreamLoader.php rename to application/Espo/Core/FieldProcessing/Stream/FollowersLoader.php index f66acb24d4..78a1d85b43 100644 --- a/application/Espo/Core/FieldProcessing/Misc/StreamLoader.php +++ b/application/Espo/Core/FieldProcessing/Stream/FollowersLoader.php @@ -27,7 +27,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -namespace Espo\Core\FieldProcessing\Misc; +namespace Espo\Core\FieldProcessing\Stream; use Espo\Core\{ ORM\Entity, @@ -42,7 +42,7 @@ use Espo\Entities\User; use Espo\Services\Stream as StreamService; -class StreamLoader implements LoaderInterface +class FollowersLoader implements LoaderInterface { private const FOLLOWERS_LIMIT = 5; diff --git a/application/Espo/Resources/metadata/app/fieldProcessing.json b/application/Espo/Resources/metadata/app/fieldProcessing.json index 91d378f2c3..b3de54691a 100644 --- a/application/Espo/Resources/metadata/app/fieldProcessing.json +++ b/application/Espo/Resources/metadata/app/fieldProcessing.json @@ -6,7 +6,7 @@ "Espo\\Core\\FieldProcessing\\LinkParent\\Loader", "Espo\\Core\\FieldProcessing\\EmailAddress\\Loader", "Espo\\Core\\FieldProcessing\\PhoneNumber\\Loader", - "Espo\\Core\\FieldProcessing\\Misc\\StreamLoader" + "Espo\\Core\\FieldProcessing\\Stream\\FollowersLoader" ], "listLoaderClassNameList": [ "Espo\\Core\\FieldProcessing\\LinkParent\\Loader", diff --git a/application/Espo/Resources/metadata/recordDefs/Import.json b/application/Espo/Resources/metadata/recordDefs/Import.json new file mode 100644 index 0000000000..4b04a31e85 --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/Import.json @@ -0,0 +1,5 @@ +{ + "readLoaderClassNameList": [ + "Espo\\Classes\\FieldProcessing\\Import\\CountsLoader" + ] +} diff --git a/application/Espo/Services/Import.php b/application/Espo/Services/Import.php index f6488f71ec..cf32d075ad 100644 --- a/application/Espo/Services/Import.php +++ b/application/Espo/Services/Import.php @@ -40,7 +40,6 @@ use Espo\Core\{ }; use Espo\{ - ORM\Entity, Services\Record, Tools\Import\Import as ImportTool, }; @@ -58,21 +57,6 @@ class Import extends Record implements const REVERT_PERMANENTLY_REMOVE_PERIOD_DAYS = 2; - public function loadAdditionalFields(Entity $entity) - { - parent::loadAdditionalFields($entity); - - $importedCount = $this->getRepository()->countResultRecords($entity, 'imported'); - $duplicateCount = $this->getRepository()->countResultRecords($entity, 'duplicates'); - $updatedCount = $this->getRepository()->countResultRecords($entity, 'updated'); - - $entity->set([ - 'importedCount' => $importedCount, - 'duplicateCount' => $duplicateCount, - 'updatedCount' => $updatedCount, - ]); - } - public function findLinked(string $id, string $link, array $params): RecordCollection { if (!in_array($link, ['imported', 'duplicates', 'updated'])) { @@ -337,7 +321,10 @@ class Import extends Record implements } public function import( - string $entityType, array $attributeList, string $attachmentId, array $params = [] + string $entityType, + array $attributeList, + string $attachmentId, + array $params = [] ): StdClass { $result = $this->createImportTool()