data-migration-nodejs/src/index.js
2021-03-30 17:04:31 +07:00

69 lines
2.0 KiB
JavaScript

const express = require('express')
const axios = require("axios")
// const file = require('fs')
// file.readFile('./data/people.csv', 'utf-8', (err, data) => {
// if (err) {
// console.error(err)
// return
// }
// console.log(data)
// const rows = data.split(/\r?\n/);
// const header = rows[0].split(',').map(str => str.trim())
// console.log(header)
// });
// var XLSX = require('xlsx')
// var workbook = XLSX.readFile('./data/Sanagro Product and Catagory list.xlsx');
// var xlData = XLSX.utils.sheet_to_json(workbook.Sheets['Sheet1']);
// var data = xlData.map((row) => ({ id: row.No, name: row['Product name'] }))
var app = express();
app.get('/', function (req, res) {
res.sendFile('/upload.html', { root: __dirname })
});
let port = 5000
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
var multer = require('multer');
const { default: fetch } = require('node-fetch');
var upload = multer();
var XLSX = require('xlsx')
app.use(upload.none());
app.post('/upload', async function (req, res) {
let input = req.body.myFile;
let wb = XLSX.read(input, { type: 'binary' });
let xlData = XLSX.utils.sheet_to_json(wb.Sheets['Sheet2']);
let data = xlData.map((row) => ({ productName: row['Product name'], smallTypeName: row.smallTypeName, productCategory: { productCategoryId: row['CategoryID'] }, alert: row.alert, cost: row.cost, qtyStock: row.qtystock, sellPrice: row.sellPrice }))
res.send(data)
axios({
url: 'http://localhost:4000/graphql',
method: 'post',
headers: {
"authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjEsImlhdCI6MTYxNzA3OTYyOCwiZXhwIjoxNjE3MzM4ODI4fQ.p5oAaT3htRbBgKimfr7hxfjNwjWPc5X1finX2zBZ9aM"
},
data: {
query: `
mutation{
createManyProducts(file: "${JSON.stringify(data)}")
}
`
}
}).then((result) => {
console.log(result.data)
});
})