@@ -19,7 +19,7 @@ limitations under the License.
1919// * https://docs.atlassian.com/jira-software/REST/latest/ 
2020
2121use  crate :: errors:: JiraQueryError ; 
22- use  crate :: issue_model:: { Issue ,  JqlResults } ; 
22+ use  crate :: issue_model:: { Issue ,  JiraErrorMessages ,   JqlResults } ; 
2323
2424// The prefix of every subsequent REST request. 
2525// This string comes directly after the host in the URL. 
@@ -170,11 +170,19 @@ impl JiraInstance {
170170        let  url = self . path ( & Method :: Key ( key) ,  0 ) ; 
171171
172172        // Gets an issue by ID and deserializes the JSON to data variable 
173-         let  issue  = self . authenticated_get ( & url) . await ? . json :: < Issue > ( ) . await ?; 
173+         let  response  = self . authenticated_get ( & url) . await ?; 
174174
175-         log:: debug!( "{:#?}" ,  issue) ; 
175+         if  response. status ( ) . is_success ( )  { 
176+             let  issue = response. json :: < Issue > ( ) . await ?; 
176177
177-         Ok ( issue) 
178+             log:: debug!( "{:#?}" ,  issue) ; 
179+ 
180+             Ok ( issue) 
181+         }  else  { 
182+             Err ( JiraQueryError :: JiraError ( 
183+                 response. json :: < JiraErrorMessages > ( ) . await ?. error_messages , 
184+             ) ) 
185+         } 
178186    } 
179187
180188    /// Access several issues by their keys. 
@@ -251,15 +259,19 @@ impl JiraInstance {
251259    )  -> Result < Vec < Issue > ,  JiraQueryError >  { 
252260        let  url = self . path ( method,  start_at) ; 
253261
254-         let  results = self 
255-             . authenticated_get ( & url) 
256-             . await ?
257-             . json :: < JqlResults > ( ) 
258-             . await ?; 
262+         let  response = self . authenticated_get ( & url) . await ?; 
259263
260-         log:: debug!( "{:#?}" ,  results) ; 
264+         if  response. status ( ) . is_success ( )  { 
265+             let  results = response. json :: < JqlResults > ( ) . await ?; 
261266
262-         Ok ( results. issues ) 
267+             log:: debug!( "{:#?}" ,  results) ; 
268+ 
269+             Ok ( results. issues ) 
270+         }  else  { 
271+             Err ( JiraQueryError :: JiraError ( 
272+                 response. json :: < JiraErrorMessages > ( ) . await ?. error_messages , 
273+             ) ) 
274+         } 
263275    } 
264276
265277    /// Access issues using a free-form JQL search. 
0 commit comments