UNPKG

@zenvia/sdk

Version:

This SDK for [Node.js](https://nodejs.org/) was created based on the [Zenvia](https://www.zenvia.com/) [API](https://zenvia.github.io/zenvia-openapi-spec/).

62 lines 2.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.del = exports.patch = exports.get = exports.post = void 0; const rp = require("request-promise"); const url = 'https://api.zenvia.com'; async function post(token, path, body, logger, options) { return request(token, 'post', path, body, logger, options); } exports.post = post; async function get(token, path, logger, options) { return request(token, 'get', path, undefined, logger, options); } exports.get = get; async function patch(token, path, body, logger, options) { return request(token, 'patch', path, body, logger, options); } exports.patch = patch; async function del(token, path, logger, options) { return request(token, 'delete', path, undefined, logger, options); } exports.del = del; async function request(token, method, path, body, logger, options) { const uri = `${url}${path}`; const data = { method, uri, body, formData: options === null || options === void 0 ? void 0 : options.formData, headers: Object.assign({ 'X-API-Token': `${token}` }, options === null || options === void 0 ? void 0 : options.customHeaders), json: true, forever: true, simple: false, resolveWithFullResponse: true, }; let error; logger.debug(`Starting request with following data: ${JSON.stringify(data)}`); const startTime = Date.now(); try { const response = await rp(data); const elapsedTime = Date.now() - startTime; if (response.statusCode >= 200 && response.statusCode < 300) { logger.debug(`Success on send ${method} request to ${uri} takes ${elapsedTime} miliseconds and return status code ${response.statusCode}`); return response.body; } logger.warn(`The performed request take ${elapsedTime} miliseconds and return a non 2xx status code ${response.statusCode}`); error = { httpStatusCode: response.statusCode, message: 'Unsuccessful request', body: Buffer.isBuffer(response.body) ? response.body.toString() : response.body, }; } catch (e) { const elapsedTime = Date.now() - startTime; logger.error(`Error on try to send request that takes ${elapsedTime} miliseconds`, e); error = { message: e.message, causedBy: e, }; } throw error; } //# sourceMappingURL=request.js.map