];
$participantValues = [];
//@todo calling api functions directly is not supported
- $newParticipant = _civicrm_api3_deprecated_participant_check_params($formatted, $participantValues, FALSE);
+ $newParticipant = $this->deprecated_participant_check_params($formatted, $participantValues, FALSE);
if ($newParticipant['error_message']) {
array_unshift($values, $newParticipant['error_message']);
return CRM_Import_Parser::ERROR;
'contact_type' => $this->_contactType,
'used' => 'Unsupervised',
];
- $fieldsArray = CRM_Dedupe_BAO_Rule::dedupeRuleFields($ruleParams);
+ $fieldsArray = CRM_Dedupe_BAO_DedupeRule::dedupeRuleFields($ruleParams);
$disp = '';
foreach ($fieldsArray as $value) {
}
/**
- * @deprecated - this is part of the import parser not the API & needs to be moved on out
- *
* @param array $params
* @param $onDuplicate
*
* @return array|bool
* <type>
+ * @throws \CiviCRM_API3_Exception
+ * @deprecated - this is part of the import parser not the API & needs to be
+ * moved on out
+ *
*/
protected function deprecated_create_participant_formatted($params, $onDuplicate) {
if ($onDuplicate != CRM_Import_Parser::DUPLICATE_NOCHECK) {
CRM_Core_Error::reset();
- $error = _civicrm_api3_deprecated_participant_check_params($params, TRUE);
+ $error = $this->deprecated_participant_check_params($params, TRUE);
if (civicrm_error($error)) {
return $error;
}
}
- return civicrm_api3_participant_create($params);
+ return civicrm_api3('Participant', 'create', $params);
+ }
+
+ /**
+ * Formatting that was written a long time ago and may not make sense now.
+ *
+ * @param array $params
+ *
+ * @param bool $checkDuplicate
+ *
+ * @return array|bool
+ */
+ protected function deprecated_participant_check_params($params, $checkDuplicate = FALSE) {
+
+ // check if participant id is valid or not
+ if (!empty($params['id'])) {
+ $participant = new CRM_Event_BAO_Participant();
+ $participant->id = $params['id'];
+ if (!$participant->find(TRUE)) {
+ return civicrm_api3_create_error(ts('Participant id is not valid'));
+ }
+ }
+
+ // check if contact id is valid or not
+ if (!empty($params['contact_id'])) {
+ $contact = new CRM_Contact_BAO_Contact();
+ $contact->id = $params['contact_id'];
+ if (!$contact->find(TRUE)) {
+ return civicrm_api3_create_error(ts('Contact id is not valid'));
+ }
+ }
+
+ // check that event id is not an template
+ if (!empty($params['event_id'])) {
+ $isTemplate = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $params['event_id'], 'is_template');
+ if (!empty($isTemplate)) {
+ return civicrm_api3_create_error(ts('Event templates are not meant to be registered.'));
+ }
+ }
+
+ $result = [];
+ if ($checkDuplicate) {
+ if (CRM_Event_BAO_Participant::checkDuplicate($params, $result)) {
+ $participantID = array_pop($result);
+
+ $error = CRM_Core_Error::createError("Found matching participant record.",
+ CRM_Core_Error::DUPLICATE_PARTICIPANT,
+ 'Fatal', $participantID
+ );
+
+ return civicrm_api3_create_error($error->pop(),
+ [
+ 'contactID' => $params['contact_id'],
+ 'participantID' => $participantID,
+ ]
+ );
+ }
+ }
+ return TRUE;
}
}