@atomist/automation-client
Version:
Atomist API for software low-level client
73 lines • 2.97 kB
JavaScript
"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