Loading Classes/WE/SpreadsheetImport/Command/SpreadsheetImportCommandController.php +25 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,12 @@ class SpreadsheetImportCommandController extends CommandController { */ protected $persistenceManager; /** * @Flow\InjectConfiguration * @var array */ protected $settings; /** * Import one pending queued spreadsheet into Domain data, and it will import the next one if it is done */ Loading Loading @@ -70,4 +76,23 @@ class SpreadsheetImportCommandController extends CommandController { } } /** * Cleanup previous spreadsheet imports by specific time (defined by settings) */ public function cleanupCommand() { $cleanupImportFromPreviousDay = $this->settings['cleanupImportFromPreviousDay']; $cleanupFromDate = new \DateTime(); $cleanupFromDate->sub(new \DateInterval('P' . $cleanupImportFromPreviousDay . 'D')); $oldSpreadsheetImports = $this->spreadsheetImportRepository->findPreviousImportsBySpecificDate($cleanupFromDate); if ($oldSpreadsheetImports->count() > 0) { /** @var SpreadsheetImport $oldSpreadsheetImport */ foreach ($oldSpreadsheetImports as $oldSpreadsheetImport) { $this->spreadsheetImportRepository->remove($oldSpreadsheetImport); } $this->outputLine('%d spreadsheet imports were removed.', array($oldSpreadsheetImports->count())); } else { $this->outputLine('There is no spreadsheet import in queue to remove.'); } } } Classes/WE/SpreadsheetImport/Domain/Model/SpreadsheetImport.php +1 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ class SpreadsheetImport { protected $context; /** * @ORM\OneToOne(cascade={"persist"}) * @ORM\OneToOne(cascade={"persist", "remove"}) * @var \TYPO3\Flow\Resource\Resource */ protected $file; Loading Classes/WE/SpreadsheetImport/Domain/Repository/SpreadsheetImportRepository.php +11 −0 Original line number Diff line number Diff line Loading @@ -24,4 +24,15 @@ class SpreadsheetImportRepository extends Repository { */ protected $defaultOrderings = array('scheduleDate' => \TYPO3\Flow\Persistence\QueryInterface::ORDER_ASCENDING); /** * @param \DateTime $dateTime * * @return \TYPO3\Flow\Persistence\QueryResultInterface */ public function findPreviousImportsBySpecificDate(\DateTime $dateTime) { $query = $this->createQuery(); $constraint = $query->lessThanOrEqual('scheduleDate', $dateTime); return $query->matching($constraint)->execute(); } } Configuration/Settings.yaml +1 −0 Original line number Diff line number Diff line WE: SpreadsheetImport: cleanupImportFromPreviousDay: 5 swisscomGrb: domain: WE\KIME\Domain\Model\User Configuration: Loading Loading
Classes/WE/SpreadsheetImport/Command/SpreadsheetImportCommandController.php +25 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,12 @@ class SpreadsheetImportCommandController extends CommandController { */ protected $persistenceManager; /** * @Flow\InjectConfiguration * @var array */ protected $settings; /** * Import one pending queued spreadsheet into Domain data, and it will import the next one if it is done */ Loading Loading @@ -70,4 +76,23 @@ class SpreadsheetImportCommandController extends CommandController { } } /** * Cleanup previous spreadsheet imports by specific time (defined by settings) */ public function cleanupCommand() { $cleanupImportFromPreviousDay = $this->settings['cleanupImportFromPreviousDay']; $cleanupFromDate = new \DateTime(); $cleanupFromDate->sub(new \DateInterval('P' . $cleanupImportFromPreviousDay . 'D')); $oldSpreadsheetImports = $this->spreadsheetImportRepository->findPreviousImportsBySpecificDate($cleanupFromDate); if ($oldSpreadsheetImports->count() > 0) { /** @var SpreadsheetImport $oldSpreadsheetImport */ foreach ($oldSpreadsheetImports as $oldSpreadsheetImport) { $this->spreadsheetImportRepository->remove($oldSpreadsheetImport); } $this->outputLine('%d spreadsheet imports were removed.', array($oldSpreadsheetImports->count())); } else { $this->outputLine('There is no spreadsheet import in queue to remove.'); } } }
Classes/WE/SpreadsheetImport/Domain/Model/SpreadsheetImport.php +1 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ class SpreadsheetImport { protected $context; /** * @ORM\OneToOne(cascade={"persist"}) * @ORM\OneToOne(cascade={"persist", "remove"}) * @var \TYPO3\Flow\Resource\Resource */ protected $file; Loading
Classes/WE/SpreadsheetImport/Domain/Repository/SpreadsheetImportRepository.php +11 −0 Original line number Diff line number Diff line Loading @@ -24,4 +24,15 @@ class SpreadsheetImportRepository extends Repository { */ protected $defaultOrderings = array('scheduleDate' => \TYPO3\Flow\Persistence\QueryInterface::ORDER_ASCENDING); /** * @param \DateTime $dateTime * * @return \TYPO3\Flow\Persistence\QueryResultInterface */ public function findPreviousImportsBySpecificDate(\DateTime $dateTime) { $query = $this->createQuery(); $constraint = $query->lessThanOrEqual('scheduleDate', $dateTime); return $query->matching($constraint)->execute(); } }
Configuration/Settings.yaml +1 −0 Original line number Diff line number Diff line WE: SpreadsheetImport: cleanupImportFromPreviousDay: 5 swisscomGrb: domain: WE\KIME\Domain\Model\User Configuration: Loading