UNPKG

@jrosadob/ms-http-interceptor

Version:

ms-http-interceptor

61 lines 2.84 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.HttpInterceptor = void 0; const common_1 = require("@nestjs/common"); const rxjs_1 = require("rxjs"); const ms_logger_1 = require("@jrosadob/ms-logger"); const ms_request_1 = require("@jrosadob/ms-request"); let HttpInterceptor = class HttpInterceptor { constructor(logger, request) { this.logger = logger; this.request = request; } intercept(context, next) { this.request.setRequest(context); this.logger.log(this.getRequestMessage(), 'LoggerInterceptor.In'); const value = next.handle().pipe((0, rxjs_1.map)((data) => { data = this.setFormatResponse(data); return data; }), (0, rxjs_1.tap)((data) => { this.request.setResponse(JSON.stringify(data), context); this.logger.log(this.getResponseMessage(), 'LoggerInterceptor.Out'); })); return value; } setFormatResponse(data) { const isArray = Array.isArray(data); const value = { entity: isArray ? null : data, entities: isArray ? data : null, hasError: false, browse: 'serviceTCP.getBrowse(Conroller, Metthod): Solo si es array', pagination: 'item.pagination', }; return value; } getRequestMessage() { const request = this.request.logger; const message = `Request ${request.reqMethod} ${request.reqUrl} from ${request.sourceIp}`; return message; } getResponseMessage() { const request = this.request.logger; const message = `Response of request ${request.reqMethod} ${request.reqUrl} from ${request.sourceIp}. StatusCode: ${request.statusCode}`; return message; } }; HttpInterceptor = __decorate([ (0, common_1.Injectable)({ scope: common_1.Scope.REQUEST }), __metadata("design:paramtypes", [ms_logger_1.LoggerService, ms_request_1.RequestService]) ], HttpInterceptor); exports.HttpInterceptor = HttpInterceptor; //# sourceMappingURL=http-interceptor.js.map