64 lines
1.3 KiB
JavaScript
64 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
/**
|
|
* Encapsulates the logic for issuing a request to the Stripe API. This is an
|
|
* experimental interface and is not yet stable.
|
|
*/
|
|
class HttpClient {
|
|
/** The client name used for diagnostics. */
|
|
getClientName() {
|
|
throw new Error('getClientName not implemented.');
|
|
}
|
|
|
|
makeRequest(
|
|
host,
|
|
port,
|
|
path,
|
|
method,
|
|
headers,
|
|
requestData,
|
|
protocol,
|
|
timeout
|
|
) {
|
|
throw new Error('makeRequest not implemented.');
|
|
}
|
|
|
|
/** Helper to make a consistent timeout error across implementations. */
|
|
static makeTimeoutError() {
|
|
const timeoutErr = new TypeError(HttpClient.TIMEOUT_ERROR_CODE);
|
|
timeoutErr.code = HttpClient.TIMEOUT_ERROR_CODE;
|
|
return timeoutErr;
|
|
}
|
|
}
|
|
|
|
HttpClient.TIMEOUT_ERROR_CODE = 'ETIMEDOUT';
|
|
|
|
class HttpClientResponse {
|
|
constructor(statusCode, headers) {
|
|
this._statusCode = statusCode;
|
|
this._headers = headers;
|
|
}
|
|
|
|
getStatusCode() {
|
|
return this._statusCode;
|
|
}
|
|
|
|
getHeaders() {
|
|
return this._headers;
|
|
}
|
|
|
|
getRawResponse() {
|
|
throw new Error('getRawResponse not implemented.');
|
|
}
|
|
|
|
toStream(streamCompleteCallback) {
|
|
throw new Error('toStream not implemented.');
|
|
}
|
|
|
|
toJSON() {
|
|
throw new Error('toJSON not implemented.');
|
|
}
|
|
}
|
|
|
|
module.exports = {HttpClient, HttpClientResponse};
|