437e1a2d0d960ac6fed1f9bf904ef37b3a62750f
[motion2.git] / server / api / intZohoConfiguration / intZohoConfiguration.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xb5ad=['../../mysqldb','sendStatus','status','undefined','limit','count','offset','set','Content-Range','json','reject','save','then','destroy','end','error','stack','name','map','ZohoConfiguration','fieldName','key','query','keys','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','type','VIRTUAL','includeAll','findAll','rows','catch','show','rawAttributes','include','find','create','body','update','params','getFields','findOne','options','ZohoField','getSubjects','getDescriptions','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment'];(function(_0x5037ab,_0x43209e){var _0x512adb=function(_0x261783){while(--_0x261783){_0x5037ab['push'](_0x5037ab['shift']());}};_0x512adb(++_0x43209e);}(_0xb5ad,0x1c5));var _0xdb5a=function(_0x3fb9dd,_0x174fff){_0x3fb9dd=_0x3fb9dd-0x0;var _0x20136a=_0xb5ad[_0x3fb9dd];return _0x20136a;};'use strict';var emlformat=require(_0xdb5a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xdb5a('0x1'));var jsonpatch=require(_0xdb5a('0x2'));var rp=require('request-promise');var moment=require(_0xdb5a('0x3'));var BPromise=require(_0xdb5a('0x4'));var Mustache=require(_0xdb5a('0x5'));var util=require('util');var path=require('path');var sox=require(_0xdb5a('0x6'));var csv=require(_0xdb5a('0x7'));var ejs=require(_0xdb5a('0x8'));var fs=require('fs');var fs_extra=require(_0xdb5a('0x9'));var _=require('lodash');var squel=require(_0xdb5a('0xa'));var crypto=require('crypto');var jsforce=require(_0xdb5a('0xb'));var deskjs=require(_0xdb5a('0xc'));var toCsv=require(_0xdb5a('0x7'));var querystring=require('querystring');var Papa=require(_0xdb5a('0xd'));var Redis=require(_0xdb5a('0xe'));var authService=require(_0xdb5a('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xdb5a('0x10'));var logger=require(_0xdb5a('0x11'))(_0xdb5a('0x12'));var utils=require(_0xdb5a('0x13'));var config=require(_0xdb5a('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xdb5a('0x15'))['db'];function respondWithStatusCode(_0x37110c,_0x49a2a6){_0x49a2a6=_0x49a2a6||0xcc;return function(_0x3fc2b6){if(_0x3fc2b6){return _0x37110c[_0xdb5a('0x16')](_0x49a2a6);}return _0x37110c[_0xdb5a('0x17')](_0x49a2a6)['end']();};}function respondWithResult(_0x278f0a,_0x484122){_0x484122=_0x484122||0xc8;return function(_0x527ff2){if(_0x527ff2){return _0x278f0a[_0xdb5a('0x17')](_0x484122)['json'](_0x527ff2);}};}function respondWithFilteredResult(_0x11e51a,_0x232b80){return function(_0x5e97ca){if(_0x5e97ca){var _0x7d4077=typeof _0x232b80['offset']===_0xdb5a('0x18')&&typeof _0x232b80[_0xdb5a('0x19')]===_0xdb5a('0x18');var _0x1b6c27=_0x5e97ca[_0xdb5a('0x1a')];var _0xda7a71=_0x7d4077?0x0:_0x232b80[_0xdb5a('0x1b')];var _0xed7175=_0x7d4077?_0x5e97ca['count']:_0x232b80[_0xdb5a('0x1b')]+_0x232b80['limit'];var _0x193ce8;if(_0xed7175>=_0x1b6c27){_0xed7175=_0x1b6c27;_0x193ce8=0xc8;}else{_0x193ce8=0xce;}_0x11e51a['status'](_0x193ce8);return _0x11e51a[_0xdb5a('0x1c')](_0xdb5a('0x1d'),_0xda7a71+'-'+_0xed7175+'/'+_0x1b6c27)[_0xdb5a('0x1e')](_0x5e97ca);}return null;};}function patchUpdates(_0x1d3e92){return function(_0x455c2e){try{jsonpatch['apply'](_0x455c2e,_0x1d3e92,!![]);}catch(_0x1869d4){return BPromise[_0xdb5a('0x1f')](_0x1869d4);}return _0x455c2e[_0xdb5a('0x20')]();};}function saveUpdates(_0x4c459c,_0x163ab5){return function(_0x4b0a99){if(_0x4b0a99){return _0x4b0a99['update'](_0x4c459c)[_0xdb5a('0x21')](function(_0x5beb53){return _0x5beb53;});}return null;};}function removeEntity(_0x3edede,_0x5343e0){return function(_0x3052c8){if(_0x3052c8){return _0x3052c8[_0xdb5a('0x22')]()[_0xdb5a('0x21')](function(){_0x3edede[_0xdb5a('0x17')](0xcc)[_0xdb5a('0x23')]();});}};}function handleEntityNotFound(_0x4a5bf4,_0x2a4b8b){return function(_0x1c8aba){if(!_0x1c8aba){_0x4a5bf4[_0xdb5a('0x16')](0x194);}return _0x1c8aba;};}function handleError(_0x34b355,_0x4740d2){_0x4740d2=_0x4740d2||0x1f4;return function(_0x2609ed){logger[_0xdb5a('0x24')](_0x2609ed[_0xdb5a('0x25')]);if(_0x2609ed[_0xdb5a('0x26')]){delete _0x2609ed['name'];}_0x34b355['status'](_0x4740d2)['send'](_0x2609ed);};}exports['index']=function(_0x5d1f5d,_0x27e0c9){var _0xfc8955={},_0xaa97aa={},_0x29f79c={'count':0x0,'rows':[]};var _0x5c20fd=_[_0xdb5a('0x27')](db[_0xdb5a('0x28')]['rawAttributes'],function(_0x3b7afa){return{'name':_0x3b7afa[_0xdb5a('0x29')],'type':_0x3b7afa['type'][_0xdb5a('0x2a')]};});_0xaa97aa['model']=_[_0xdb5a('0x27')](_0x5c20fd,_0xdb5a('0x26'));_0xaa97aa[_0xdb5a('0x2b')]=_[_0xdb5a('0x2c')](_0x5d1f5d[_0xdb5a('0x2b')]);_0xaa97aa['filters']=_['intersection'](_0xaa97aa[_0xdb5a('0x2d')],_0xaa97aa[_0xdb5a('0x2b')]);_0xfc8955['attributes']=_[_0xdb5a('0x2e')](_0xaa97aa[_0xdb5a('0x2d')],qs[_0xdb5a('0x2f')](_0x5d1f5d[_0xdb5a('0x2b')][_0xdb5a('0x2f')]));_0xfc8955[_0xdb5a('0x30')]=_0xfc8955[_0xdb5a('0x30')][_0xdb5a('0x31')]?_0xfc8955[_0xdb5a('0x30')]:_0xaa97aa[_0xdb5a('0x2d')];if(!_0x5d1f5d[_0xdb5a('0x2b')][_0xdb5a('0x32')](_0xdb5a('0x33'))){_0xfc8955[_0xdb5a('0x19')]=qs[_0xdb5a('0x19')](_0x5d1f5d[_0xdb5a('0x2b')]['limit']);_0xfc8955[_0xdb5a('0x1b')]=qs[_0xdb5a('0x1b')](_0x5d1f5d[_0xdb5a('0x2b')][_0xdb5a('0x1b')]);}_0xfc8955[_0xdb5a('0x34')]=qs[_0xdb5a('0x35')](_0x5d1f5d[_0xdb5a('0x2b')][_0xdb5a('0x35')]);_0xfc8955[_0xdb5a('0x36')]=qs[_0xdb5a('0x37')](_[_0xdb5a('0x38')](_0x5d1f5d[_0xdb5a('0x2b')],_0xaa97aa['filters']),_0x5c20fd);if(_0x5d1f5d[_0xdb5a('0x2b')][_0xdb5a('0x39')]){_0xfc8955[_0xdb5a('0x36')]=_[_0xdb5a('0x3a')](_0xfc8955[_0xdb5a('0x36')],{'$or':_[_0xdb5a('0x27')](_0x5c20fd,function(_0x58d61e){if(_0x58d61e[_0xdb5a('0x3b')]!==_0xdb5a('0x3c')){var _0x16391f={};_0x16391f[_0x58d61e[_0xdb5a('0x26')]]={'$like':'%'+_0x5d1f5d[_0xdb5a('0x2b')][_0xdb5a('0x39')]+'%'};return _0x16391f;}})});}_0xfc8955=_[_0xdb5a('0x3a')]({},_0xfc8955,_0x5d1f5d['options']);var _0x373429={'where':_0xfc8955[_0xdb5a('0x36')]};return db[_0xdb5a('0x28')][_0xdb5a('0x1a')](_0x373429)['then'](function(_0x3b34a7){_0x29f79c[_0xdb5a('0x1a')]=_0x3b34a7;if(_0x5d1f5d[_0xdb5a('0x2b')][_0xdb5a('0x3d')]){_0xfc8955['include']=[{'all':!![]}];}return db[_0xdb5a('0x28')][_0xdb5a('0x3e')](_0xfc8955);})[_0xdb5a('0x21')](function(_0x5c577c){_0x29f79c[_0xdb5a('0x3f')]=_0x5c577c;return _0x29f79c;})[_0xdb5a('0x21')](respondWithFilteredResult(_0x27e0c9,_0xfc8955))[_0xdb5a('0x40')](handleError(_0x27e0c9,null));};exports[_0xdb5a('0x41')]=function(_0x365fda,_0x31e0e8){var _0xf8ada6={'raw':![],'where':{'id':_0x365fda['params']['id']}},_0x27bb57={};_0x27bb57[_0xdb5a('0x2d')]=_[_0xdb5a('0x2c')](db['ZohoConfiguration'][_0xdb5a('0x42')]);_0x27bb57[_0xdb5a('0x2b')]=_['keys'](_0x365fda[_0xdb5a('0x2b')]);_0x27bb57[_0xdb5a('0x37')]=_[_0xdb5a('0x2e')](_0x27bb57[_0xdb5a('0x2d')],_0x27bb57['query']);_0xf8ada6[_0xdb5a('0x30')]=_['intersection'](_0x27bb57['model'],qs[_0xdb5a('0x2f')](_0x365fda[_0xdb5a('0x2b')][_0xdb5a('0x2f')]));_0xf8ada6['attributes']=_0xf8ada6[_0xdb5a('0x30')][_0xdb5a('0x31')]?_0xf8ada6['attributes']:_0x27bb57[_0xdb5a('0x2d')];if(_0x365fda[_0xdb5a('0x2b')]['includeAll']){_0xf8ada6[_0xdb5a('0x43')]=[{'all':!![]}];}_0xf8ada6=_[_0xdb5a('0x3a')]({},_0xf8ada6,_0x365fda['options']);return db['ZohoConfiguration'][_0xdb5a('0x44')](_0xf8ada6)[_0xdb5a('0x21')](handleEntityNotFound(_0x31e0e8,null))[_0xdb5a('0x21')](respondWithResult(_0x31e0e8,null))[_0xdb5a('0x40')](handleError(_0x31e0e8,null));};exports[_0xdb5a('0x45')]=function(_0x2c8579,_0x191e8f){return db[_0xdb5a('0x28')][_0xdb5a('0x45')](_0x2c8579[_0xdb5a('0x46')],{})[_0xdb5a('0x21')](respondWithResult(_0x191e8f,0xc9))[_0xdb5a('0x40')](handleError(_0x191e8f,null));};exports[_0xdb5a('0x47')]=function(_0x36a15d,_0x5dc9eb){if(_0x36a15d[_0xdb5a('0x46')]['id']){delete _0x36a15d['body']['id'];}return db['ZohoConfiguration']['find']({'where':{'id':_0x36a15d[_0xdb5a('0x48')]['id']}})[_0xdb5a('0x21')](handleEntityNotFound(_0x5dc9eb,null))['then'](saveUpdates(_0x36a15d['body'],null))[_0xdb5a('0x21')](respondWithResult(_0x5dc9eb,null))[_0xdb5a('0x40')](handleError(_0x5dc9eb,null));};exports[_0xdb5a('0x22')]=function(_0xc263a7,_0x2de265){return db[_0xdb5a('0x28')][_0xdb5a('0x44')]({'where':{'id':_0xc263a7[_0xdb5a('0x48')]['id']}})[_0xdb5a('0x21')](handleEntityNotFound(_0x2de265,null))[_0xdb5a('0x21')](removeEntity(_0x2de265,null))[_0xdb5a('0x40')](handleError(_0x2de265,null));};exports[_0xdb5a('0x49')]=function(_0x2a42d3,_0x1cfb0e,_0x11192f){var _0x36a2e2={};var _0x1c77f1={};var _0x72face;var _0x16ebe5;return db[_0xdb5a('0x28')][_0xdb5a('0x4a')]({'where':{'id':_0x2a42d3[_0xdb5a('0x48')]['id']}})[_0xdb5a('0x21')](handleEntityNotFound(_0x1cfb0e,null))['then'](function(_0x42cf2c){if(_0x42cf2c){_0x72face=_0x42cf2c;_0x1c77f1['model']=_[_0xdb5a('0x2c')](db['ZohoField'][_0xdb5a('0x42')]);_0x1c77f1[_0xdb5a('0x2b')]=_['keys'](_0x2a42d3[_0xdb5a('0x2b')]);_0x1c77f1[_0xdb5a('0x37')]=_[_0xdb5a('0x2e')](_0x1c77f1[_0xdb5a('0x2d')],_0x1c77f1[_0xdb5a('0x2b')]);_0x36a2e2['attributes']=_[_0xdb5a('0x2e')](_0x1c77f1[_0xdb5a('0x2d')],qs[_0xdb5a('0x2f')](_0x2a42d3[_0xdb5a('0x2b')][_0xdb5a('0x2f')]));_0x36a2e2[_0xdb5a('0x30')]=_0x36a2e2[_0xdb5a('0x30')][_0xdb5a('0x31')]?_0x36a2e2['attributes']:_0x1c77f1[_0xdb5a('0x2d')];_0x36a2e2[_0xdb5a('0x34')]=qs[_0xdb5a('0x35')](_0x2a42d3['query'][_0xdb5a('0x35')]);_0x36a2e2[_0xdb5a('0x36')]=qs[_0xdb5a('0x37')](_['pick'](_0x2a42d3[_0xdb5a('0x2b')],_0x1c77f1['filters']));if(_0x2a42d3[_0xdb5a('0x2b')][_0xdb5a('0x39')]){_0x36a2e2[_0xdb5a('0x36')]=_['merge'](_0x36a2e2[_0xdb5a('0x36')],{'$or':_[_0xdb5a('0x27')](_0x36a2e2[_0xdb5a('0x30')],function(_0x25f02a){var _0x3ba9b1={};_0x3ba9b1[_0x25f02a]={'$like':'%'+_0x2a42d3[_0xdb5a('0x2b')][_0xdb5a('0x39')]+'%'};return _0x3ba9b1;})});}_0x36a2e2=_[_0xdb5a('0x3a')]({},_0x36a2e2,_0x2a42d3[_0xdb5a('0x4b')]);return _0x72face['getFields'](_0x36a2e2);}})[_0xdb5a('0x21')](function(_0x4e74e2){if(_0x4e74e2){_0x16ebe5=_0x4e74e2[_0xdb5a('0x31')];if(!_0x2a42d3[_0xdb5a('0x2b')][_0xdb5a('0x32')]('nolimit')){_0x36a2e2['limit']=qs[_0xdb5a('0x19')](_0x2a42d3[_0xdb5a('0x2b')][_0xdb5a('0x19')]);_0x36a2e2[_0xdb5a('0x1b')]=qs[_0xdb5a('0x1b')](_0x2a42d3[_0xdb5a('0x2b')][_0xdb5a('0x1b')]);}return _0x72face[_0xdb5a('0x49')](_0x36a2e2);}})[_0xdb5a('0x21')](function(_0x215181){if(_0x215181){return _0x215181?{'count':_0x16ebe5,'rows':_0x215181}:null;}})[_0xdb5a('0x21')](respondWithResult(_0x1cfb0e,null))[_0xdb5a('0x40')](handleError(_0x1cfb0e,null));};exports['getSubjects']=function(_0x1a2853,_0x5510db,_0x963ea7){var _0x473e83={};var _0x92127d={};var _0x1d9ccd;var _0x10a925;return db[_0xdb5a('0x28')][_0xdb5a('0x4a')]({'where':{'id':_0x1a2853[_0xdb5a('0x48')]['id']}})[_0xdb5a('0x21')](handleEntityNotFound(_0x5510db,null))[_0xdb5a('0x21')](function(_0x51c65b){if(_0x51c65b){_0x1d9ccd=_0x51c65b;_0x92127d['model']=_[_0xdb5a('0x2c')](db[_0xdb5a('0x4c')][_0xdb5a('0x42')]);_0x92127d[_0xdb5a('0x2b')]=_['keys'](_0x1a2853[_0xdb5a('0x2b')]);_0x92127d['filters']=_[_0xdb5a('0x2e')](_0x92127d[_0xdb5a('0x2d')],_0x92127d[_0xdb5a('0x2b')]);_0x473e83[_0xdb5a('0x30')]=_[_0xdb5a('0x2e')](_0x92127d[_0xdb5a('0x2d')],qs['fields'](_0x1a2853[_0xdb5a('0x2b')]['fields']));_0x473e83['attributes']=_0x473e83[_0xdb5a('0x30')][_0xdb5a('0x31')]?_0x473e83[_0xdb5a('0x30')]:_0x92127d[_0xdb5a('0x2d')];_0x473e83['order']=qs[_0xdb5a('0x35')](_0x1a2853[_0xdb5a('0x2b')][_0xdb5a('0x35')]);_0x473e83[_0xdb5a('0x36')]=qs[_0xdb5a('0x37')](_[_0xdb5a('0x38')](_0x1a2853[_0xdb5a('0x2b')],_0x92127d[_0xdb5a('0x37')]));if(_0x1a2853[_0xdb5a('0x2b')]['filter']){_0x473e83['where']=_[_0xdb5a('0x3a')](_0x473e83[_0xdb5a('0x36')],{'$or':_['map'](_0x473e83[_0xdb5a('0x30')],function(_0x2a3d3a){var _0x496969={};_0x496969[_0x2a3d3a]={'$like':'%'+_0x1a2853[_0xdb5a('0x2b')][_0xdb5a('0x39')]+'%'};return _0x496969;})});}_0x473e83=_['merge']({},_0x473e83,_0x1a2853[_0xdb5a('0x4b')]);return _0x1d9ccd[_0xdb5a('0x4d')](_0x473e83);}})['then'](function(_0x224814){if(_0x224814){_0x10a925=_0x224814[_0xdb5a('0x31')];if(!_0x1a2853[_0xdb5a('0x2b')][_0xdb5a('0x32')](_0xdb5a('0x33'))){_0x473e83[_0xdb5a('0x19')]=qs[_0xdb5a('0x19')](_0x1a2853[_0xdb5a('0x2b')][_0xdb5a('0x19')]);_0x473e83['offset']=qs[_0xdb5a('0x1b')](_0x1a2853['query']['offset']);}return _0x1d9ccd[_0xdb5a('0x4d')](_0x473e83);}})[_0xdb5a('0x21')](function(_0x3970a3){if(_0x3970a3){return _0x3970a3?{'count':_0x10a925,'rows':_0x3970a3}:null;}})['then'](respondWithResult(_0x5510db,null))[_0xdb5a('0x40')](handleError(_0x5510db,null));};exports[_0xdb5a('0x4e')]=function(_0x54166a,_0x3cf7fb,_0xba5238){var _0x524b3d={};var _0x214e2b={};var _0x11836b;var _0x559de4;return db[_0xdb5a('0x28')][_0xdb5a('0x4a')]({'where':{'id':_0x54166a[_0xdb5a('0x48')]['id']}})[_0xdb5a('0x21')](handleEntityNotFound(_0x3cf7fb,null))[_0xdb5a('0x21')](function(_0x500ce8){if(_0x500ce8){_0x11836b=_0x500ce8;_0x214e2b[_0xdb5a('0x2d')]=_['keys'](db[_0xdb5a('0x4c')][_0xdb5a('0x42')]);_0x214e2b[_0xdb5a('0x2b')]=_[_0xdb5a('0x2c')](_0x54166a['query']);_0x214e2b[_0xdb5a('0x37')]=_[_0xdb5a('0x2e')](_0x214e2b[_0xdb5a('0x2d')],_0x214e2b[_0xdb5a('0x2b')]);_0x524b3d[_0xdb5a('0x30')]=_[_0xdb5a('0x2e')](_0x214e2b[_0xdb5a('0x2d')],qs[_0xdb5a('0x2f')](_0x54166a[_0xdb5a('0x2b')][_0xdb5a('0x2f')]));_0x524b3d[_0xdb5a('0x30')]=_0x524b3d[_0xdb5a('0x30')]['length']?_0x524b3d['attributes']:_0x214e2b[_0xdb5a('0x2d')];_0x524b3d[_0xdb5a('0x34')]=qs[_0xdb5a('0x35')](_0x54166a['query'][_0xdb5a('0x35')]);_0x524b3d[_0xdb5a('0x36')]=qs[_0xdb5a('0x37')](_[_0xdb5a('0x38')](_0x54166a['query'],_0x214e2b['filters']));if(_0x54166a[_0xdb5a('0x2b')][_0xdb5a('0x39')]){_0x524b3d[_0xdb5a('0x36')]=_[_0xdb5a('0x3a')](_0x524b3d[_0xdb5a('0x36')],{'$or':_['map'](_0x524b3d[_0xdb5a('0x30')],function(_0x540758){var _0x57213a={};_0x57213a[_0x540758]={'$like':'%'+_0x54166a[_0xdb5a('0x2b')]['filter']+'%'};return _0x57213a;})});}_0x524b3d=_[_0xdb5a('0x3a')]({},_0x524b3d,_0x54166a[_0xdb5a('0x4b')]);return _0x11836b[_0xdb5a('0x4e')](_0x524b3d);}})[_0xdb5a('0x21')](function(_0xcea06d){if(_0xcea06d){_0x559de4=_0xcea06d['length'];if(!_0x54166a[_0xdb5a('0x2b')][_0xdb5a('0x32')](_0xdb5a('0x33'))){_0x524b3d['limit']=qs[_0xdb5a('0x19')](_0x54166a[_0xdb5a('0x2b')][_0xdb5a('0x19')]);_0x524b3d[_0xdb5a('0x1b')]=qs['offset'](_0x54166a['query'][_0xdb5a('0x1b')]);}return _0x11836b[_0xdb5a('0x4e')](_0x524b3d);}})[_0xdb5a('0x21')](function(_0x266e28){if(_0x266e28){return _0x266e28?{'count':_0x559de4,'rows':_0x266e28}:null;}})['then'](respondWithResult(_0x3cf7fb,null))['catch'](handleError(_0x3cf7fb,null));};