yf-fpm-server
Version:
yf fast-platform api server
80 lines (62 loc) • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _koaRouter = require('koa-router');
var _koaRouter2 = _interopRequireDefault(_koaRouter);
var _core = require('../bin/core.js');
var _core2 = _interopRequireDefault(_core);
var _debug = require('debug');
var _debug2 = _interopRequireDefault(_debug);
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _uuid = require('uuid');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const debug = (0, _debug2.default)('yf-fpm-server:api.js');
const Api = (0, _koaRouter2.default)();
Api.post('/api', async (ctx, next) => {
const postData = ctx.request.body;
let { v, method, param } = postData;
const fpm = ctx.fpm;
const hash = (0, _uuid.v4)();
const startAt = _lodash2.default.now();
try {
const paramObject = JSON.parse(param);
fpm._counter = fpm._counter + 1;
debug("[CALL METHOD]: %s @ %s. StartAt: %d", method, v, startAt);
debug("PostData: %O", postData);
fpm.runAction('CALL_API', fpm, ctx, { method, paramObject, v });
const p = await (0, _core2.default)(method, paramObject, v, fpm, ctx);
const endAt = _lodash2.default.now();
debug('Api Biz result: %O, EntAt: %d, Use Total: %d', p, endAt, endAt - startAt);
fpm.logger.info({
type: 'biz',
status: 'success',
result: p,
param,
startAt: new Date(startAt).toLocaleString(),
endAt: new Date(endAt).toLocaleString(),
hash,
method,
v,
duration: endAt - startAt
});
ctx.success(p);
} catch (err) {
const endAt = _lodash2.default.now();
fpm.logger.error({
status: 'error',
type: 'biz',
param,
startAt: new Date(startAt).toLocaleString(),
endAt: new Date(endAt).toLocaleString(),
hash,
method,
v,
duration: endAt - startAt
});
debug('Api Biz Execute Error: %O', err);
ctx.fail(err);
}
});
exports.default = Api;