redis-smq-rest-api
Version:
A RESTful API for RedisSMQ
50 lines • 2.41 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.publishMessageController = void 0;
const redis_smq_1 = require("redis-smq");
const Container_js_1 = require("../../container/Container.js");
const publishMessageController = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
const messagesService = Container_js_1.Container.getInstance().resolve('messagesService');
const { message, exchange } = ctx.scope.resolve('requestBodyDTO');
const msg = new redis_smq_1.ProducibleMessage();
const { ttl, body, consumeTimeout, priority, retryDelay, retryThreshold, scheduledCron, scheduledRepeat, scheduledRepeatPeriod, scheduledDelay, } = message;
if (ttl)
msg.setTTL(ttl);
if (body)
msg.setBody(body);
if (consumeTimeout)
msg.setConsumeTimeout(consumeTimeout);
if (priority)
msg.setPriority(priority);
if (retryDelay)
msg.setRetryDelay(retryDelay);
if (retryThreshold)
msg.setRetryThreshold(retryThreshold);
if (scheduledCron)
msg.setScheduledCRON(scheduledCron);
if (scheduledRepeat)
msg.setScheduledRepeat(scheduledRepeat);
if (scheduledRepeatPeriod)
msg.setScheduledRepeatPeriod(scheduledRepeatPeriod);
if (scheduledDelay)
msg.setScheduledDelay(scheduledDelay);
if (exchange.queue)
msg.setQueue(exchange.queue);
else if (exchange.topic)
msg.setTopic(exchange.topic);
else if (exchange.fanOut)
msg.setFanOut(exchange.fanOut);
const ids = yield messagesService.publishMessage(msg);
return [201, ids];
});
exports.publishMessageController = publishMessageController;
//# sourceMappingURL=publishMessageController.js.map