From fa093e4b68fb02b4bf344c841d04ee04ce1bff76 Mon Sep 17 00:00:00 2001 From: Marc Michalsky forumZFD Date: Wed, 17 Feb 2021 12:41:24 +0100 Subject: [PATCH] implement TwingleCampaign.delete api --- api/v3/TwingleCampaign/Create.php | 2 +- api/v3/TwingleCampaign/Delete.php | 53 +++++++++++++++++++------------ 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/api/v3/TwingleCampaign/Create.php b/api/v3/TwingleCampaign/Create.php index dbb1df6..6033871 100644 --- a/api/v3/TwingleCampaign/Create.php +++ b/api/v3/TwingleCampaign/Create.php @@ -62,7 +62,7 @@ function civicrm_api3_twingle_campaign_Create(array $params): array { $params = array_intersect_key($params, $allowed_params); // instantiate TwingleCampaign - $campaign = new TwingleCampaign($params); + $campaign = new TwingleCampaign($params, $params['id']); // Try to create the TwingleCampaign try { diff --git a/api/v3/TwingleCampaign/Delete.php b/api/v3/TwingleCampaign/Delete.php index cd1ae99..33b07aa 100644 --- a/api/v3/TwingleCampaign/Delete.php +++ b/api/v3/TwingleCampaign/Delete.php @@ -1,4 +1,6 @@ 'id', + 'title' => E::ts('Twingle Campaign ID'), + 'type' => CRM_Utils_Type::T_INT, + 'api.required' => 0, + 'description' => E::ts('The Twingle Campaign ID'), + ]; } /** - * TwingleCampaign.Delete API + * # TwingleCampaign.Delete API + * This API allows you to delete a single TwingleCampaign at a time. * * @param array $params * * @return array * API result descriptor * + * @throws CiviCRM_API3_Exception * @see civicrm_api3_create_success - * - * @throws API_Exception */ -function civicrm_api3_twingle_campaign_Delete($params) { - if (array_key_exists('magicword', $params) && $params['magicword'] == 'sesame') { - $returnValues = array( - // OK, return several data rows - 12 => ['id' => 12, 'name' => 'Twelve'], - 34 => ['id' => 34, 'name' => 'Thirty four'], - 56 => ['id' => 56, 'name' => 'Fifty six'], - ); - // ALTERNATIVE: $returnValues = []; // OK, success - // ALTERNATIVE: $returnValues = ["Some value"]; // OK, return a single value +function civicrm_api3_twingle_campaign_Delete(array $params): array { - // Spec: civicrm_api3_create_success($values = 1, $params = [], $entity = NULL, $action = NULL) - return civicrm_api3_create_success($returnValues, $params, 'TwingleCampaign', 'Delete'); - } - else { - throw new API_Exception(/*error_message*/ 'Everyone knows that the magicword is "sesame"', /*error_code*/ 'magicword_incorrect'); - } + // Filter parameters + $allowed_params = []; + _civicrm_api3_twingle_campaign_Delete_spec($allowed_params); + $params = array_intersect_key($params, $allowed_params); + + // Instantiate TwingleCampaign + $campaign = new TwingleCampaign([], $params['id']); + + // Delete TwingleCampaign via method + $campaign->delete(); + + // Return results + return civicrm_api3_create_success( + $campaign->getResponse('TwingleCampaign deleted'), + $params, + 'TwingleCampaign', + 'Delete' + ); }