UNPKG

@atomist/automation-client

Version:

Atomist API for software low-level client

73 lines 2.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const globals_1 = require("../../../globals"); const AbstractRequestProcessor_1 = require("../AbstractRequestProcessor"); const RequestProcessor_1 = require("../RequestProcessor"); const WebSocketMessageClient_1 = require("../websocket/WebSocketMessageClient"); /** * RequestProcessor implementation used by the Express infrastructure to process * inbound events via HTTP REST apis. */ class ExpressRequestProcessor extends AbstractRequestProcessor_1.AbstractRequestProcessor { constructor(automations, configuration, listeners = []) { super(automations, listeners); this.automations = automations; this.configuration = configuration; this.listeners = listeners; this.graphClientFactory = this.configuration.graphql.client.factory; } sendStatusMessage(payload, ctx) { return Promise.resolve(); } createGraphClient(event, context) { return !!this.configuration.http.graphClientFactory ? this.configuration.http.graphClientFactory(context) : this.graphClientFactory.create(RequestProcessor_1.workspaceId(event), this.configuration); } createMessageClient(event, context) { return !!this.configuration.http.messageClientFactory ? this.configuration.http.messageClientFactory(context) : new ExpressMessageClient(event, this.configuration); } } exports.ExpressRequestProcessor = ExpressRequestProcessor; class ExpressMessageClient { constructor(event, configuration) { this.event = event; if (globals_1.automationClientInstance().webSocketHandler && globals_1.automationClientInstance().webSocketHandler.webSocketLifecycle) { const ws = globals_1.automationClientInstance().webSocketHandler.webSocketLifecycle; if (RequestProcessor_1.isCommandIncoming(this.event)) { this.delegate = new WebSocketMessageClient_1.WebSocketCommandMessageClient(this.event, ws, configuration); } else if (RequestProcessor_1.isEventIncoming(this.event)) { this.delegate = new WebSocketMessageClient_1.WebSocketEventMessageClient(this.event, ws, configuration); } } } respond(msg, options) { if (this.delegate) { return this.delegate.respond(msg, options); } else { return Promise.resolve(); } } send(msg, destinations, options) { if (this.delegate) { return this.delegate.send(msg, destinations, options); } else { return Promise.resolve(); } } delete(destinations, options) { if (this.delegate) { return this.delegate.delete(destinations, options); } else { return Promise.resolve(); } } } //# sourceMappingURL=ExpressRequestProcessor.js.map