-
Notifications
You must be signed in to change notification settings - Fork 0
/
simplytest_import.module
65 lines (59 loc) · 1.72 KB
/
simplytest_import.module
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
/**
* @file
* Contains simplytest_import.module.
*/
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\simplytest_projects\Entity\SimplytestProject;
/**
* Implements hook_help().
*/
function simplytest_import_help($route_name, RouteMatchInterface $route_match) {
switch ($route_name) {
// Main module help for the simplytest_import module.
case 'help.page.simplytest_import':
$output = '';
$output .= '<h3>' . t('About') . '</h3>';
$output .= '<p>' . t('Fetching data from drupal.org and importing the project automatically.') . '</p>';
return $output;
default:
}
}
/**
* Fetch and import batch process.
*/
function batch_fetch_import_process($index, $type, &$context) {
$importService = \Drupal::service('simplytest_import.service');
$items = $importService->dataProvider($type, $index);
$data = $importService->getCleanData($items['list']);
foreach ($data as $datum) {
$project = SimplytestProject::create($datum);
$project->save();
}
$context['results']['processed'] += count($data);
$context['results']['type'] = $type;
}
/**
* Batch finished method.
*/
function batch_finished($success, $results, $operations) {
$messenger = \Drupal::messenger();
if ($success) {
$messenger->addMessage(t('Total @count @type imported.',
[
'@count' => $results['processed'] + 1,
'@type' => str_replace('project_', '', $results['type']),
]));
}
else {
$error_operation = reset($operations);
$messenger->addMessage(
t('An error occurred while processing @operation with arguments : @args',
[
'@operation' => $error_operation[0],
'@args' => print_r($error_operation[0], TRUE),
]
)
);
}
}