UNPKG

redash-loader

Version:

`redash-loader` is command line tool make it possible to fetch redash content(query and dashboard) from your Redash. <br>

54 lines 1.99 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.RedashClient = void 0; const axios_1 = __importDefault(require("axios")); class RedashClient { constructor(apiKey, url) { this.apiKey = apiKey; this.url = url; this.fetchQueries = async (page = 1, pageSize = 25) => { try { const response = await axios_1.default.get(`${this.url}/api/queries?api_key=${this.apiKey}&page=${page}&page_size=${pageSize}`); return response.data; } catch (e) { console.log(e); return; } }; this.fetchDashboards = async (page = 1, pageSize = 25) => { try { const response = await axios_1.default.get(`${this.url}/api/dashboards?api_key=${this.apiKey}&page=${page}&page_size=${pageSize}`); return response.data; } catch (e) { console.log(e); return; } }; this.paginate = async (resource, page = 1, pageSize = 25) => { try { const response = await resource(page, pageSize); if (!response) { throw "fetch error"; } if (response.page * response.page_size >= response.count) { return response.results; } const nextPageResponse = await this.paginate(resource, (page = page + 1), pageSize); return [...response.results, ...nextPageResponse]; } catch (e) { console.log(e); return []; } }; this.apiKey = apiKey; this.url = url; } } exports.RedashClient = RedashClient; //# sourceMappingURL=client.js.map