UNPKG

pandora-metrics

Version:
56 lines 1.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class TraceResource { constructor(endPointService) { this.prefix = '/trace'; this.endPointService = endPointService; } route(router) { const traceEndPoint = this.endPointService.getEndPoint('trace'); router.get('/', async (ctx, next) => { try { const { by, value, order, offset, limit } = ctx.query; const items = await traceEndPoint.invoke({ appName: ctx.query['appName'], by, value: Number(value), order }); const count = items.length; let ret = items; if (offset != null && limit != null) { const nOffset = Number(offset); const nLimit = Number(limit); ret = ret.slice(nOffset, nOffset + nLimit); } ctx.ok({ count, offset, limit, items: ret }); } catch (err) { ctx.fail(err.message); } await next(); }); router.get('/:traceId', async (ctx, next) => { try { const traceId = ctx.params.traceId; const res = await traceEndPoint.invoke({ appName: ctx.query['appName'], traceId: traceId }); const ret = res[0]; if (!ret) { throw new Error('Can\'t got a trace, it maybe already has been clean. Trace Id: ' + traceId); } ctx.ok(ret); } catch (err) { ctx.fail(err.message); } await next(); }); } } exports.TraceResource = TraceResource; //# sourceMappingURL=TraceResource.js.map