From 1746e62cef17de2963ede15e622546747aea7480 Mon Sep 17 00:00:00 2001 From: Robert Munteanu Date: Tue, 19 Jul 2016 00:35:06 +0300 Subject: [PATCH] Fix #21372: Unable to report issues using the SOAP API - Data truncated for column 'last_updated' --- api/soap/mc_issue_api.php | 4 ++-- tests/soap/IssueAddTest.php | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/api/soap/mc_issue_api.php b/api/soap/mc_issue_api.php index e254787ec0..ea61ff7e8d 100644 --- a/api/soap/mc_issue_api.php +++ b/api/soap/mc_issue_api.php @@ -749,8 +749,8 @@ function mc_issue_add( $p_username, $p_password, stdClass $p_issue ) { $t_bug_data->resolution = $t_resolution_id; $t_bug_data->projection = $t_projection_id; $t_bug_data->category_id = $t_category_id; - $t_bug_data->date_submitted = isset( $p_issue['date_submitted'] ) ? $p_issue['date_submitted'] : ''; - $t_bug_data->last_updated = isset( $p_issue['last_updated'] ) ? $p_issue['last_updated'] : ''; + $t_bug_data->date_submitted = isset( $p_issue['date_submitted'] ) ? SoapObjectsFactory::parseDateTimeString($p_issue['date_submitted']) : ''; + $t_bug_data->last_updated = isset( $p_issue['last_updated'] ) ? SoapObjectsFactory::parseDateTimeString($p_issue['last_updated']) : ''; $t_bug_data->eta = $t_eta_id; $t_bug_data->profile_id = isset( $p_issue['profile_id'] ) ? $p_issue['profile_id'] : 0; $t_bug_data->os = isset( $p_issue['os'] ) ? $p_issue['os'] : ''; diff --git a/tests/soap/IssueAddTest.php b/tests/soap/IssueAddTest.php index 71e70cddcf..241a613248 100644 --- a/tests/soap/IssueAddTest.php +++ b/tests/soap/IssueAddTest.php @@ -134,6 +134,9 @@ public function testCreateIssueWithRareFields() { $t_issue_to_add['fixed_in_version'] = 'fixed version'; $t_issue_to_add['target_version'] = 'target version'; $t_issue_to_add['sticky'] = true; + + $t_dt = new DateTime(); + $t_issue_to_add['last_updated'] = $t_dt->format( DateTime::ISO8601 ); $t_issue_id = $this->client->mc_issue_add( $this->userName, $this->password, $t_issue_to_add ); @@ -149,6 +152,10 @@ public function testCreateIssueWithRareFields() { $this->assertEquals( $t_issue_to_add['fixed_in_version'], $t_issue->fixed_in_version ); $this->assertEquals( $t_issue_to_add['target_version'], $t_issue->target_version ); $this->assertEquals( $t_issue_to_add['sticky'], $t_issue->sticky ); + + $t_read_dt = DateTime::createFromFormat( DateTime::ISO8601, $t_issue->last_updated ); + + $this->assertEquals( $t_dt, $t_read_dt ); } /**