aboutsummaryrefslogtreecommitdiff
path: root/src/server/ApiManagers/DataVizManager.ts
blob: 0d43130d1056f0846cdad81285b20f4db5045003 (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
26
import { csvParser, csvToString } from "../DataVizUtils";
import { Method, _success } from "../RouteManager";
import ApiManager, { Registration } from "./ApiManager";
import { Directory, serverPathToFile } from "./UploadManager";
import * as path from 'path';

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();
                });
            }
        });
    }
    
}