rozetko
2 years ago
3 changed files with 16 additions and 130 deletions
@ -1,118 +0,0 @@ |
|||||||
import { EXPORTED_PATH } from '../config'; |
|
||||||
|
|
||||||
import * as express from 'express'; |
|
||||||
import * as path from 'path'; |
|
||||||
import * as fs from 'fs'; |
|
||||||
|
|
||||||
|
|
||||||
function sendOk(req, res) { |
|
||||||
res.status(200).send('Datasource works'); |
|
||||||
} |
|
||||||
|
|
||||||
function search(req, res) { |
|
||||||
fs.readdir(EXPORTED_PATH, err => { |
|
||||||
if(err) { |
|
||||||
console.error(err); |
|
||||||
res.status(500).send('Something went wrong'); |
|
||||||
} else { |
|
||||||
res.status(200).send(['All tasks']); |
|
||||||
} |
|
||||||
}) |
|
||||||
} |
|
||||||
|
|
||||||
function query(req, res) { |
|
||||||
let body = req.body; |
|
||||||
let targets = body.targets; |
|
||||||
|
|
||||||
let resp = { |
|
||||||
target: targets[0].target, |
|
||||||
type: 'table', |
|
||||||
columns: [ |
|
||||||
{ |
|
||||||
text: 'Progress updated', |
|
||||||
type: 'time' |
|
||||||
}, |
|
||||||
{ |
|
||||||
text: 'User', |
|
||||||
type: 'string' |
|
||||||
}, |
|
||||||
{ |
|
||||||
text: 'Datasource', |
|
||||||
type: 'string' |
|
||||||
}, |
|
||||||
{ |
|
||||||
text: 'Exported Rows', |
|
||||||
type: 'number' |
|
||||||
}, |
|
||||||
{ |
|
||||||
text: 'Progress', |
|
||||||
type: 'string' |
|
||||||
}, |
|
||||||
{ |
|
||||||
text: 'Download CSV', |
|
||||||
type: 'string' |
|
||||||
}, |
|
||||||
{ |
|
||||||
text: 'Status', |
|
||||||
type: 'string' |
|
||||||
}, |
|
||||||
{ |
|
||||||
text: 'Delete task', |
|
||||||
type: 'string' |
|
||||||
} |
|
||||||
], |
|
||||||
rows: [] |
|
||||||
}; |
|
||||||
|
|
||||||
for(let target of targets) { |
|
||||||
fs.readdir(EXPORTED_PATH, (err, items) => { |
|
||||||
if(err) { |
|
||||||
console.error(err); |
|
||||||
res.status(500).send('Something went wrong'); |
|
||||||
} else { |
|
||||||
for(let item of items) { |
|
||||||
let file = path.parse(item); |
|
||||||
if(file.ext !== '.json') { |
|
||||||
continue; |
|
||||||
} |
|
||||||
// TODO: read async
|
|
||||||
let data = fs.readFileSync(path.join(EXPORTED_PATH, item), 'utf8') |
|
||||||
let status = JSON.parse(data) |
|
||||||
|
|
||||||
let requestedUrl = `http://${req.headers.host}`; |
|
||||||
let downloadLink = ''; |
|
||||||
let deleteLink = ''; |
|
||||||
if(status.status === 'finished') { |
|
||||||
downloadLink = `<a class="download-csv" href="${requestedUrl}/static/${file.name}.csv" target="_blank"><i class="fa fa-download"></i></a>`; |
|
||||||
deleteLink = `<a class="delete-task" href="${requestedUrl}/delete?filename=${file.name}"><i class="fa fa-times"></i></a>`; |
|
||||||
} |
|
||||||
resp.rows.push([ |
|
||||||
status.time, |
|
||||||
status.user, |
|
||||||
status.datasourceName, |
|
||||||
status.exportedRows, |
|
||||||
status.progress, |
|
||||||
downloadLink, |
|
||||||
status.status, |
|
||||||
deleteLink |
|
||||||
]); |
|
||||||
} |
|
||||||
|
|
||||||
res.status(200).send([resp]); |
|
||||||
} |
|
||||||
}) |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
function sendAnnotations(req, res) { |
|
||||||
res.status(200).send([]); |
|
||||||
} |
|
||||||
|
|
||||||
export const router = express.Router(); |
|
||||||
|
|
||||||
router.get('/', sendOk); |
|
||||||
router.post('/search', search); |
|
||||||
router.post('/query', query); |
|
||||||
router.post('/annotations', sendAnnotations); |
|
||||||
|
|
Loading…
Reference in new issue