aboutsummaryrefslogtreecommitdiff
path: root/src/server/ApiManagers/DataVizManager.ts
blob: 88f22992da327b872185c04e96bd1296d1ca1413 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import * as path from 'path';
import { csvParser, csvToString } from '../DataVizUtils';
import { Method, _success } from '../RouteManager';
import { Directory, serverPathToFile } from '../SocketData';
import ApiManager, { Registration } from './ApiManager';

export default class DataVizManager extends ApiManager {
    protected initialize(register: Registration): void {
        register({
            method: Method.GET,
            subscription: '/csvData',
            secureHandler: async ({ req, res }) => {
                const uri = req.query.uri as string;

                return new Promise<void>(resolve => {
                    const name = path.basename(uri);
                    const sPath = serverPathToFile(Directory.csv, name);
                    const parsedCsv = csvParser(csvToString(sPath));
                    _success(res, parsedCsv);
                    resolve();
                });
            },
        });
    }
}