gitlab_time_tracker-8.x-1.x-dev/modules/gitlab_time_tracker_migration/src/Plugin/migrate/source/GitlabMilestonesSource.php
modules/gitlab_time_tracker_migration/src/Plugin/migrate/source/GitlabMilestonesSource.php
<?php
namespace Drupal\gitlab_time_tracker_migration\Plugin\migrate\source;
use Drupal\migrate\Plugin\migrate\source\SourcePluginBase;
/**
* User source from gitlab database.
*
* @MigrateSource(
* id = "gitlab_milestone",
* source_module = "gitlab_time_tracker_migration"
* )
*/
class GitlabMilestonesSource extends SourcePluginBase {
/**
* {@inheritdoc}
*/
protected function initializeIterator() {
$results = \Drupal::service('gitlab_time_tracker.gitlab')->fetchMilestones(
$this->configuration['project_id'],
);
return new \ArrayIterator($results);
}
/**
* {@inheritdoc}
*/
public function getIds() {
return [
'id' => [
'type' => 'integer',
],
];
}
/**
* {@inheritdoc}
*/
public function fields() {
return [
'title' => 'Title of milestone',
'id' => 'Gitlab id',
'iid' => 'Gitlab iid',
'updated_at' => 'Email',
];
}
public function __toString() {
// This could cause a problem when using a lot of urls, may need to hash.
return implode(',', $this->fields());
}
}
