Skip to content

Commit

Permalink
New function mci_project_get_row()
Browse files Browse the repository at this point in the history
Avoid duplicated code in
- mc_projects_get_user_accessible
- mci_user_get_accessible_subprojects()
  • Loading branch information
dregad committed Feb 18, 2024
1 parent 3072c16 commit ef8b79a
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 24 deletions.
13 changes: 1 addition & 12 deletions api/soap/mc_api.php
Expand Up @@ -887,18 +887,7 @@ function mci_user_get_accessible_subprojects( $p_user_id, $p_parent_project_id,

$t_result = array();
foreach( user_get_accessible_subprojects( $p_user_id, $p_parent_project_id ) as $t_subproject_id ) {
$t_subproject_row = project_cache_row( $t_subproject_id );
$t_subproject = array();
$t_subproject['id'] = $t_subproject_id;
$t_subproject['name'] = $t_subproject_row['name'];
$t_subproject['status'] = mci_enum_get_array_by_id( $t_subproject_row['status'], 'project_status', $t_lang );
$t_subproject['enabled'] = $t_subproject_row['enabled'];
$t_subproject['view_state'] = mci_enum_get_array_by_id( $t_subproject_row['view_state'], 'project_view_state', $t_lang );
$t_subproject['access_min'] = mci_enum_get_array_by_id( $t_subproject_row['access_min'], 'access_levels', $t_lang );
$t_subproject['file_path'] = array_key_exists( 'file_path', $t_subproject_row ) ? $t_subproject_row['file_path'] : '';
$t_subproject['description'] = array_key_exists( 'description', $t_subproject_row ) ? $t_subproject_row['description'] : '';
$t_subproject['subprojects'] = mci_user_get_accessible_subprojects( $p_user_id, $t_subproject_id, $t_lang );
$t_result[] = $t_subproject;
$t_result[] = mci_project_get_row( $t_subproject_id, $p_user_id, $t_lang );
}

return $t_result;
Expand Down
39 changes: 27 additions & 12 deletions api/soap/mc_project_api.php
Expand Up @@ -181,23 +181,38 @@ function mc_projects_get_user_accessible( $p_username, $p_password ) {

$t_result = array();
foreach( user_get_accessible_projects( $t_user_id ) as $t_project_id ) {
$t_project_row = project_cache_row( $t_project_id );
$t_project = array();
$t_project['id'] = $t_project_id;
$t_project['name'] = $t_project_row['name'];
$t_project['status'] = mci_enum_get_array_by_id( $t_project_row['status'], 'project_status', $t_lang );
$t_project['enabled'] = $t_project_row['enabled'];
$t_project['view_state'] = mci_enum_get_array_by_id( $t_project_row['view_state'], 'project_view_state', $t_lang );
$t_project['access_min'] = mci_enum_get_array_by_id( $t_project_row['access_min'], 'access_levels', $t_lang );
$t_project['file_path'] = array_key_exists( 'file_path', $t_project_row ) ? $t_project_row['file_path'] : '';
$t_project['description'] = array_key_exists( 'description', $t_project_row ) ? $t_project_row['description'] : '';
$t_project['subprojects'] = mci_user_get_accessible_subprojects( $t_user_id, $t_project_id, $t_lang );
$t_result[] = $t_project;
$t_result[] = mci_project_get_row( $t_project_id, $t_user_id, $t_lang );
}

return $t_result;
}

/**
* Retrieves project data.
*
* @param int $p_project_id
* @param int $p_user_id
* @param string $p_lang
*
* @return array
* @throws ClientException
*/
function mci_project_get_row( $p_project_id, $p_user_id, $p_lang ) {
$t_project = project_cache_row( $p_project_id );

return array(
'id' => $p_project_id,
'name' => $t_project['name'],
'status' => mci_enum_get_array_by_id( $t_project['status'], 'project_status', $p_lang ),
'enabled' => $t_project['enabled'],
'view_state' => mci_enum_get_array_by_id( $t_project['view_state'], 'project_view_state', $p_lang ),
'access_min' => mci_enum_get_array_by_id( $t_project['access_min'], 'access_levels', $p_lang ),
'file_path' => array_key_exists( 'file_path', $t_project ) ? $t_project['file_path'] : '',
'description' => array_key_exists( 'description', $t_project ) ? $t_project['description'] : '',
'subprojects' => mci_user_get_accessible_subprojects( $p_user_id, $p_project_id, $p_lang ),
);
}

/**
* Get all categories of a project.
*
Expand Down

0 comments on commit ef8b79a

Please sign in to comment.