UNPKG

@webfaas/webfaas-plugin-endpoint-http

Version:
54 lines 3.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SendMessageJsonRpc = void 0; const webfaas_core_1 = require("@webfaas/webfaas-core"); const MessageUtil_1 = require("@webfaas/webfaas-core/lib/Util/MessageUtil"); const uuid_1 = require("uuid"); class SendMessageJsonRpc { constructor(endPointHTTP) { this.endPointHTTP = endPointHTTP; this.core = endPointHTTP.getCore(); this.log = endPointHTTP.getLog(); } processRequest(request, response, body) { let payloadRequest; let msg; try { payloadRequest = webfaas_core_1.MessageUtil.parseJsonRpcRequest(body); } catch (errTryParse) { let responseJson = webfaas_core_1.MessageUtil.parseJsonRpcResponseError(webfaas_core_1.MessageUtil.convertErrorToCodeJsonRpc(errTryParse), errTryParse); this.endPointHTTP.writeEnd(response, 200, this.endPointHTTP.buildHeaders("application/json-rpc"), JSON.stringify(responseJson)); this.log.writeError("processRequest", errTryParse, undefined, __filename); return; } msg = webfaas_core_1.MessageUtil.parseMessageByPayloadJsonRpc(payloadRequest, "", request.method, request.headers); if (msg) { let requestID = payloadRequest.id || webfaas_core_1.MessageUtil.parseString(request.headers["X-Request-ID"]) || uuid_1.v1(); msg.header.messageID = requestID.toString(); this.core.sendMessage(msg).then((msgResponse) => { let responseJsonRpc; let statusCode = 200; let headers = this.endPointHTTP.buildHeaders("application/json-rpc"); if (msgResponse) { responseJsonRpc = webfaas_core_1.MessageUtil.parseJsonRpcResponseSuccess(msgResponse.payload, requestID); } else { responseJsonRpc = webfaas_core_1.MessageUtil.parseJsonRpcResponseSuccess(null, requestID); } this.endPointHTTP.writeEnd(response, statusCode, headers, JSON.stringify(responseJsonRpc)); }).catch((errSend) => { let responseJson = webfaas_core_1.MessageUtil.parseJsonRpcResponseError(webfaas_core_1.MessageUtil.convertErrorToCodeJsonRpc(errSend), errSend); this.endPointHTTP.writeEnd(response, 200, this.endPointHTTP.buildHeaders("application/json-rpc"), JSON.stringify(responseJson)); this.log.writeError("processRequest", errSend, undefined, __filename); }); } else { let responseJson = webfaas_core_1.MessageUtil.parseJsonRpcResponseError(MessageUtil_1.JsonRpcErrorTypeEnum.INVALID_REQUEST, new webfaas_core_1.WebFaasError.SecurityError(webfaas_core_1.WebFaasError.SecurityErrorTypeEnum.PAYLOAD_INVALID, "empty payload")); this.endPointHTTP.writeEnd(response, 200, this.endPointHTTP.buildHeaders("application/json-rpc"), JSON.stringify(responseJson)); this.log.writeError("processRequest", new Error("payload required"), undefined, __filename); } } } exports.SendMessageJsonRpc = SendMessageJsonRpc; //# sourceMappingURL=SendMessageJsonRpc.js.map