@@ -22,7 +22,7 @@ abstract class BrowserClient extends Client {
22
22
}
23
23
24
24
js.scoped ((){
25
- js.context. handleClientLoad = new js.Callback .once (() {
25
+ js.context[ " handleClientLoad" ] = new js.Callback .once (() {
26
26
_jsClientLoaded = true ;
27
27
completer.complete (true );
28
28
});
@@ -59,7 +59,7 @@ abstract class BrowserClient extends Client {
59
59
}
60
60
61
61
js.scoped (() {
62
- var request = js.context. gapi. client. request (js.map (requestData));
62
+ var request = js.context[ " gapi" ][ " client" ][ " request" ] (js.map (requestData));
63
63
var callback = new js.Callback .once ((jsonResp, rawResp) {
64
64
if (jsonResp == null || (jsonResp is core.bool && jsonResp == false )) {
65
65
var raw = JSON .parse (rawResp);
@@ -69,7 +69,7 @@ abstract class BrowserClient extends Client {
69
69
completer.complete ({});
70
70
}
71
71
} else {
72
- completer.complete (js.context. JSON . stringify (jsonResp));
72
+ completer.complete (js.context[ " JSON" ][ " stringify" ] (jsonResp));
73
73
}
74
74
});
75
75
request.execute (callback);
@@ -102,53 +102,59 @@ abstract class BrowserClient extends Client {
102
102
}
103
103
var url = new oauth.UrlPattern (path).generate (urlParams, queryParams);
104
104
105
- request.onLoadEnd.listen ((_) {
105
+ void handleError () {
106
+ if (request.status == 0 ) {
107
+ _loadJsClient ().then ((v) {
108
+ if (requestUrl.substring (0 ,1 ) == "/" ) {
109
+ path = requestUrl;
110
+ } else {
111
+ path = "$basePath $requestUrl " ;
112
+ }
113
+ url = new oauth.UrlPattern (path).generate (urlParams, {});
114
+ _makeJsClientRequest (url, method, body: body, contentType: contentType, queryParams: queryParams)
115
+ .then ((response) {
116
+ var data = JSON .parse (response);
117
+ completer.complete (data);
118
+ })
119
+ .catchError ((e) {
120
+ completer.completeError (e);
121
+ return true ;
122
+ });
123
+ });
124
+ } else {
125
+ var error = "" ;
126
+ if (request.responseText != null ) {
127
+ var errorJson;
128
+ try {
129
+ errorJson = JSON .parse (request.responseText);
130
+ } on core.FormatException {
131
+ errorJson = null ;
132
+ }
133
+ if (errorJson != null && errorJson.containsKey ("error" )) {
134
+ error = "${errorJson ["error" ]["code" ]} ${errorJson ["error" ]["message" ]}" ;
135
+ }
136
+ }
137
+ if (error == "" ) {
138
+ error = "${request .status } ${request .statusText }" ;
139
+ }
140
+ completer.completeError (new APIRequestException (error));
141
+ }
142
+ }
143
+
144
+ request.onLoad.listen ((_) {
106
145
if (request.status > 0 && request.status < 400 ) {
107
146
var data = {};
108
147
if (! request.responseText.isEmpty) {
109
148
data = JSON .parse (request.responseText);
110
149
}
111
150
completer.complete (data);
112
151
} else {
113
- if (request.status == 0 ) {
114
- _loadJsClient ().then ((v) {
115
- if (requestUrl.substring (0 ,1 ) == "/" ) {
116
- path = requestUrl;
117
- } else {
118
- path = "$basePath $requestUrl " ;
119
- }
120
- url = new oauth.UrlPattern (path).generate (urlParams, {});
121
- _makeJsClientRequest (url, method, body: body, contentType: contentType, queryParams: queryParams)
122
- .then ((response) {
123
- var data = JSON .parse (response);
124
- completer.complete (data);
125
- })
126
- .catchError ((e) {
127
- completer.completeError (e);
128
- return true ;
129
- });
130
- });
131
- } else {
132
- var error = "" ;
133
- if (request.responseText != null ) {
134
- var errorJson;
135
- try {
136
- errorJson = JSON .parse (request.responseText);
137
- } on core.FormatException {
138
- errorJson = null ;
139
- }
140
- if (errorJson != null && errorJson.containsKey ("error" )) {
141
- error = "${errorJson ["error" ]["code" ]} ${errorJson ["error" ]["message" ]}" ;
142
- }
143
- }
144
- if (error == "" ) {
145
- error = "${request .status } ${request .statusText }" ;
146
- }
147
- completer.completeError (new APIRequestException (error));
148
- }
152
+ handleError ();
149
153
}
150
154
});
151
155
156
+ request.onError.listen ((_) => handleError ());
157
+
152
158
request.open (method, url);
153
159
request.setRequestHeader ("Content-Type" , contentType);
154
160
if (makeAuthRequests && _auth != null ) {
0 commit comments