From c09f4932ba8d0d4157d3ba3772121914ed518768 Mon Sep 17 00:00:00 2001 From: nikitam Date: Tue, 22 May 2018 18:20:12 +0530 Subject: [PATCH] started-worker-from-uploader-service --- config/index.js | 2 +- index.js | 108 +++++++++++++++++++++++++++++++++++----------- package-lock.json | 84 ++++++++++++++++++++++++++++++++++++ package.json | 4 +- 4 files changed, 171 insertions(+), 27 deletions(-) diff --git a/config/index.js b/config/index.js index e623010..4678a3f 100644 --- a/config/index.js +++ b/config/index.js @@ -2,7 +2,7 @@ module.exports = { "rethinkdb": { "host": process.env.RDB_HOST, "port": process.env.RDB_PORT, - "db": "prosync" + "db": "FlowzDBETL" }, "qOptions": { "name": "product_sync_worker", diff --git a/index.js b/index.js index 9fd891e..6688a74 100644 --- a/index.js +++ b/index.js @@ -15,7 +15,7 @@ let asi_pass = process.env.asi_password let sageAccId = process.env.sageAccId let sageLoginId = process.env.sageLoginId let sagePwd = process.env.sagePwd - +let uploaderService = process.env.uploaderService // var mongodb = require('mongodb'); // var elasticsearch = require('elasticsearch'); // var MongoClient = require('mongodb').MongoClient; @@ -28,13 +28,15 @@ const qOptions = app.qOptions const q = new Queue(cxnOptions, qOptions) -let serviceUrl = 'http://localhost:3030'; +// let uploaderServices = 'http://localhost:3040'; let pdmUrl = 'http://api.flowzcluster.tk/pdmnew/pdm' let asiUrl = 'https://sandbox-productservice.asicentral.com/api/v4/' let sageUrl = 'https://www.promoplace.com/ws/ws.dll/XMLDataStream' // let lookup = 'https://sandbox-productservice.asicentral.com/api/v4/lookup/categorieslist' -let psyncUrl = serviceUrl + '/onlysync' +let psyncUrl = uploaderService + '/product-sync' + +const no_image_path = 'https://res.cloudinary.com/flowz/image/upload/v1526652106/builder/gxycflqvc1m23qqknch9.png' let lookupData = {}; @@ -56,7 +58,7 @@ async function getAPI(id) { return resp.data }).catch(err => { return {} - }) + }) return res; } @@ -547,29 +549,85 @@ function asiProductMap(asi_product, _pdmProduct) { // ****************** Set Images - asi_product.Images.push({ - // ImageURL: pdmProduct.default_image, - ImageURL: 'https://res.cloudinary.com/flowz/raw/upload/v1525085146/product_images/f9ea80ee-6329-48de-b247-a029e1cd841a/54694-blue_1.jpg', - Rank: 1, - IsPrimary: true, - Configurations: [ - { - Criteria: 'Product Color', - Value: [ - pdmProduct.default_color - ] + // asi_product.Images.push({ + // // ImageURL: pdmProduct.default_image, + // ImageURL: 'https://res.cloudinary.com/flowz/raw/upload/v1525085146/product_images/f9ea80ee-6329-48de-b247-a029e1cd841a/54694-blue_1.jpg', + // Rank: 1, + // IsPrimary: true, + // Configurations: [ + // { + // Criteria: 'Product Color', + // Value: [ + // pdmProduct.default_color + // ] + // } + // ] + // }) + if (!pdmProduct.hasOwnProperty('images')) { + asi_product.Images.push({ + ImageURL: no_image_path, + Rank: 1, + IsPrimary: true, + Configurations: [ + { + Criteria: 'Product Color', + Value: [ + pdmProduct.default_color + ] + } + ] + }) + } else { + let imagename = pdmProduct.default_image; + let checkArr = []; + for (let item of pdmProduct.images) { + for (let inneritem of item.images) { + let _a = imagename.match('/'+inneritem.web_image+'/g') + if (_a != null) { + checkArr.push(inneritem) + } } - ] - }) + } + if (checkArr.length > 0) { + asi_product.Images.push({ + ImageURL: checkArr[0].secure_url, + Rank: 1, + IsPrimary: true, + Configurations: [ + { + Criteria: 'Product Color', + Value: [ + pdmProduct.default_color + ] + } + ] + }) + } else { + asi_product.Images.push({ + ImageURL: no_image_path, + Rank: 1, + IsPrimary: true, + Configurations: [ + { + Criteria: 'Product Color', + Value: [ + pdmProduct.default_color + ] + } + ] + }) + } + } + let rank = 2; - if (pdmProduct.hasOwnProperty('pdmProduct')) { + if (pdmProduct.hasOwnProperty('images')) { for (let item of pdmProduct.images) { if (item.hasOwnProperty('images')) { for (let inneritem of item.images) { let exist = _.findIndex(asi_product.Images, {ImageURL: inneritem.web_image}); if (exist == -1) { asi_product.Images.push({ - ImageURL: 'https://res.cloudinary.com/flowz/raw/upload/v1525085146/product_images/f9ea80ee-6329-48de-b247-a029e1cd841a/54694-blue_1.jpg', + ImageURL: inneritem.secure_url, // ImageURL: inneritem.web_image, Rank: rank, IsPrimary: false, @@ -1039,7 +1097,7 @@ async function syncAsiFunction(vid,skip,syncId) { console.log('map_product >>>>>>>>>>>>>>>>>>> Update :: ', map_product.SKU); let update_product = await postASIProduct(aToken, map_product) - console.log('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', update_product, '\n UPDATE:: ', JSON.stringify(map_product) + '\n') + console.log('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%', update_product + '\n') let updated_counted = await updateProductProcessed(syncId,count) // console.log('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Update', update_product) @@ -1052,7 +1110,7 @@ async function syncAsiFunction(vid,skip,syncId) { console.log('map_product >>>>>>>>>>>>>>>>>>> New :: ', map_product.SKU) let update_product = await postASIProduct(aToken, map_product) // console.log('+++++++++++++++++++++++++++++++++ New', update_product) - console.log('+++++++++++++++++++++++++++++++++', update_product, '\n DATA::', JSON.stringify(map_product) + '\n') + console.log('+++++++++++++++++++++++++++++++++', update_product + '\n') let updated_counted = await updateProductProcessed(syncId,count) } @@ -1090,12 +1148,12 @@ async function syncSageFunction(vid,skip,syncId) { console.log('xmlproduct ======>', xmlProduct) - let update_product = await postSageProduct(xmlProduct) - console.log('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% update product %%%%%%%%%%%%%%%%%%%%%%%%%%%', update_product) + // let update_product = await postSageProduct(xmlProduct) + // console.log('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% update product %%%%%%%%%%%%%%%%%%%%%%%%%%%', update_product) - let updated_counted = await updateProductProcessed(syncId,count) + // let updated_counted = await updateProductProcessed(syncId,count) - // count ++ + // // count ++ } } diff --git a/package-lock.json b/package-lock.json index fd97159..95a2d44 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,6 +38,11 @@ "is-buffer": "1.1.6" } }, + "bindings": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", + "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" + }, "bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", @@ -125,6 +130,11 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" + }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -140,16 +150,60 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "isemail": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.1.2.tgz", + "integrity": "sha512-zfRhJn9rFSGhzU5tGZqepRSAj3+g6oTOHxMGGriWNJZzyLPUK8H7VHpqKntegnW8KLyGA9zwuNaCoopl40LTpg==", + "requires": { + "punycode": "2.1.0" + } + }, + "joi": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-13.3.0.tgz", + "integrity": "sha512-iF6jEYVfBIoYXztYymia1JfuoVbxBNuOcwdbsdoGin9/jjhBLhonKmfTQOvePss8r8v4tU4JOcNmYPHZzKEFag==", + "requires": { + "hoek": "5.0.3", + "isemail": "3.1.2", + "topo": "3.0.0" + }, + "dependencies": { + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } + } + }, "lodash": { "version": "4.17.10", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" }, + "moment": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.1.tgz", + "integrity": "sha512-shJkRTSebXvsVqk56I+lkb2latjBs8I+pc2TzWc545y2iFnSjm7Wg0QMh+ZWcdSLQyGEau5jI8ocnmkyTgr9YQ==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" + }, + "node-expat": { + "version": "2.3.16", + "resolved": "https://registry.npmjs.org/node-expat/-/node-expat-2.3.16.tgz", + "integrity": "sha512-e3HyQI0lk5CXyYQ4RsDYGiWdY5LJxNMlNCzo4/gwqY8lhYIeTf5VwGirGDa1EPrcZROmOR37wHuFVnoHmOWnOw==", + "requires": { + "bindings": "1.3.0", + "nan": "2.10.0" + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -192,6 +246,11 @@ "once": "1.4.0" } }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + }, "quick-format-unescaped": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-1.1.2.tgz", @@ -277,6 +336,21 @@ "xtend": "4.0.1" } }, + "topo": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.0.tgz", + "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", + "requires": { + "hoek": "5.0.3" + }, + "dependencies": { + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -292,6 +366,16 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "xml2json": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/xml2json/-/xml2json-0.11.2.tgz", + "integrity": "sha512-ZJpHpPOL0T5lOvAHMnWm59iQOPqNtam5t2TMUllWZ1k5Wm8L5YyvQnkeaVnRKCvDwY5EumqXWyOjjMdQVz272A==", + "requires": { + "hoek": "4.2.1", + "joi": "13.3.0", + "node-expat": "2.3.16" + } + }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", diff --git a/package.json b/package.json index 05212d5..13acdf7 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,9 @@ "asyncawait": "^1.0.6", "axios": "^0.18.0", "lodash": "^4.17.10", + "moment": "^2.22.1", "pino": "^4.16.1", - "rethinkdb-job-queue": "^3.1.7" + "rethinkdb-job-queue": "^3.1.7", + "xml2json": "^0.11.2" } }