Merge pull request #17522 from seamuslee001/remove_deprecated_methods
[civicrm-core.git] / api / v3 / UFField.php
CommitLineData
6a488035 1<?php
6a488035
TO
2/*
3 +--------------------------------------------------------------------+
a30c801b 4 | Copyright CiviCRM LLC. All rights reserved. |
6a488035 5 | |
a30c801b
TO
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
6a488035
TO
9 +--------------------------------------------------------------------+
10 */
11
12/**
c28e1768 13 * This api exposes CiviCRM profile field.
6a488035
TO
14 *
15 * @package CiviCRM_APIv3
6a488035
TO
16 */
17
6a488035
TO
18/**
19 * Defines 'uf field' within a group.
20 *
16b10e64 21 * @param array $params
2e66abf8 22 * Array per getfields metadata.
6a488035 23 *
7e42d294 24 * @throws API_Exception
7e42d294 25 *
a6c01b45 26 * @return array
72b3a70c 27 * Newly created $ufFieldArray
6a488035
TO
28 */
29function civicrm_api3_uf_field_create($params) {
ddaf2161 30 return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'UFField');
6a488035
TO
31}
32
33/**
9d32e6f7 34 * Adjust metadata for civicrm_uf_field create.
6a488035 35 *
c490a46a 36 * @param array $params
6a488035
TO
37 */
38function _civicrm_api3_uf_field_create_spec(&$params) {
8114c378
SB
39 $params['field_name']['api.required'] = TRUE;
40 $params['uf_group_id']['api.required'] = TRUE;
41
cf8f0fff 42 $params['option.autoweight'] = [
b2ed8e73
CW
43 'title' => "Auto Weight",
44 'description' => "Automatically adjust weights in UFGroup to align with UFField",
7e42d294 45 'type' => CRM_Utils_Type::T_BOOLEAN,
46 'api.default' => TRUE,
cf8f0fff 47 ];
6616c349 48 $params['is_active']['api.default'] = TRUE;
6a488035
TO
49}
50
51/**
22242c87 52 * Returns array of uf groups (profiles) matching a set of one or more group properties.
6a488035 53 *
cf470720 54 * @param array $params
9d32e6f7 55 * Array per getfields metadata.
6a488035 56 *
a6c01b45 57 * @return array
6a488035
TO
58 */
59function civicrm_api3_uf_field_get($params) {
60 return _civicrm_api3_basic_get('CRM_Core_BAO_UFField', $params);
61}
62
63/**
9d32e6f7 64 * Delete uf field.
6a488035 65 *
c490a46a 66 * @param array $params
7e42d294 67 *
68 * @throws API_Exception
6a488035 69 *
72b3a70c 70 * @return array
6a488035
TO
71 */
72function civicrm_api3_uf_field_delete($params) {
73 $fieldId = $params['id'];
74
75 $ufGroupId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFField', $fieldId, 'uf_group_id');
76 if (!$ufGroupId) {
3f1a97cd 77 throw new API_Exception('Invalid value for field_id.');
6a488035
TO
78 }
79
80 $result = CRM_Core_BAO_UFField::del($fieldId);
81
82 $fieldsType = CRM_Core_BAO_UFGroup::calculateGroupType($ufGroupId, TRUE);
83 CRM_Core_BAO_UFGroup::updateGroupTypes($ufGroupId, $fieldsType);
84
85 return civicrm_api3_create_success($result, $params);
86}
645ee340 87
7e42d294 88/**
22242c87
EM
89 * Field id accepted for backward compatibility - unset required on id.
90 *
d0997921 91 * @param array $params
6a488035
TO
92 */
93function _civicrm_api3_uf_field_delete_spec(&$params) {
94 // legacy support for field_id
cf8f0fff 95 $params['id']['api.aliases'] = ['field_id'];
6a488035 96}