@@ -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