--- /dev/null
+<?php
+namespace Civi\Afform\Event;
+
+use Symfony\Component\EventDispatcher\Event;
+
+class AfformBaseEvent extends Event {
+
+ /**
+ * @var array
+ * The main 'Afform' record/configuration.
+ */
+ public $afform;
+
+ /**
+ * @var \Civi\Afform\FormDataModel
+ */
+ public $formDataModel;
+
+ /**
+ * @var \Civi\Api4\Generic\AbstractAction
+ */
+ public $apiRequest;
+
+ /**
+ * AfformBaseEvent constructor.
+ * @param array $afform
+ * @param \Civi\Afform\FormDataModel $formDataModel
+ * @param \Civi\Api4\Generic\AbstractAction $apiRequest
+ */
+ public function __construct(array $afform, \Civi\Afform\FormDataModel $formDataModel, \Civi\Api4\Generic\AbstractAction $apiRequest) {
+ $this->afform = $afform;
+ $this->formDataModel = $formDataModel;
+ $this->apiRequest = $apiRequest;
+ }
+
+ /**
+ * @return \Civi\Api4\Generic\AbstractAction
+ */
+ public function getApiRequest() {
+ return $this->apiRequest;
+ }
+
+}
<?php
namespace Civi\Afform\Event;
-use Symfony\Component\EventDispatcher\Event;
+use Civi\Afform\FormDataModel;
+use Civi\Api4\Action\Afform\Submit;
/**
* Class AfformSubmitEvent
* methods. For the moment, this is only expected to be used internally,
* so KISS.
*/
-class AfformSubmitEvent extends Event {
+class AfformSubmitEvent extends AfformBaseEvent {
/**
* @var array
/**
* AfformSubmitEvent constructor.
- * @param $entityDefns
+ *
+ * @param array $afform
+ * @param \Civi\Afform\FormDataModel $formDataModel
+ * @param \Civi\Api4\Action\Afform\Submit $apiRequest
+ * @param array $entityDefns
* @param array $entityValues
*/
- public function __construct($entityDefns, array $entityValues) {
+ public function __construct(array $afform, FormDataModel $formDataModel, Submit $apiRequest, $entityDefns, array $entityValues) {
+ parent::__construct($afform, $formDataModel, $apiRequest);
$this->entityDefns = $entityDefns;
$this->entityValues = $entityValues;
}
}
}
}
-
- $event = new AfformSubmitEvent($this->_formDataModel->getEntities(), $entityValues);
+ $event = new AfformSubmitEvent($this->_afform, $this->_formDataModel, $this, $this->_formDataModel->getEntities(), $entityValues);
\Civi::dispatcher()->dispatch(self::EVENT_NAME, $event);
foreach ($event->entityValues as $entityType => $entities) {
if (!empty($entities)) {