Skip to content

Commit

Permalink
API sync - Clean code,move exceptions CiviCooP#25
Browse files Browse the repository at this point in the history
  • Loading branch information
rubofvil committed Jul 2, 2021
1 parent 9961534 commit 70ca321
Showing 1 changed file with 17 additions and 29 deletions.
46 changes: 17 additions & 29 deletions api/v3/Documents.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ function _civicrm_api3_documents_import_spec(array &$params) : void {
'type' => CRM_Utils_Type::T_INT,
'title' => E::ts('Custom Field ID'),
'api.required' => 'TRUE',
'options' => get_custom_fields_ids_files(),
];
}

Expand All @@ -30,6 +29,22 @@ function _civicrm_api3_documents_import_spec(array &$params) : void {
* @return array
*/
function civicrm_api3_documents_import(array $params) : array {

$customFieldId = $params['custom_field_id'];
try{
$custom_field = civicrm_api3('CustomField', 'getSingle', [
'id' => $customFieldId,
'api.CustomGroup.getSingle' => [],
]);
}
catch(Exception $e){
return civicrm_api3_create_error("custom_field_id does not exists", $params);
}

if($custom_field['data_type'] != "File"){
return civicrm_api3_create_error("custom_field_id is not type File", $params);
}

$custom_field = civicrm_api3('CustomField', 'getSingle', [
'id' => $params['custom_field_id'],
'api.CustomGroup.getSingle' => [],
Expand Down Expand Up @@ -68,8 +83,6 @@ function civicrm_api3_documents_import(array $params) : array {
$filePath = Civi::paths()->getPath("[civicrm.files]/custom/{$file_ori['uri']}");
$new_path = CRM_Utils_File::duplicate($filePath);

$file_ori['mime_type'];

$repository = CRM_Documents_Entity_DocumentRepository::singleton();
$document = new CRM_Documents_Entity_Document();
$document->setSubject($params['subject']);
Expand Down Expand Up @@ -102,30 +115,5 @@ function civicrm_api3_documents_import(array $params) : array {
$count++;
}
// ToDo better return of API
$values_imported = ['count' => $count];
return civicrm_api3_create_success($values_imported, $params, 'Documents', 'import');
return civicrm_api3_create_success(['count' => $count], $params, 'Documents', 'import');
}

/**
* Get the custom fields avalibles to use
*
* @return array
*/
function get_custom_fields_ids_files () : array {
$custom_fields_files = civicrm_api3('CustomField', 'get', [
'sequential' => 1,
'return' => ["id"],
'data_type' => "File",
'options' => ['limit' => 0],
]);

if (!is_array($custom_fields_files['values'])) {
throw new API_Exception(E::ts('Not exist custom fields of type File.'));
}

$custom_fields_avalible = [];
foreach ($custom_fields_files['values'] as $custom_fields_files) {
$custom_fields_avalible[$custom_fields_files['id']] = $custom_fields_files['id'];
}
return $custom_fields_avalible;
}

0 comments on commit 70ca321

Please sign in to comment.