Skip to content

Commit 058c179

Browse files
come-ncPytal
authored andcommitted
Changed IExportOperation to be IMigrationOperation with both import and export methods
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
1 parent ef6a710 commit 058c179

2 files changed

Lines changed: 27 additions & 6 deletions

File tree

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,16 @@
2828

2929
use OCP\IUser;
3030

31-
interface IExportOperation {
31+
interface IMigrationOperation {
32+
public function export(
33+
string $appId,
34+
IUser $user,
35+
IExportDestination $exportDestination,
36+
OutputInterface $output): void;
3237

33-
public function run(string $appId, IUser $user, string $exportRoot): void;
38+
public function import(
39+
string $appId,
40+
IUser $user,
41+
IImportSource $importSource,
42+
OutputInterface $output): void;
3443
}

lib/Service/UserMigrationService.php

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
use OCA\UserMigration\Exception\UserMigrationException;
3434
use OCA\UserMigration\ExportDestination;
3535
use OCA\UserMigration\IExportDestination;
36-
use OCA\UserMigration\IExportOperation;
3736
use OCA\UserMigration\IImportSource;
37+
use OCA\UserMigration\IMigrationOperation;
3838
use OCA\UserMigration\ImportSource;
3939
use OC\Files\AppData;
4040
use OC\Files\Filesystem;
@@ -156,10 +156,10 @@ public function export(IUser $user, ?OutputInterface $output = null): string {
156156
$context = $this->coordinator->getRegistrationContext();
157157

158158
if ($context !== null) {
159-
foreach ($context->getExportOperations() as $registration) {
160-
/** @var IExportOperation $operation */
159+
foreach ($context->getMigrationOperations() as $registration) {
160+
/** @var IMigrationOperation $operation */
161161
$operation = $this->container->get($registration->getService());
162-
$operation->run($registration->getAppId(), $user, $exportFolder);
162+
$operation->export($registration->getAppId(), $user, $exportDestination, $output);
163163
}
164164
}
165165

@@ -181,6 +181,18 @@ public function import(string $path, ?OutputInterface $output = null): void {
181181
$this->importAccountInformation($user, $importSource, $output);
182182
$this->importAppsSettings($user, $importSource, $output);
183183
$this->importFiles($user, $importSource, $output);
184+
185+
// Run imports for other apps
186+
$context = $this->coordinator->getRegistrationContext();
187+
188+
if ($context !== null) {
189+
foreach ($context->getMigrationOperations() as $registration) {
190+
/** @var IMigrationOperation $operation */
191+
$operation = $this->container->get($registration->getService());
192+
$operation->import($registration->getAppId(), $user, $importSource, $output);
193+
}
194+
}
195+
184196
$uid = $user->getUID();
185197
$output->writeln("Successfully imported $uid from $path");
186198
} finally {

0 commit comments

Comments
 (0)