Skip to content

Commit

Permalink
Support multiple panels export at once (#32)
Browse files Browse the repository at this point in the history
  • Loading branch information
sblrok authored Oct 2, 2020
1 parent a24a710 commit f07480c
Showing 1 changed file with 30 additions and 14 deletions.
44 changes: 30 additions & 14 deletions src/routes/tasks.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,42 @@
import { Target } from '../target'

import * as express from 'express'
import { Datasource } from '@corpglory/tsdb-kit';

type TRequest = {
body: {
from: string,
to: string,
data: Array<{
panelUrl: string,
datasourceRequest: Datasource,
datasourceName: string
}>,
target: object,
user: string,
}
};

async function addTask(req, res) {
let body = req.body;
let from = parseInt(body.from);
let to = parseInt(body.to);
let panelUrl = body.panelUrl;
let targets = [body.target];
let datasource = body.datasourceRequest;
let datasourceName = body.datasourceName;
let user = body.user;
async function addTask(req: TRequest, res) {
const body = req.body;
const from = parseInt(body.from);
const to = parseInt(body.to);
const data = body.data;
const targets = [body.target];
const user = body.user;

if(isNaN(from) || isNaN(to)) {
res.status(500).send('Range error: please fill both "from" and "to" fields');
res.status(400).send('Range error: please fill both "from" and "to" fields');
} else if(from >= to) {
res.status(500).send('Range error: "from" should be less than "to"');
res.status(400).send('Range error: "from" should be less than "to"');
} else {
res.status(200).send('Exporting ' + datasourceName + ' data from ' + new Date(from).toLocaleString() + ' to ' + new Date(to).toLocaleString());
let target = new Target(panelUrl, user, datasource, targets, from, to, datasourceName);
target.export();
const names = data.map(item => item.datasourceName).join(', ');
res.status(200).send(`Exporting ${names} data from ${new Date(from).toLocaleString()} to ${new Date(to).toLocaleString()}`);

data.forEach(request => {
const target = new Target(request.panelUrl, user, request.datasourceRequest, targets, from, to, request.datasourceName);
target.export();
});
}
}

Expand Down

0 comments on commit f07480c

Please sign in to comment.