UNPKG

resolve-local-event-broker

Version:

The reSolve framework's event broker for applications on a local machine.

54 lines (45 loc) 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _constants = require("../constants"); const pause = async (pool, payload) => { const { database: { runQuery, runRawQuery, escapeId, escapeStr }, parseSubscription } = pool; const subscribersTableNameAsId = escapeId(_constants.SUBSCRIBERS_TABLE_NAME); await runRawQuery(` UPDATE ${subscribersTableNameAsId} SET "status" = ${escapeStr(_constants.SubscriptionStatus.SKIP)} WHERE "eventSubscriber" = ${escapeStr(payload.eventSubscriber)} AND "status" <> ${escapeStr(_constants.SubscriptionStatus.ERROR)}; COMMIT; BEGIN IMMEDIATE; `); const result = await runQuery(` SELECT * FROM ${subscribersTableNameAsId} WHERE ${subscribersTableNameAsId}."eventSubscriber" = ${escapeStr(payload.eventSubscriber)} `); if (result == null || result.length !== 1) { throw new Error(`Event subscriber ${payload.eventSubscriber} does not found`); } const { status, subscriptionId } = parseSubscription(result[0]); if (status === _constants.SubscriptionStatus.ERROR) { throw new Error(`Event subscriber ${payload.eventSubscriber} is in error state`); } return subscriptionId; }; var _default = pause; exports.default = _default; //# sourceMappingURL=pause.js.map