From 517bf3ef073eebaa9d38d44a59dfb4aded72a9ee Mon Sep 17 00:00:00 2001
From: Jaap Jansma <jaap.jansma@civicoop.org>
Date: Thu, 6 Dec 2018 13:26:02 +0100
Subject: [PATCH] added MailingGroup

---
 Civi/DataProcessor/Factory.php                |  1 +
 .../Source/AbstractCivicrmEntitySource.php    |  2 +-
 .../Source/MailingGroupSource.php             | 35 +++++++++++++++++++
 3 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 Civi/DataProcessor/Source/MailingGroupSource.php

diff --git a/Civi/DataProcessor/Factory.php b/Civi/DataProcessor/Factory.php
index cb292583..9bb8b946 100644
--- a/Civi/DataProcessor/Factory.php
+++ b/Civi/DataProcessor/Factory.php
@@ -108,6 +108,7 @@ class Factory {
     $this->addDataSource('participant', 'Civi\DataProcessor\Source\ParticipantSource', E::ts('Participant'));
     $this->addDataSource('mailing', 'Civi\DataProcessor\Source\MailingSource', E::ts('Mailing'));
     $this->addDataSource('mailing_job', 'Civi\DataProcessor\Source\MailingJobSource', E::ts('Mailing Job'));
+    $this->addDataSource('mailing_group', 'Civi\DataProcessor\Source\MailingGroupSource', E::ts('Mailing Group'));
     $this->addOutput('api', 'Civi\DataProcessor\Output\Api', E::ts('API'));
     $this->addFilter('simple_sql_filter', 'Civi\DataProcessor\FilterHandler\SimpleSqlFilter', E::ts('Simple Filter'));
     $this->addjoinType('simple_join', 'Civi\DataProcessor\DataFlow\MultipleDataFlows\SimpleJoin', E::ts('Simple Join'));
diff --git a/Civi/DataProcessor/Source/AbstractCivicrmEntitySource.php b/Civi/DataProcessor/Source/AbstractCivicrmEntitySource.php
index fa9e0bf6..046b6b77 100644
--- a/Civi/DataProcessor/Source/AbstractCivicrmEntitySource.php
+++ b/Civi/DataProcessor/Source/AbstractCivicrmEntitySource.php
@@ -159,7 +159,7 @@ abstract class AbstractCivicrmEntitySource implements SourceInterface {
         continue;
       }
       $type = \CRM_Utils_Type::typeToString($field['type']);
-      $options = $bao::buildOptions($field['name']);
+      $options = $dao::buildOptions($field['name']);
       $alias = $this->getSourceName(). '_'.$field['name'];
       $fieldSpec = new FieldSpecification($field['name'], $type, $field['title'], $options, $alias);
       $dataSpecification->addFieldSpecification($fieldSpec->name, $fieldSpec);
diff --git a/Civi/DataProcessor/Source/MailingGroupSource.php b/Civi/DataProcessor/Source/MailingGroupSource.php
new file mode 100644
index 00000000..41f5b332
--- /dev/null
+++ b/Civi/DataProcessor/Source/MailingGroupSource.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * @author Jaap Jansma <jaap.jansma@civicoop.org>
+ * @license AGPL-3.0
+ */
+
+namespace Civi\DataProcessor\Source;
+
+use Civi\DataProcessor\DataFlow\SqlTableDataFlow;
+use Civi\DataProcessor\DataSpecification\DataSpecification;
+use Civi\DataProcessor\DataSpecification\FieldSpecification;
+
+use CRM_Dataprocessor_ExtensionUtil as E;
+
+class MailingGroupSource extends AbstractCivicrmEntitySource {
+
+  /**
+   * Returns the entity name
+   *
+   * @return String
+   */
+  protected function getEntity() {
+    return 'MailingGroup';
+  }
+
+  /**
+   * Returns the table name of this entity
+   *
+   * @return String
+   */
+  protected function getTable() {
+    return 'civicrm_mailing_group';
+  }
+
+}
\ No newline at end of file
-- 
GitLab