(method: string, url: string, headers?: any, expectedCodes = [200], timeout = Http.defaultTimeout, data?: any)
| 26 | } |
| 27 | |
| 28 | protected static createAndSendRequest(method: string, url: string, headers?: any, expectedCodes = [200], timeout = Http.defaultTimeout, data?: any): Promise<XMLHttpRequest> { |
| 29 | if (!url) { |
| 30 | throw new Error("url must be a non-empty string, but was: " + url); |
| 31 | } |
| 32 | |
| 33 | return new Promise<XMLHttpRequest>((resolve, reject) => { |
| 34 | let request = new XMLHttpRequest(); |
| 35 | request.open(method, url); |
| 36 | |
| 37 | request.onload = () => { |
| 38 | if (expectedCodes.indexOf(request.status) > -1) { |
| 39 | resolve(request); |
| 40 | } else { |
| 41 | reject(OneNoteApi.ErrorUtils.createRequestErrorObject(request, OneNoteApi.RequestErrorType.UNEXPECTED_RESPONSE_STATUS)); |
| 42 | } |
| 43 | }; |
| 44 | |
| 45 | request.onerror = () => { |
| 46 | reject(OneNoteApi.ErrorUtils.createRequestErrorObject(request, OneNoteApi.RequestErrorType.NETWORK_ERROR)); |
| 47 | }; |
| 48 | |
| 49 | request.ontimeout = () => { |
| 50 | reject(OneNoteApi.ErrorUtils.createRequestErrorObject(request, OneNoteApi.RequestErrorType.REQUEST_TIMED_OUT)); |
| 51 | }; |
| 52 | |
| 53 | Http.setHeaders(request, headers); |
| 54 | request.timeout = timeout; |
| 55 | |
| 56 | request.send(data); |
| 57 | }); |
| 58 | } |
| 59 | |
| 60 | private static setHeaders(request: XMLHttpRequest, headers: any): void { |
| 61 | if (headers) { |
no test coverage detected