Guest User

Untitled

a guest
Nov 22nd, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. var _ = require('lodash')
  2. var fs = require('fs');
  3. var node_xj = require("xls-to-json");
  4. var axios = require('axios');
  5. require('dotenv').config()
  6.  
  7. const order_keys = ['Order ID', 'Order Date and Time', 'Pincode', 'City', 'State', 'Address', 'Drop Locality', 'Doctor Name', 'Customer name', 'Contact Number'];
  8. const product_keys = ['Product Name', 'SKU Id', 'Manufacturer Name', 'Quantity ordered', 'Pack Form', 'Pack Size', 'Need Cold Chain', 'Product Mrp', 'Seller Mrp'];
  9.  
  10. const writeFile = (filename, data) => {
  11. fs.writeFile(filename, JSON.stringify(data), function (err) {
  12. if (err) {
  13. return console.log(err);
  14. }
  15. console.log("JSON created and Saved in test.json!");
  16. });
  17. }
  18.  
  19. const transformData = (data) => {
  20. var response = {}
  21. let res = _.filter(data, (item, index) => !_.isEmpty(item['Sr No.']))
  22. let grouped = _.groupBy(res, 'Order ID');
  23. _.each(grouped, (items, key) => {
  24. let obj = _.pick(items[0], order_keys);
  25. obj.orders = _.map(items, (item, index) => {
  26. return _.pick(item, product_keys);
  27. })
  28. response[key] = obj;
  29. })
  30. return response;
  31. }
  32.  
  33. node_xj({
  34. input: "input/Document.xlsx", // input xls
  35. output: null, // output json
  36. sheet: "Sheet1" // specific sheetname
  37. }, function (err, result) {
  38. if (err) {
  39. console.error(err);
  40. } else {
  41. //console.log(result);
  42. let newData = transformData(result);
  43. writeFile("test.json", newData);
  44. axios.post("www.test.com/importjson", {
  45. 'data': newData,
  46. 'secret': process.env.SECRET
  47. })
  48. .then((res) => {
  49. console.log(res.data)
  50. })
  51. .catch((err) => console.log(err.response.data));
  52. }
  53. });
Add Comment
Please, Sign In to add comment