UNPKG

channelape-sdk

Version:
65 lines 2.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const channelape_logger_1 = require("channelape-logger"); class RequestLogger { constructor(logLevel, endpoint) { this.endpoint = endpoint; this.logger = new channelape_logger_1.Logger('ChannelApe API', logLevel); } logCall(method, uriOrOptions, callbackOrOptionsOrUndefined) { let methodToLog = ''; if (typeof method !== 'undefined') { methodToLog = method.toUpperCase(); } let uri; let queryParams = ''; if (typeof uriOrOptions === 'string') { uri = `${this.endpoint}${uriOrOptions}`; if (typeof callbackOrOptionsOrUndefined !== 'undefined' && typeof callbackOrOptionsOrUndefined !== 'function') { queryParams = this.getQueryParamString(callbackOrOptionsOrUndefined.qs); } } else { uri = `${this.endpoint}${uriOrOptions.uri.toString()}`; queryParams = this.getQueryParamString(uriOrOptions.qs); } this.logger.info(`${methodToLog} ${uri}${queryParams} -- STARTED`); } logResponse(error, response, body) { let errorMessage; let infoMessage = ''; if (typeof response !== 'undefined' && typeof response.request !== 'undefined') { if (!this.responseIsLevel200(response.statusCode)) { const errorMessage = `${response.request.method} ${response.request.href} -- FAILED WITH STATUS: ${response.statusCode}`; this.logger.error(errorMessage); } else { infoMessage = `${response.request.method} ${response.request.href} -- COMPLETED`; } } if (infoMessage !== '') { this.logger.info(infoMessage); } if (error != null) { errorMessage = error.message; this.logger.error(errorMessage); } } responseIsLevel200(statusCode) { return (statusCode >= 200 && statusCode <= 299); } getQueryParamString(params) { if (typeof params === 'undefined') { return ''; } if (Object.keys(params).length === 0) { return ''; } const queryParms = Object.keys(params).map((k) => { return `${k}=${params[k]}`; }).join('&'); return `?${queryParms}`; } } exports.default = RequestLogger; //# sourceMappingURL=RequestLogger.js.map