Commit | Line | Data |
---|---|---|
ff9340a4 CW |
1 | <?php |
2 | /* | |
3 | +--------------------------------------------------------------------+ | |
a30c801b | 4 | | Copyright CiviCRM LLC. All rights reserved. | |
ff9340a4 | 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 | | |
ff9340a4 CW |
9 | +--------------------------------------------------------------------+ |
10 | */ | |
11 | ||
12 | /** | |
13 | * This api exposes CiviCRM CaseContact records. | |
14 | * | |
15 | * @package CiviCRM_APIv3 | |
16 | */ | |
17 | ||
18 | /** | |
19 | * Save a CaseContact. | |
20 | * | |
21 | * @param array $params | |
22 | * | |
23 | * @return array | |
24 | */ | |
25 | function civicrm_api3_case_contact_create($params) { | |
a25b46e9 | 26 | return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'CaseContact'); |
ff9340a4 CW |
27 | } |
28 | ||
1816ac4c CW |
29 | /** |
30 | * @param array $fields | |
31 | */ | |
32 | function _civicrm_api3_case_contact_create_spec(&$fields) { | |
33 | $fields['contact_id']['api.required'] = $fields['case_id']['api.required'] = 1; | |
34 | } | |
35 | ||
ff9340a4 CW |
36 | /** |
37 | * Get a CaseContact. | |
38 | * | |
39 | * @param array $params | |
40 | * | |
41 | * @return array | |
42 | * Array of retrieved case_contact property values. | |
43 | */ | |
44 | function civicrm_api3_case_contact_get($params) { | |
45 | return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params); | |
46 | } | |
47 | ||
48 | /** | |
49 | * Delete a CaseContact. | |
50 | * | |
51 | * @param array $params | |
52 | * | |
53 | * @return array | |
54 | * Array of deleted values. | |
55 | */ | |
56 | function civicrm_api3_case_contact_delete($params) { | |
57 | return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params); | |
58 | } | |
59 | ||
60 | /** | |
61 | * Results formatting for Case entityRef lookups. | |
62 | * | |
63 | * @param array $result | |
64 | * @param array $request | |
65 | * @param string $entity | |
66 | * @param array $fields | |
67 | * | |
68 | * @return array | |
69 | */ | |
70 | function _civicrm_api3_case_contact_getlist_output($result, $request, $entity, $fields) { | |
cf8f0fff | 71 | $output = []; |
ff9340a4 CW |
72 | if (!empty($result['values'])) { |
73 | foreach ($result['values'] as $row) { | |
cf8f0fff | 74 | $data = [ |
ff9340a4 CW |
75 | 'id' => $row[$request['id_field']], |
76 | 'label' => $row[$request['label_field']] . ' - ' . $row['case_id.case_type_id.title'], | |
cf8f0fff | 77 | ]; |
ff9340a4 CW |
78 | $status = CRM_Core_PseudoConstant::getLabel('CRM_Case_BAO_Case', 'status_id', $row['case_id.status_id']); |
79 | $date = CRM_Utils_Date::customFormat($row['case_id.start_date']); | |
cf8f0fff CW |
80 | $data['description'] = [ |
81 | "#{$row['case_id']}: $status " . ts('(opened %1)', [1 => $date]), | |
ff9340a4 | 82 | $row['case_id.subject'], |
cf8f0fff | 83 | ]; |
ff9340a4 | 84 | if (!empty($request['image_field'])) { |
2e1f50d6 | 85 | $data['image'] = $row[$request['image_field']] ?? ''; |
ff9340a4 CW |
86 | } |
87 | $output[] = $data; | |
88 | } | |
89 | } | |
90 | return $output; | |
91 | } |