Commit | Line | Data |
---|---|---|
15d9b3ae | 1 | <?php |
15d9b3ae N |
2 | /* |
3 | +--------------------------------------------------------------------+ | |
a30c801b | 4 | | Copyright CiviCRM LLC. All rights reserved. | |
15d9b3ae | 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 | | |
15d9b3ae | 9 | +--------------------------------------------------------------------+ |
d25dd0ee | 10 | */ |
15d9b3ae N |
11 | |
12 | /** | |
c28e1768 | 13 | * This api exposes CiviCRM dashboard contacts. |
15d9b3ae N |
14 | * |
15 | * @package CiviCRM_APIv3 | |
15d9b3ae N |
16 | */ |
17 | ||
18 | /** | |
61fe4988 | 19 | * Creates/Updates a new Dashboard Contact Entry. |
15d9b3ae N |
20 | * |
21 | * @param array $params | |
22 | * | |
23 | * @return array | |
15d9b3ae N |
24 | */ |
25 | function civicrm_api3_dashboard_contact_create($params) { | |
15d9b3ae | 26 | $errors = _civicrm_api3_dashboard_contact_check_params($params); |
dcf56200 TO |
27 | if ($errors !== NULL) { |
28 | return $errors; | |
29 | } | |
a25b46e9 | 30 | return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'DashboardContact'); |
15d9b3ae N |
31 | } |
32 | ||
33 | /** | |
2e66abf8 | 34 | * Gets a CiviCRM Dashlets of Contacts according to parameters. |
15d9b3ae | 35 | * |
cf470720 | 36 | * @param array $params |
2e66abf8 | 37 | * Array per getfields metadata. |
15d9b3ae N |
38 | * |
39 | * @return array | |
15d9b3ae N |
40 | */ |
41 | function civicrm_api3_dashboard_contact_get($params) { | |
dcf56200 | 42 | return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params); |
15d9b3ae N |
43 | } |
44 | ||
45 | /** | |
0aa0303c EM |
46 | * Adjust Metadata for Create action. |
47 | * | |
48 | * The metadata is used for setting defaults, documentation & validation. | |
15d9b3ae | 49 | * |
3a86ec51 CW |
50 | * @param array $fields |
51 | * Array of fields determined by getfields. | |
15d9b3ae | 52 | */ |
3a86ec51 CW |
53 | function _civicrm_api3_dashboard_contact_create_spec(&$fields) { |
54 | $fields['dashboard_id']['api.required'] = TRUE; | |
15d9b3ae N |
55 | } |
56 | ||
aa1b1481 | 57 | /** |
2e66abf8 EM |
58 | * Check permissions on contact dashboard retrieval. |
59 | * | |
c490a46a | 60 | * @param array $params |
2e66abf8 | 61 | * Array per getfields metadata. |
aa1b1481 EM |
62 | * |
63 | * @return array|null | |
64 | */ | |
15d9b3ae | 65 | function _civicrm_api3_dashboard_contact_check_params(&$params) { |
3a86ec51 | 66 | if (!empty($params['dashboard_id'])) { |
2975f0aa | 67 | $allDashlets = CRM_Core_BAO_Dashboard::getDashlets(TRUE, $params['check_permissions'] ?? FALSE); |
3a86ec51 | 68 | if (!isset($allDashlets[$params['dashboard_id']])) { |
ee117e9c | 69 | return civicrm_api3_create_error('Invalid or inaccessible dashboard ID'); |
dcf56200 | 70 | } |
15d9b3ae | 71 | } |
151da6c3 | 72 | return NULL; |
510513d8 TO |
73 | } |
74 | ||
75 | /** | |
dc64d047 | 76 | * Delete an existing dashboard-contact. |
510513d8 | 77 | * |
d0997921 | 78 | * @param array $params |
dc64d047 | 79 | * |
645ee340 EM |
80 | * @return array |
81 | * @throws \API_Exception | |
510513d8 TO |
82 | */ |
83 | function civicrm_api3_dashboard_contact_delete($params) { | |
84 | return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params); | |
85 | } |