Completed
Pull Request — master (#634)
by Maxence
02:35
created

Migration   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 3
dl 0
loc 51
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getName() 0 3 1
A run() 0 13 3
1
<?php
2
3
declare(strict_types=1);
4
5
6
/**
7
 * Circles - Bring cloud-users closer together.
8
 *
9
 * This file is licensed under the Affero General Public License version 3 or
10
 * later. See the COPYING file.
11
 *
12
 * @author Maxence Lange <[email protected]>
13
 * @copyright 2021
14
 * @license GNU AGPL version 3 or any later version
15
 *
16
 * This program is free software: you can redistribute it and/or modify
17
 * it under the terms of the GNU Affero General Public License as
18
 * published by the Free Software Foundation, either version 3 of the
19
 * License, or (at your option) any later version.
20
 *
21
 * This program is distributed in the hope that it will be useful,
22
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24
 * GNU Affero General Public License for more details.
25
 *
26
 * You should have received a copy of the GNU Affero General Public License
27
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
28
 *
29
 */
30
31
32
namespace OCA\Circles\Migration;
33
34
35
use ArtificialOwl\MySmallPhpTools\Traits\Nextcloud\nc22\TNC22Logger;
36
use OCA\Circles\AppInfo\Application;
37
use OCA\Circles\Exceptions\MigrationException;
38
use OCA\Circles\Service\ConfigService;
39
use OCA\Circles\Service\SyncService;
40
use OCP\Migration\IOutput;
41
use OCP\Migration\IRepairStep;
42
43
44
/**
45
 * Class Migration
46
 *
47
 * @package OCA\Circles\Migration
48
 */
49
class Migration implements IRepairStep {
50
51
52
	use TNC22Logger;
53
54
55
	/** @var SyncService */
56
	private $syncService;
57
58
	/** @var ConfigService */
59
	private $configService;
60
61
62
	/**
63
	 * Migration constructor.
64
	 *
65
	 * @param SyncService $syncService
66
	 * @param ConfigService $configService
67
	 */
68
	public function __construct(SyncService $syncService, ConfigService $configService) {
69
		$this->syncService = $syncService;
70
		$this->configService = $configService;
71
	}
72
73
74
	/**
75
	 * @return string
76
	 */
77
	public function getName(): string {
78
		return '(' . Application::APP_NAME . ') Migrating data from older version of the Circles App';
79
	}
80
81
82
	/**
83
	 * @param IOutput $output
84
	 */
85
	public function run(IOutput $output) {
86
		if ($this->configService->getAppValueBool(ConfigService::MIGRATION_BYPASS)) {
87
			return;
88
		}
89
90
		$this->syncService->setMigrationOutput($output);
91
92
		try {
93
			$this->syncService->migration();
94
		} catch (MigrationException $e) {
95
			$this->e($e);
96
		}
97
	}
98
99
}
100
101