yf-fpm-server
Version:
yf fast-platform api server
41 lines (30 loc) • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _koaRouter = require('koa-router');
var _koaRouter2 = _interopRequireDefault(_koaRouter);
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _debug = require('debug');
var _debug2 = _interopRequireDefault(_debug);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const debug = (0, _debug2.default)('yf-fpm-server:webhook.js');
const webhook = (0, _koaRouter2.default)();
webhook.post('/webhook/:upstream/:type/:data', (ctx, next) => {
const { upstream, type, data } = ctx.params;
const topic = `#webhook/${upstream}/${type}`;
const message = ctx.request.body;
const events = ctx.fpm._webhook_events;
message.url_data = data;
debug('Webhook publish => Request: %O, Topic: %s, Message: %O', ctx.request, topic, message);
ctx.fpm.publish(topic, message);
events.unshift({ topic, message, at: _lodash2.default.now() });
if (events.length > 100) {
events.pop();
}
ctx.body = {
message: 'ok'
};
});
exports.default = webhook;