Skip to content

Commit

Permalink
REST: Implement mci_get_version() and use it
Browse files Browse the repository at this point in the history
- Implement `mci_get_version()` similar to `mci_get_category()`
- Move `mci_get_category()` from `mc_issue_api.php` to `mc_api.php`.
- Change `mci_get_category()` to return null instead of array( ‘category’ => null )
in case of REST when category is not set.
- For SOAP if category is not set, return null from `mci_get_category()`.
  • Loading branch information
vboctor committed Apr 23, 2017
1 parent 7982443 commit 7b3126f
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 52 deletions.
43 changes: 43 additions & 0 deletions api/soap/mc_api.php
Expand Up @@ -700,6 +700,49 @@ function mci_user_get_accessible_subprojects( $p_user_id, $p_parent_project_id,
return $t_result;
}

/**
* Convert version into appropriate format for SOAP/REST.
*
* @param string $p_version The version
* @return array|null|string The converted version
*/
function mci_get_version( $p_version ) {
if( ApiObjectFactory::$soap ) {
return mci_null_if_empty( $p_version );
}

if( is_blank( $p_version ) ) {
return null;
}

return array( 'name' => $p_version );
}

/**
* Returns the category name, possibly null if no category is assigned
*
* @param integer $p_category_id A category identifier.
* @return string
*/
function mci_get_category( $p_category_id ) {
if( ApiObjectFactory::$soap ) {
if( $p_category_id == 0 ) {
return null;
}

return mci_null_if_empty( category_get_name( $p_category_id ) );
}

if( $p_category_id == 0 ) {
return null;
}

return array(
'id' => $p_category_id,
'name' => mci_null_if_empty( category_get_name( $p_category_id ) ),
);
}

/**
* Convert a category name to a category id for a given project
* @param string|array $p_category Category name or array with id and/or name.
Expand Down
58 changes: 6 additions & 52 deletions api/soap/mc_issue_api.php
Expand Up @@ -131,31 +131,6 @@ function mc_issue_get_history( $p_username, $p_password, $p_issue_id ) {
return $t_bug_history;
}

/**
* Returns the category name, possibly null if no category is assigned
*
* @param integer $p_category_id A category identifier.
* @return string
*/
function mci_get_category( $p_category_id ) {
if( ApiObjectFactory::$soap ) {
if( $p_category_id == 0 ) {
return '';
}

return mci_null_if_empty( category_get_name( $p_category_id ) );
}

if( $p_category_id == 0 ) {
return array( 'category' => null );
}

return array(
'id' => $p_category_id,
'name' => mci_null_if_empty( category_get_name( $p_category_id ) ),
);
}

/**
* Get due date for a given bug
* @param BugData $p_bug A BugData object.
Expand Down Expand Up @@ -1542,6 +1517,12 @@ function mci_issue_data_as_array( BugData $p_issue_data, $p_user_id, $p_lang ) {

$t_issue['project'] = mci_project_as_array_by_id( $p_issue_data->project_id );
$t_issue['category'] = mci_get_category( $p_issue_data->category_id );
$t_issue['version'] = mci_get_version( $p_issue_data->version );
$t_issue['fixed_in_version'] = mci_get_version( $p_issue_data->fixed_in_version );
if( access_has_bug_level( config_get( 'roadmap_view_threshold' ), $t_id ) ) {
$t_issue['target_version'] = mci_get_version( $p_issue_data->target_version );
}

$t_issue['reporter'] = mci_account_get_array_by_id( $p_issue_data->reporter_id );

if( !empty( $p_issue_data->handler_id ) &&
Expand Down Expand Up @@ -1582,17 +1563,6 @@ function mci_issue_data_as_array( BugData $p_issue_data, $p_user_id, $p_lang ) {
$t_updated_at = ApiObjectFactory::datetime( $p_issue_data->last_updated );

if( ApiObjectFactory::$soap ) {
# TODO: create mci_get_version
$t_issue['version'] = mci_null_if_empty( $p_issue_data->version );

# TODO: create mci_get_version
$t_issue['fixed_in_version'] = mci_null_if_empty( $p_issue_data->fixed_in_version );

# TODO: create mci_get_version
if( access_has_bug_level( config_get( 'roadmap_view_threshold' ), $t_id ) ) {
$t_issue['target_version'] = mci_null_if_empty( $p_issue_data->target_version );
}

if( config_get( 'enable_profiles' ) != OFF ) {
$t_issue['profile_id'] = (int)$p_issue_data->profile_id;
}
Expand All @@ -1613,22 +1583,6 @@ function mci_issue_data_as_array( BugData $p_issue_data, $p_user_id, $p_lang ) {
}
}

# TODO: create mci_get_version
if( !is_blank( $p_issue_data->version ) ) {
$t_issue['version'] = array( 'name' => $p_issue_data->version );
}

# TODO: create mci_get_version()
if( !is_blank( $p_issue_data->fixed_in_version ) ) {
$t_issue['fixed_in_version'] = array( 'name' => $p_issue_data->fixed_in_version );
}

# TODO: Create mci_get_version()
if( !is_blank( $p_issue_data->target_version ) &&
access_has_bug_level( config_get( 'roadmap_view_threshold' ), $t_id ) ) {
$t_issue['target_version'] = array('name' => $p_issue_data->target_version);
}

$t_issue['sticky'] = (bool)$p_issue_data->sticky;
$t_issue['created_at'] = $t_created_at;
$t_issue['updated_at'] = $t_updated_at;
Expand Down

0 comments on commit 7b3126f

Please sign in to comment.