@@ -50,66 +50,66 @@ export class QueryChallengesTool {
50
50
accessToken ,
51
51
) ;
52
52
53
- if ( ! challenges . ok ) {
53
+ if ( challenges . status < 200 || challenges . status >= 300 ) {
54
54
this . logger . error (
55
55
`Failed to fetch challenges from Topcoder API: ${ challenges . statusText } ` ,
56
56
) ;
57
57
try {
58
- this . logger . error ( await challenges . json ( ) ) ;
58
+ this . logger . error ( challenges . data ) ;
59
59
} catch ( e ) {
60
60
this . logger . error ( 'Failed to log challenge error' ) ;
61
61
}
62
62
63
63
// Return an error response if the API call fails
64
64
return {
65
65
content : [
66
- {
67
- type : 'text' ,
68
- text : `Error fetching challenges: ${ challenges . statusText } ` ,
69
- } ,
66
+ {
67
+ type : 'text' ,
68
+ text : `Error fetching challenges: ${ challenges . statusText } ` ,
69
+ } ,
70
70
] ,
71
71
isError : true ,
72
72
} ;
73
73
}
74
74
75
- // Parse the response as JSON
76
- const challengesData = await challenges . json ( ) ;
75
+ // Axios response: data is already parsed, headers are plain object
76
+ const challengesData = challenges . data ;
77
77
78
78
return {
79
79
content : [
80
80
{
81
- type : 'text' ,
82
- text : JSON . stringify ( {
83
- page : Number ( challenges . headers . get ( 'x-page' ) ) || 1 ,
84
- pageSize :
85
- Number ( challenges . headers . get ( 'x-per-page' ) ) ||
86
- challengesData . length ||
87
- 0 ,
88
- total :
89
- Number ( challenges . headers . get ( 'x-total' ) ) ||
90
- challengesData . length ||
91
- 0 ,
92
- nextPage : challenges . headers . get ( 'x-next-page' )
93
- ? Number ( challenges . headers . get ( 'x-next-page' ) )
94
- : null ,
95
- data : challengesData ,
96
- } ) ,
97
- } ,
98
- ] ,
99
- structuredContent : {
100
- page : Number ( challenges . headers . get ( 'x-page' ) ) || 1 ,
81
+ type : 'text' ,
82
+ text : JSON . stringify ( {
83
+ page : Number ( challenges . headers [ 'x-page' ] ) || 1 ,
101
84
pageSize :
102
- Number ( challenges . headers . get ( 'x-per-page' ) ) ||
103
- challengesData . length ||
85
+ Number ( challenges . headers [ 'x-per-page' ] ) ||
86
+ ( Array . isArray ( challengesData ) ? challengesData . length : 0 ) ||
104
87
0 ,
105
88
total :
106
- Number ( challenges . headers . get ( 'x-total' ) ) ||
107
- challengesData . length ||
89
+ Number ( challenges . headers [ 'x-total' ] ) ||
90
+ ( Array . isArray ( challengesData ) ? challengesData . length : 0 ) ||
108
91
0 ,
109
- nextPage : challenges . headers . get ( 'x-next-page' )
110
- ? Number ( challenges . headers . get ( 'x-next-page' ) )
92
+ nextPage : challenges . headers [ 'x-next-page' ]
93
+ ? Number ( challenges . headers [ 'x-next-page' ] )
111
94
: null ,
112
95
data : challengesData ,
96
+ } ) ,
97
+ } ,
98
+ ] ,
99
+ structuredContent : {
100
+ page : Number ( challenges . headers [ 'x-page' ] ) || 1 ,
101
+ pageSize :
102
+ Number ( challenges . headers [ 'x-per-page' ] ) ||
103
+ ( Array . isArray ( challengesData ) ? challengesData . length : 0 ) ||
104
+ 0 ,
105
+ total :
106
+ Number ( challenges . headers [ 'x-total' ] ) ||
107
+ ( Array . isArray ( challengesData ) ? challengesData . length : 0 ) ||
108
+ 0 ,
109
+ nextPage : challenges . headers [ 'x-next-page' ]
110
+ ? Number ( challenges . headers [ 'x-next-page' ] )
111
+ : null ,
112
+ data : challengesData ,
113
113
} ,
114
114
} ;
115
115
} catch ( error ) {
0 commit comments