6
6
7
7
namespace Magento \Setup \Controller ;
8
8
9
- use Magento \Setup \Model \DateTime \TimezoneProvider ;
9
+ use Magento \Setup \Model \ObjectManagerProvider ;
10
+ use Magento \Setup \Model \PackagesAuth ;
11
+ use Magento \Setup \Model \PackagesData ;
10
12
11
13
/**
12
14
* Controller for component grid tasks
13
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
14
15
*/
15
16
class ComponentGrid extends \Zend \Mvc \Controller \AbstractActionController
16
17
{
@@ -27,14 +28,9 @@ class ComponentGrid extends \Zend\Mvc\Controller\AbstractActionController
27
28
private $ packageInfo ;
28
29
29
30
/**
30
- * @var \Magento\Setup\Model\MarketplaceManager
31
+ * @var ObjectManagerProvider
31
32
*/
32
- private $ marketplaceManager ;
33
-
34
- /**
35
- * @var \Magento\Framework\Module\ModuleList
36
- */
37
- private $ enabledModuleList ;
33
+ private $ objectManagerProvider ;
38
34
39
35
/**
40
36
* Full Module info
@@ -44,37 +40,31 @@ class ComponentGrid extends \Zend\Mvc\Controller\AbstractActionController
44
40
private $ fullModuleList ;
45
41
46
42
/**
47
- * @var \Magento\Setup\Model\UpdatePackagesCache
43
+ * @var PackagesData
48
44
*/
49
- private $ updatePackagesCache ;
45
+ private $ packagesData ;
50
46
51
47
/**
52
- * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface
48
+ * @var PackagesAuth
53
49
*/
54
- private $ timezone ;
50
+ private $ packagesAuth ;
55
51
56
52
/**
57
53
* @param \Magento\Framework\Composer\ComposerInformation $composerInformation
58
54
* @param \Magento\Setup\Model\ObjectManagerProvider $objectManagerProvider
59
- * @param \Magento\Setup\Model\UpdatePackagesCache $updatePackagesCache
60
- * @param \Magento\Setup\Model\MarketplaceManager $marketplaceManager
61
- * @param TimezoneProvider $tzProvider
55
+ * @param PackagesData $packagesData
56
+ * @param PackagesAuth $packagesAuth
62
57
*/
63
58
public function __construct (
64
59
\Magento \Framework \Composer \ComposerInformation $ composerInformation ,
65
60
\Magento \Setup \Model \ObjectManagerProvider $ objectManagerProvider ,
66
- \Magento \Setup \Model \UpdatePackagesCache $ updatePackagesCache ,
67
- \Magento \Setup \Model \MarketplaceManager $ marketplaceManager ,
68
- TimezoneProvider $ tzProvider
61
+ \Magento \Setup \Model \PackagesData $ packagesData ,
62
+ \Magento \Setup \Model \PackagesAuth $ packagesAuth
69
63
) {
70
64
$ this ->composerInformation = $ composerInformation ;
71
- $ objectManager = $ objectManagerProvider ->get ();
72
- $ this ->enabledModuleList = $ objectManager ->get ('Magento\Framework\Module\ModuleList ' );
73
- $ this ->fullModuleList = $ objectManager ->get ('Magento\Framework\Module\FullModuleList ' );
74
- $ this ->packageInfo = $ objectManager ->get ('Magento\Framework\Module\PackageInfoFactory ' )->create ();
75
- $ this ->marketplaceManager = $ marketplaceManager ;
76
- $ this ->updatePackagesCache = $ updatePackagesCache ;
77
- $ this ->timezone = $ tzProvider ->get ();
65
+ $ this ->objectManagerProvider = $ objectManagerProvider ;
66
+ $ this ->packagesData = $ packagesData ;
67
+ $ this ->packagesAuth = $ packagesAuth ;
78
68
}
79
69
80
70
/**
@@ -94,11 +84,19 @@ public function indexAction()
94
84
*
95
85
* @return \Zend\View\Model\JsonModel
96
86
* @throws \RuntimeException
97
- * @SuppressWarnings(PHPMD.NPathComplexity)
98
87
*/
99
88
public function componentsAction ()
100
89
{
101
- $ lastSyncData = $ this ->updatePackagesCache ->getPackagesForUpdate ();
90
+ $ objectManager = $ this ->objectManagerProvider ->get ();
91
+ $ enabledModuleList = $ objectManager ->get ('Magento\Framework\Module\ModuleList ' );
92
+ $ this ->fullModuleList = $ objectManager ->get ('Magento\Framework\Module\FullModuleList ' );
93
+ $ this ->packageInfo = $ objectManager ->get ('Magento\Framework\Module\PackageInfoFactory ' )->create ();
94
+
95
+ $ lastSyncData = [];
96
+ $ authDetails = $ this ->packagesAuth ->getAuthJsonData ();
97
+ if ($ authDetails ) {
98
+ $ lastSyncData = $ this ->packagesData ->syncPackagesData ();
99
+ }
102
100
$ components = $ this ->composerInformation ->getInstalledMagentoPackages ();
103
101
$ allModules = $ this ->getAllModules ();
104
102
$ components = array_replace_recursive ($ components , $ allModules );
@@ -121,7 +119,7 @@ public function componentsAction()
121
119
}
122
120
if ($ component ['type ' ] === \Magento \Framework \Composer \ComposerInformation::MODULE_PACKAGE_TYPE ) {
123
121
$ components [$ component ['name ' ]]['enable ' ] =
124
- $ this -> enabledModuleList ->has ($ components [$ component ['name ' ]]['moduleName ' ]);
122
+ $ enabledModuleList ->has ($ components [$ component ['name ' ]]['moduleName ' ]);
125
123
$ components [$ component ['name ' ]]['disable ' ] = !$ components [$ component ['name ' ]]['enable ' ];
126
124
} else {
127
125
$ components [$ component ['name ' ]]['enable ' ] = false ;
@@ -131,9 +129,6 @@ public function componentsAction()
131
129
$ components [$ component ['name ' ]]['vendor ' ] = $ componentNameParts [0 ];
132
130
}
133
131
134
- $ packagesForInstall = $ this ->marketplaceManager ->getPackagesForInstall ();
135
- $ lastSyncData = $ this ->formatLastSyncData ($ packagesForInstall , $ lastSyncData );
136
-
137
132
return new \Zend \View \Model \JsonModel (
138
133
[
139
134
'success ' => true ,
@@ -152,15 +147,9 @@ public function componentsAction()
152
147
public function syncAction ()
153
148
{
154
149
$ error = '' ;
155
- $ packagesForInstall = [];
156
150
$ lastSyncData = [];
157
151
try {
158
- $ this ->updatePackagesCache ->syncPackagesForUpdate ();
159
- $ lastSyncData = $ this ->updatePackagesCache ->getPackagesForUpdate ();
160
-
161
- $ this ->marketplaceManager ->syncPackagesForInstall ();
162
- $ packagesForInstall = $ this ->marketplaceManager ->getPackagesForInstall ();
163
- $ lastSyncData = $ this ->formatLastSyncData ($ packagesForInstall , $ lastSyncData );
152
+ $ lastSyncData = $ this ->packagesData ->syncPackagesData ();
164
153
} catch (\Exception $ e ) {
165
154
$ error = $ e ->getMessage ();
166
155
}
@@ -190,44 +179,4 @@ private function getAllModules()
190
179
}
191
180
return $ modules ;
192
181
}
193
-
194
- /**
195
- * Format the lastSyncData for use on frontend
196
- *
197
- * @param array $packagesForInstall
198
- * @param array $lastSyncData
199
- * @return mixed
200
- */
201
- private function formatLastSyncData ($ packagesForInstall , $ lastSyncData )
202
- {
203
- $ lastSyncData ['countOfInstall ' ]
204
- = isset ($ packagesForInstall ['packages ' ]) ? count ($ packagesForInstall ['packages ' ]) : 0 ;
205
- $ lastSyncData ['countOfUpdate ' ] = isset ($ lastSyncData ['packages ' ]) ? count ($ lastSyncData ['packages ' ]) : 0 ;
206
- if (isset ($ lastSyncData ['lastSyncDate ' ])) {
207
- $ lastSyncData ['lastSyncDate ' ] = $ this ->formatSyncDate ($ lastSyncData ['lastSyncDate ' ]);
208
- }
209
- return $ lastSyncData ;
210
- }
211
-
212
- /**
213
- * Format a UTC timestamp (seconds since epoch) to structure expected by frontend
214
- *
215
- * @param string $syncDate seconds since epoch
216
- * @return array
217
- */
218
- private function formatSyncDate ($ syncDate )
219
- {
220
- return [
221
- 'date ' => $ this ->timezone ->formatDateTime (
222
- new \DateTime ('@ ' .$ syncDate ),
223
- \IntlDateFormatter::MEDIUM ,
224
- \IntlDateFormatter::NONE
225
- ),
226
- 'time ' => $ this ->timezone ->formatDateTime (
227
- new \DateTime ('@ ' .$ syncDate ),
228
- \IntlDateFormatter::NONE ,
229
- \IntlDateFormatter::MEDIUM
230
- ),
231
- ];
232
- }
233
182
}
0 commit comments