58ca4e68db
- Go backend API with full CRUD for all modules (CRM, Sales, Finance, HR, Legal, Marketing, Support, Purchase, Inventory, Projects, Automation, Analytics) - Rust analytics service with parallel report generation - C runtime with POSIX shared memory IPC - PostgreSQL schema with 30+ tables, full migrations - Redis cache, sessions, pub/sub - Kafka event streaming with Zookeeper - WebSocket hub for real-time updates - Automation engine with cron jobs, workflows, event triggers - JWT authentication, multi-tenant from start - Docker Compose with all services - Nginx reverse proxy with rate limiting - Integration tests passing - Feature gap analysis against Fortnox/Odoo/Visma Refs: BOC-001
54 lines
1.8 KiB
JavaScript
54 lines
1.8 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.HttpClientResponse = exports.HttpClient = void 0;
|
|
/**
|
|
* Encapsulates the logic for issuing a request to the Stripe API.
|
|
*
|
|
* A custom HTTP client should should implement:
|
|
* 1. A response class which extends HttpClientResponse and wraps around their
|
|
* own internal representation of a response.
|
|
* 2. A client class which extends HttpClient and implements all methods,
|
|
* returning their own response class when making requests.
|
|
*/
|
|
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;
|
|
}
|
|
}
|
|
exports.HttpClient = HttpClient;
|
|
// Public API accessible via Stripe.HttpClient
|
|
HttpClient.CONNECTION_CLOSED_ERROR_CODES = ['ECONNRESET', 'EPIPE'];
|
|
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.');
|
|
}
|
|
}
|
|
exports.HttpClientResponse = HttpClientResponse;
|