From 452b9e0492c3ed51f801b1703682c0ea8a1340d0 Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Thu, 8 Jan 2015 17:34:57 +1300 Subject: [PATCH] CRM-15798 membership_type api tidy-up - preparatory to test fixes --- CRM/Member/BAO/MembershipType.php | 12 +++++++++++- api/v3/MembershipType.php | 12 +----------- tests/phpunit/api/v3/MembershipTest.php | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/CRM/Member/BAO/MembershipType.php b/CRM/Member/BAO/MembershipType.php index b5f4dd3eec..59bfb5bdeb 100644 --- a/CRM/Member/BAO/MembershipType.php +++ b/CRM/Member/BAO/MembershipType.php @@ -128,10 +128,20 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType { if ($id) { self::updateAllPriceFieldValue($id, $params); } - + self::flush(); return $membershipType; } + /** + * Flush anywhere that membership types might be cached + * @throws \CiviCRM_API3_Exception + */ + static function flush() { + CRM_Member_PseudoConstant::membershipType(NULL, TRUE); + civicrm_api3('membership', 'getfields', array('cache_clear' => 1, 'fieldname' => 'membership_type_id')); + civicrm_api3('profile', 'getfields', array('action' => 'submit', 'cache_clear' => 1)); + } + /** * Delete membership Types * diff --git a/api/v3/MembershipType.php b/api/v3/MembershipType.php index 483fb710f7..1fe6772f56 100644 --- a/api/v3/MembershipType.php +++ b/api/v3/MembershipType.php @@ -46,17 +46,7 @@ * newly created or updated membership type property values. */ function civicrm_api3_membership_type_create($params) { - $ids['membershipType'] = CRM_Utils_Array::value('id', $params); - $ids['memberOfContact'] = CRM_Utils_Array::value('member_of_contact_id', $params); - $ids['contributionType'] = CRM_Utils_Array::value('financial_type_id', $params); - - $membershipTypeBAO = CRM_Member_BAO_MembershipType::add($params, $ids); - $membershipType = array(); - _civicrm_api3_object_to_array($membershipTypeBAO, $membershipType[$membershipTypeBAO->id]); - CRM_Member_PseudoConstant::membershipType(NULL, TRUE); - civicrm_api3('membership', 'getfields', array('cache_clear' => 1, 'fieldname' => 'membership_type_id')); - civicrm_api3('profile', 'getfields', array('action' => 'submit', 'cache_clear' => 1)); - return civicrm_api3_create_success($membershipType, $params, 'membership_type', 'create', $membershipTypeBAO); + return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'Membership_type'); } /** diff --git a/tests/phpunit/api/v3/MembershipTest.php b/tests/phpunit/api/v3/MembershipTest.php index d5eb12c08f..8ed9bc10c4 100644 --- a/tests/phpunit/api/v3/MembershipTest.php +++ b/tests/phpunit/api/v3/MembershipTest.php @@ -1019,7 +1019,7 @@ class api_v3_MembershipTest extends CiviUnitTestCase { /** - * Test that if datesdate are not set they not over-ridden if id is passed in + * Test that if dates are set they not over-ridden if id is passed in */ public function testMembershipDatesNotOverridden() { $result = $this->callAPISuccess($this->_entity, 'create', $this->_params); -- 2.25.1