Select Git revision
prepare_wrfinput.py
index.js 1.12 KiB
// const bodyParser = require('body-parser')
const app = require('express')()
const multer = require('multer')
const upload = multer({ dest: '/tmp' })
const fetch = require('node-fetch')
// TODO extend me
const colTypeMap = {
Boolean: 'BOOLEAN',
Date: 'DATE',
Integer: 'NUMBER',
Numeric: 'NUMBER',
String: 'TEXT',
Timestamp: 'DATE'
}
app.post('/table_from_csv', upload.single('file'), async (req, res) => {
const { file } = req
const { path } = file
// send path to analyse service
let analysis
try {
analysis = await fetch(`${process.env.API_ANALYSE}/datatypesbypath?filepath=${path}`)
analysis = await analysis.json()
} catch (error) {
return res.json({ success: false, error })
}
// map messytables / CoMi's `determine_dt` column types to ours
// e.g. "Integer" -> "NUMBER"
let entries = Object.entries(analysis.columns)
entries = entries.map(([k, v]) => {
if (colTypeMap[v]) {
v = colTypeMap[v]
}
return {
name: k,
type: v,
nullAllowed: true,
primaryKey: false
}
})
res.json({ success: true, file, columns: entries })
})
module.exports = app