コード例 #1
0
ファイル: mc_api.php プロジェクト: Tarendai/spring-website
 static function newDateTimeString($p_timestamp)
 {
     if ($p_timestamp == null || date_is_null($p_timestamp)) {
         return null;
     } else {
         if (function_exists('timestamp_to_iso8601')) {
             return timestamp_to_iso8601($p_timestamp, false);
         } else {
             return date('c', (int) $p_timestamp);
         }
     }
 }
コード例 #2
0
 protected function parseParam($value, $type = null)
 {
     if ($type == self::PARAM_TYPE_TIMESTAMP) {
         if (is_null($value)) {
             return null;
         }
         return timestamp_to_iso8601($value);
     }
     if (is_null($value)) {
         return 'Null';
     }
     return $value;
 }
コード例 #3
0
ファイル: mc_tag_api.php プロジェクト: nextgens/mantisbt
/**
 * Retrieves all tags, unless the users 
 *
 * @param string   $p_username    The user's username
 * @param string   $p_password    The user's password
 * @param int      $p_page_number The page number to return data for
 * @param string   $p_per_page    The number of issues to return per page
 * @return array The tag data
 */
function mc_tag_get_all($p_username, $p_password, $p_page_number, $p_per_page)
{
    $t_user_id = mci_check_login($p_username, $p_password);
    if ($t_user_id === false) {
        return mci_soap_fault_login_failed();
    }
    if (!access_has_global_level(config_get('tag_view_threshold'))) {
        return mci_soap_fault_access_denied($t_user_id, 'No rights to view tags');
    }
    if ($p_per_page == 0) {
        $p_per_page = 1;
    }
    $t_results = array();
    $t_total_results = tag_count('');
    foreach (tag_get_all('', $p_per_page, $p_per_page * ($p_page_number - 1)) as $t_tag_row) {
        $t_results[] = array('id' => $t_tag_row['id'], 'name' => $t_tag_row['name'], 'description' => $t_tag_row['description'], 'user_id' => mci_account_get_array_by_id($t_tag_row['user_id']), 'date_created' => timestamp_to_iso8601($t_tag_row['date_created'], false), 'date_updated' => timestamp_to_iso8601($t_tag_row['date_updated'], false));
    }
    return array('results' => $t_results, 'total_results' => $t_total_results);
}
コード例 #4
0
ファイル: mc_project_api.php プロジェクト: kaos/mantisbt
function mc_project_get_issue_headers($p_username, $p_password, $p_project_id, $p_page_number, $p_per_page)
{
    $t_user_id = mci_check_login($p_username, $p_password);
    if ($t_user_id === false) {
        return mci_soap_fault_login_failed();
    }
    if (!project_exists($p_project_id)) {
        return new soap_fault('Client', '', "Project '{$p_project_id}' does not exist.");
    }
    if (!mci_has_readonly_access($t_user_id, $p_project_id)) {
        return mci_soap_fault_access_denied($t_user_id);
    }
    $t_page_count = 0;
    $t_bug_count = 0;
    $t_rows = filter_get_bug_rows($p_page_number, $p_per_page, $t_page_count, $t_bug_count, null, $p_project_id);
    $t_result = array();
    foreach ($t_rows as $t_issue_data) {
        $t_id = $t_issue_data->id;
        $t_issue = array();
        $t_issue['id'] = $t_id;
        $t_issue['view_state'] = $t_issue_data->view_state;
        $t_issue['last_updated'] = timestamp_to_iso8601($t_issue_data->last_updated);
        $t_issue['project'] = $t_issue_data->project_id;
        $t_issue['category'] = mci_get_category($t_issue_data->category_id);
        $t_issue['priority'] = $t_issue_data->priority;
        $t_issue['severity'] = $t_issue_data->severity;
        $t_issue['status'] = $t_issue_data->status;
        $t_issue['reporter'] = $t_issue_data->reporter_id;
        $t_issue['summary'] = $t_issue_data->summary;
        if (!empty($t_issue_data->handler_id)) {
            $t_issue['handler'] = $t_issue_data->handler_id;
        }
        $t_issue['resolution'] = $t_issue_data->resolution;
        $t_issue['attachments_count'] = count(mci_issue_get_attachments($t_issue_data->id));
        $t_issue['notes_count'] = count(mci_issue_get_notes($t_issue_data->id));
        $t_result[] = $t_issue;
    }
    return $t_result;
}
コード例 #5
0
ファイル: mc_issue_api.php プロジェクト: rombert/mantisbt
/**
 * Returns an array for SOAP encoding from a BugData object
 *
 * @param BugData $p_issue_data
 * @param int $p_user_id
 * @param string $p_lang
 * @return array The issue as an array
 */
function mci_issue_data_as_array( $p_issue_data, $p_user_id, $p_lang ) {

		$t_id = $p_issue_data->id;

		$t_issue = array();
		$t_issue['id'] = $t_id;
		$t_issue['view_state'] = mci_enum_get_array_by_id( $p_issue_data->view_state, 'view_state', $p_lang );
		$t_issue['last_updated'] = timestamp_to_iso8601( $p_issue_data->last_updated );

		$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['priority'] = mci_enum_get_array_by_id( $p_issue_data->priority, 'priority', $p_lang );
		$t_issue['severity'] = mci_enum_get_array_by_id( $p_issue_data->severity, 'severity', $p_lang );
		$t_issue['status'] = mci_enum_get_array_by_id( $p_issue_data->status, 'status', $p_lang );

		$t_issue['reporter'] = mci_account_get_array_by_id( $p_issue_data->reporter_id );
		$t_issue['summary'] = $p_issue_data->summary;
		$t_issue['version'] = mci_null_if_empty( $p_issue_data->version );
		$t_issue['build'] = mci_null_if_empty( $p_issue_data->build );
		$t_issue['platform'] = mci_null_if_empty( $p_issue_data->platform );
		$t_issue['os'] = mci_null_if_empty( $p_issue_data->os );
		$t_issue['os_build'] = mci_null_if_empty( $p_issue_data->os_build );
		$t_issue['reproducibility'] = mci_enum_get_array_by_id( $p_issue_data->reproducibility, 'reproducibility', $p_lang );
		$t_issue['date_submitted'] = timestamp_to_iso8601( $p_issue_data->date_submitted );
		$t_issue['sponsorship_total'] = $p_issue_data->sponsorship_total;

		if( !empty( $p_issue_data->handler_id ) ) {
			$t_issue['handler'] = mci_account_get_array_by_id( $p_issue_data->handler_id );
		}
		$t_issue['projection'] = mci_enum_get_array_by_id( $p_issue_data->projection, 'projection', $p_lang );
		$t_issue['eta'] = mci_enum_get_array_by_id( $p_issue_data->eta, 'eta', $p_lang );

		$t_issue['resolution'] = mci_enum_get_array_by_id( $p_issue_data->resolution, 'resolution', $p_lang );
		$t_issue['fixed_in_version'] = mci_null_if_empty( $p_issue_data->fixed_in_version );
		$t_issue['target_version'] = mci_null_if_empty( $p_issue_data->target_version );

		$t_issue['description'] = bug_get_text_field( $t_id, 'description' );

		$t_steps_to_reproduce = bug_get_text_field( $t_id, 'steps_to_reproduce' );
		$t_issue['steps_to_reproduce'] = mci_null_if_empty( $t_steps_to_reproduce );

		$t_additional_information = bug_get_text_field( $t_id, 'additional_information' );
		$t_issue['additional_information'] = mci_null_if_empty( $t_additional_information );

		$t_issue['attachments'] = mci_issue_get_attachments( $p_issue_data->id );
		$t_issue['relationships'] = mci_issue_get_relationships( $p_issue_data->id, $p_user_id );
		$t_issue['notes'] = mci_issue_get_notes( $p_issue_data->id );
		$t_issue['custom_fields'] = mci_issue_get_custom_fields( $p_issue_data->id );

		return $t_issue;
}
コード例 #6
0
ファイル: mc_filter_api.php プロジェクト: kaos/mantisbt
/**
 * Get the issue headers that match the specified filter and paging details.
 *
 * @param string $p_username  The name of the user trying to access the filters.
 * @param string $p_password  The password of the user.
 * @param integer $p_filter_id  The id of the filter to apply.
 * @param integer $p_page_number  Start with the given page number (zero-based)
 * @param integer $p_per_page  Number of issues to display per page
 * @return Array that represents an IssueDataArray structure
 */
function mc_filter_get_issue_headers($p_username, $p_password, $p_project_id, $p_filter_id, $p_page_number, $p_per_page)
{
    $t_user_id = mci_check_login($p_username, $p_password);
    if ($t_user_id === false) {
        return mci_soap_fault_login_failed();
    }
    if (!mci_has_readonly_access($t_user_id, $p_project_id)) {
        return mci_soap_fault_access_denied($t_user_id);
    }
    $t_page_count = 0;
    $t_bug_count = 0;
    $t_filter = filter_db_get_filter($p_filter_id);
    $t_filter_detail = explode('#', $t_filter, 2);
    if (!isset($t_filter_detail[1])) {
        return new soap_fault('Server', '', 'Invalid Filter');
    }
    $t_filter = unserialize($t_filter_detail[1]);
    $t_filter = filter_ensure_valid_filter($t_filter);
    $t_result = array();
    $t_rows = filter_get_bug_rows($p_page_number, $p_per_page, $t_page_count, $t_bug_count, $t_filter, $p_project_id);
    foreach ($t_rows as $t_issue_data) {
        $t_id = $t_issue_data->id;
        $t_issue = array();
        $t_issue['id'] = $t_id;
        $t_issue['view_state'] = $t_issue_data->view_state;
        $t_issue['last_updated'] = timestamp_to_iso8601($t_issue_data->last_updated);
        $t_issue['project'] = $t_issue_data->project_id;
        $t_issue['category'] = mci_get_category($t_issue_data->category_id);
        $t_issue['priority'] = $t_issue_data->priority;
        $t_issue['severity'] = $t_issue_data->severity;
        $t_issue['status'] = $t_issue_data->status;
        $t_issue['reporter'] = $t_issue_data->reporter_id;
        $t_issue['summary'] = $t_issue_data->summary;
        if (!empty($t_issue_data->handler_id)) {
            $t_issue['handler'] = $t_issue_data->handler_id;
        }
        $t_issue['resolution'] = $t_issue_data->resolution;
        $t_issue['attachments_count'] = count(mci_issue_get_attachments($t_issue_data->id));
        $t_issue['notes_count'] = count(mci_issue_get_notes($t_issue_data->id));
        $t_result[] = $t_issue;
    }
    return $t_result;
}
コード例 #7
0
ファイル: mc_api.php プロジェクト: raultm/mantisbt
/**
 * Transforms a version array into an array suitable for marshalling into ProjectVersionData
 * 
 * @param array $p_version
 */
function mci_project_version_as_array($p_version)
{
    return array('id' => $p_version['id'], 'name' => $p_version['version'], 'project_id' => $p_version['project_id'], 'date_order' => timestamp_to_iso8601($p_version['date_order'], false), 'description' => mci_null_if_empty($p_version['description']), 'released' => $p_version['released'], 'obsolete' => $p_version['obsolete']);
}
コード例 #8
0
/**
 * Get all visible notes for a specific issue
 *
 * @param integer $p_issue_id  The id of the issue to retrieve the notes for
 * @return Array that represents an IssueNoteData structure
 */
function mci_issue_get_notes($p_issue_id)
{
    $t_user_id = auth_get_current_user_id();
    $t_lang = mci_get_user_lang($t_user_id);
    $t_project_id = bug_get_field($p_issue_id, 'project_id');
    $t_user_access_level = user_get_access_level($t_user_id, $t_project_id);
    $t_user_bugnote_order = 'ASC';
    // always get the notes in ascending order for consistency to the calling application.
    $t_result = array();
    foreach (bugnote_get_all_visible_bugnotes($p_issue_id, $t_user_access_level, $t_user_bugnote_order, 0) as $t_value) {
        $t_bugnote = array();
        $t_bugnote['id'] = $t_value->id;
        $t_bugnote['reporter'] = mci_account_get_array_by_id($t_value->reporter_id);
        $t_bugnote['date_submitted'] = timestamp_to_iso8601($t_value->date_submitted);
        $t_bugnote['last_modified'] = timestamp_to_iso8601($t_value->last_modified);
        $t_bugnote['text'] = $t_value->note;
        $t_bugnote['view_state'] = mci_enum_get_array_by_id($t_value->view_state, 'view_state', $t_lang);
        $t_result[] = $t_bugnote;
    }
    return $t_result;
}
コード例 #9
0
ファイル: mc_issue_api.php プロジェクト: raultm/mantisbt
/**
 * Returns an array for SOAP encoding from a BugData object
 * 
 * @param BugData $p_issue_data
 * @return array The issue header data as an array
 */
function mci_issue_data_as_header_array($p_issue_data)
{
    $t_issue = array();
    $t_id = $p_issue_data->id;
    $t_issue['id'] = $t_id;
    $t_issue['view_state'] = $p_issue_data->view_state;
    $t_issue['last_updated'] = timestamp_to_iso8601($p_issue_data->last_updated, false);
    $t_issue['project'] = $p_issue_data->project_id;
    $t_issue['category'] = mci_get_category($p_issue_data->category_id);
    $t_issue['priority'] = $p_issue_data->priority;
    $t_issue['severity'] = $p_issue_data->severity;
    $t_issue['status'] = $p_issue_data->status;
    $t_issue['reporter'] = $p_issue_data->reporter_id;
    $t_issue['summary'] = $p_issue_data->summary;
    if (!empty($p_issue_data->handler_id)) {
        $t_issue['handler'] = $p_issue_data->handler_id;
    }
    $t_issue['resolution'] = $p_issue_data->resolution;
    $t_issue['attachments_count'] = count(mci_issue_get_attachments($p_issue_data->id));
    $t_issue['notes_count'] = count(mci_issue_get_notes($p_issue_data->id));
    return $t_issue;
}