420349f1b34696a412c06b863d553299bdbcd15c
[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 _0x7cca=['create','body','update','find','params','findOne','ZohoField','pick','hasOwnProperty','getFields','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','moment','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','stack','name','send','index','map','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','filter','merge','options','ZohoConfiguration','include','findAll','rows','includeAll','catch'];(function(_0x3f087d,_0x89cc1){var _0x248faa=function(_0x45997e){while(--_0x45997e){_0x3f087d['push'](_0x3f087d['shift']());}};_0x248faa(++_0x89cc1);}(_0x7cca,0x140));var _0xa7cc=function(_0x59547b,_0x332d58){_0x59547b=_0x59547b-0x0;var _0x5291b2=_0x7cca[_0x59547b];return _0x5291b2;};'use strict';var emlformat=require(_0xa7cc('0x0'));var rimraf=require(_0xa7cc('0x1'));var zipdir=require(_0xa7cc('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xa7cc('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xa7cc('0x4'));var util=require('util');var path=require(_0xa7cc('0x5'));var sox=require(_0xa7cc('0x6'));var csv=require(_0xa7cc('0x7'));var ejs=require(_0xa7cc('0x8'));var fs=require('fs');var fs_extra=require(_0xa7cc('0x9'));var _=require('lodash');var squel=require(_0xa7cc('0xa'));var crypto=require(_0xa7cc('0xb'));var jsforce=require(_0xa7cc('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xa7cc('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xa7cc('0xe'));var as=require(_0xa7cc('0xf'));var hardwareService=require(_0xa7cc('0x10'));var logger=require(_0xa7cc('0x11'))(_0xa7cc('0x12'));var utils=require('../../config/utils');var config=require(_0xa7cc('0x13'));var licenseUtil=require(_0xa7cc('0x14'));var db=require(_0xa7cc('0x15'))['db'];function respondWithStatusCode(_0x4fe6d0,_0x1d07bd){_0x1d07bd=_0x1d07bd||0xcc;return function(_0x560a5d){if(_0x560a5d){return _0x4fe6d0['sendStatus'](_0x1d07bd);}return _0x4fe6d0[_0xa7cc('0x16')](_0x1d07bd)[_0xa7cc('0x17')]();};}function respondWithResult(_0x445a6e,_0xf69c5f){_0xf69c5f=_0xf69c5f||0xc8;return function(_0x497f51){if(_0x497f51){return _0x445a6e[_0xa7cc('0x16')](_0xf69c5f)[_0xa7cc('0x18')](_0x497f51);}};}function respondWithFilteredResult(_0x567e98,_0x495e7e){return function(_0x1736c9){if(_0x1736c9){var _0x45dde9=typeof _0x495e7e[_0xa7cc('0x19')]===_0xa7cc('0x1a')&&typeof _0x495e7e[_0xa7cc('0x1b')]==='undefined';var _0x1f5ca9=_0x1736c9[_0xa7cc('0x1c')];var _0x3cd820=_0x45dde9?0x0:_0x495e7e[_0xa7cc('0x19')];var _0x390249=_0x45dde9?_0x1736c9['count']:_0x495e7e[_0xa7cc('0x19')]+_0x495e7e[_0xa7cc('0x1b')];var _0x2f7673;if(_0x390249>=_0x1f5ca9){_0x390249=_0x1f5ca9;_0x2f7673=0xc8;}else{_0x2f7673=0xce;}_0x567e98[_0xa7cc('0x16')](_0x2f7673);return _0x567e98[_0xa7cc('0x1d')](_0xa7cc('0x1e'),_0x3cd820+'-'+_0x390249+'/'+_0x1f5ca9)['json'](_0x1736c9);}return null;};}function patchUpdates(_0x28f37f){return function(_0x18753e){try{jsonpatch[_0xa7cc('0x1f')](_0x18753e,_0x28f37f,!![]);}catch(_0x20849c){return BPromise[_0xa7cc('0x20')](_0x20849c);}return _0x18753e[_0xa7cc('0x21')]();};}function saveUpdates(_0x2e6a1f,_0x4f50f2){return function(_0x553b3d){if(_0x553b3d){return _0x553b3d['update'](_0x2e6a1f)[_0xa7cc('0x22')](function(_0x434132){return _0x434132;});}return null;};}function removeEntity(_0x534ae3,_0x215f5f){return function(_0x174196){if(_0x174196){return _0x174196[_0xa7cc('0x23')]()[_0xa7cc('0x22')](function(){_0x534ae3[_0xa7cc('0x16')](0xcc)[_0xa7cc('0x17')]();});}};}function handleEntityNotFound(_0x5b9d56,_0x3bbec7){return function(_0x1381b3){if(!_0x1381b3){_0x5b9d56['sendStatus'](0x194);}return _0x1381b3;};}function handleError(_0x8f1c61,_0x59b05e){_0x59b05e=_0x59b05e||0x1f4;return function(_0x8650d0){logger['error'](_0x8650d0[_0xa7cc('0x24')]);if(_0x8650d0[_0xa7cc('0x25')]){delete _0x8650d0[_0xa7cc('0x25')];}_0x8f1c61[_0xa7cc('0x16')](_0x59b05e)[_0xa7cc('0x26')](_0x8650d0);};}exports[_0xa7cc('0x27')]=function(_0xc4549d,_0x1e65b2){var _0x2942b5={},_0x4d3a80={},_0x456aaf={'count':0x0,'rows':[]};var _0x29641f=_[_0xa7cc('0x28')](db['ZohoConfiguration'][_0xa7cc('0x29')],function(_0x4d2813){return{'name':_0x4d2813[_0xa7cc('0x2a')],'type':_0x4d2813[_0xa7cc('0x2b')]['key']};});_0x4d3a80[_0xa7cc('0x2c')]=_[_0xa7cc('0x28')](_0x29641f,_0xa7cc('0x25'));_0x4d3a80[_0xa7cc('0x2d')]=_[_0xa7cc('0x2e')](_0xc4549d['query']);_0x4d3a80[_0xa7cc('0x2f')]=_[_0xa7cc('0x30')](_0x4d3a80[_0xa7cc('0x2c')],_0x4d3a80[_0xa7cc('0x2d')]);_0x2942b5['attributes']=_[_0xa7cc('0x30')](_0x4d3a80[_0xa7cc('0x2c')],qs[_0xa7cc('0x31')](_0xc4549d[_0xa7cc('0x2d')][_0xa7cc('0x31')]));_0x2942b5[_0xa7cc('0x32')]=_0x2942b5[_0xa7cc('0x32')][_0xa7cc('0x33')]?_0x2942b5[_0xa7cc('0x32')]:_0x4d3a80['model'];if(!_0xc4549d[_0xa7cc('0x2d')]['hasOwnProperty'](_0xa7cc('0x34'))){_0x2942b5[_0xa7cc('0x1b')]=qs[_0xa7cc('0x1b')](_0xc4549d[_0xa7cc('0x2d')]['limit']);_0x2942b5[_0xa7cc('0x19')]=qs[_0xa7cc('0x19')](_0xc4549d[_0xa7cc('0x2d')][_0xa7cc('0x19')]);}_0x2942b5[_0xa7cc('0x35')]=qs[_0xa7cc('0x36')](_0xc4549d[_0xa7cc('0x2d')][_0xa7cc('0x36')]);_0x2942b5[_0xa7cc('0x37')]=qs[_0xa7cc('0x2f')](_['pick'](_0xc4549d[_0xa7cc('0x2d')],_0x4d3a80[_0xa7cc('0x2f')]),_0x29641f);if(_0xc4549d[_0xa7cc('0x2d')][_0xa7cc('0x38')]){_0x2942b5['where']=_[_0xa7cc('0x39')](_0x2942b5[_0xa7cc('0x37')],{'$or':_[_0xa7cc('0x28')](_0x29641f,function(_0x2cd2b0){if(_0x2cd2b0[_0xa7cc('0x2b')]!=='VIRTUAL'){var _0xd7643c={};_0xd7643c[_0x2cd2b0[_0xa7cc('0x25')]]={'$like':'%'+_0xc4549d[_0xa7cc('0x2d')]['filter']+'%'};return _0xd7643c;}})});}_0x2942b5=_[_0xa7cc('0x39')]({},_0x2942b5,_0xc4549d[_0xa7cc('0x3a')]);var _0x2c1cb6={'where':_0x2942b5[_0xa7cc('0x37')]};return db[_0xa7cc('0x3b')][_0xa7cc('0x1c')](_0x2c1cb6)['then'](function(_0x3953f1){_0x456aaf[_0xa7cc('0x1c')]=_0x3953f1;if(_0xc4549d[_0xa7cc('0x2d')]['includeAll']){_0x2942b5[_0xa7cc('0x3c')]=[{'all':!![]}];}return db['ZohoConfiguration'][_0xa7cc('0x3d')](_0x2942b5);})[_0xa7cc('0x22')](function(_0x1441cc){_0x456aaf[_0xa7cc('0x3e')]=_0x1441cc;return _0x456aaf;})[_0xa7cc('0x22')](respondWithFilteredResult(_0x1e65b2,_0x2942b5))['catch'](handleError(_0x1e65b2,null));};exports['show']=function(_0x307a9f,_0xdbec89){var _0x134817={'raw':![],'where':{'id':_0x307a9f['params']['id']}},_0x23a25b={};_0x23a25b[_0xa7cc('0x2c')]=_[_0xa7cc('0x2e')](db[_0xa7cc('0x3b')]['rawAttributes']);_0x23a25b[_0xa7cc('0x2d')]=_[_0xa7cc('0x2e')](_0x307a9f[_0xa7cc('0x2d')]);_0x23a25b[_0xa7cc('0x2f')]=_[_0xa7cc('0x30')](_0x23a25b[_0xa7cc('0x2c')],_0x23a25b['query']);_0x134817[_0xa7cc('0x32')]=_[_0xa7cc('0x30')](_0x23a25b[_0xa7cc('0x2c')],qs[_0xa7cc('0x31')](_0x307a9f[_0xa7cc('0x2d')][_0xa7cc('0x31')]));_0x134817[_0xa7cc('0x32')]=_0x134817[_0xa7cc('0x32')][_0xa7cc('0x33')]?_0x134817[_0xa7cc('0x32')]:_0x23a25b['model'];if(_0x307a9f[_0xa7cc('0x2d')][_0xa7cc('0x3f')]){_0x134817[_0xa7cc('0x3c')]=[{'all':!![]}];}_0x134817=_['merge']({},_0x134817,_0x307a9f[_0xa7cc('0x3a')]);return db[_0xa7cc('0x3b')]['find'](_0x134817)[_0xa7cc('0x22')](handleEntityNotFound(_0xdbec89,null))['then'](respondWithResult(_0xdbec89,null))[_0xa7cc('0x40')](handleError(_0xdbec89,null));};exports[_0xa7cc('0x41')]=function(_0x7da8f7,_0x164047){return db[_0xa7cc('0x3b')][_0xa7cc('0x41')](_0x7da8f7[_0xa7cc('0x42')],{})[_0xa7cc('0x22')](respondWithResult(_0x164047,0xc9))['catch'](handleError(_0x164047,null));};exports[_0xa7cc('0x43')]=function(_0x516c5f,_0x19517d){if(_0x516c5f[_0xa7cc('0x42')]['id']){delete _0x516c5f[_0xa7cc('0x42')]['id'];}return db['ZohoConfiguration'][_0xa7cc('0x44')]({'where':{'id':_0x516c5f[_0xa7cc('0x45')]['id']}})[_0xa7cc('0x22')](handleEntityNotFound(_0x19517d,null))['then'](saveUpdates(_0x516c5f[_0xa7cc('0x42')],null))['then'](respondWithResult(_0x19517d,null))['catch'](handleError(_0x19517d,null));};exports[_0xa7cc('0x23')]=function(_0x16a3f2,_0x3b5cbd){return db[_0xa7cc('0x3b')][_0xa7cc('0x44')]({'where':{'id':_0x16a3f2[_0xa7cc('0x45')]['id']}})[_0xa7cc('0x22')](handleEntityNotFound(_0x3b5cbd,null))[_0xa7cc('0x22')](removeEntity(_0x3b5cbd,null))[_0xa7cc('0x40')](handleError(_0x3b5cbd,null));};exports['getFields']=function(_0x157e82,_0x8f69c4,_0x177c64){var _0x3ebe11={};var _0x36f3f1={};var _0x4baeff;var _0x122040;return db[_0xa7cc('0x3b')][_0xa7cc('0x46')]({'where':{'id':_0x157e82[_0xa7cc('0x45')]['id']}})['then'](handleEntityNotFound(_0x8f69c4,null))[_0xa7cc('0x22')](function(_0x86e3d1){if(_0x86e3d1){_0x4baeff=_0x86e3d1;_0x36f3f1['model']=_['keys'](db[_0xa7cc('0x47')][_0xa7cc('0x29')]);_0x36f3f1['query']=_[_0xa7cc('0x2e')](_0x157e82[_0xa7cc('0x2d')]);_0x36f3f1[_0xa7cc('0x2f')]=_[_0xa7cc('0x30')](_0x36f3f1[_0xa7cc('0x2c')],_0x36f3f1[_0xa7cc('0x2d')]);_0x3ebe11['attributes']=_['intersection'](_0x36f3f1['model'],qs[_0xa7cc('0x31')](_0x157e82['query'][_0xa7cc('0x31')]));_0x3ebe11[_0xa7cc('0x32')]=_0x3ebe11[_0xa7cc('0x32')][_0xa7cc('0x33')]?_0x3ebe11[_0xa7cc('0x32')]:_0x36f3f1['model'];_0x3ebe11[_0xa7cc('0x35')]=qs[_0xa7cc('0x36')](_0x157e82[_0xa7cc('0x2d')]['sort']);_0x3ebe11[_0xa7cc('0x37')]=qs[_0xa7cc('0x2f')](_[_0xa7cc('0x48')](_0x157e82['query'],_0x36f3f1['filters']));if(_0x157e82['query']['filter']){_0x3ebe11['where']=_[_0xa7cc('0x39')](_0x3ebe11[_0xa7cc('0x37')],{'$or':_[_0xa7cc('0x28')](_0x3ebe11[_0xa7cc('0x32')],function(_0x39513e){var _0x50ddca={};_0x50ddca[_0x39513e]={'$like':'%'+_0x157e82[_0xa7cc('0x2d')][_0xa7cc('0x38')]+'%'};return _0x50ddca;})});}_0x3ebe11=_[_0xa7cc('0x39')]({},_0x3ebe11,_0x157e82[_0xa7cc('0x3a')]);return _0x4baeff['getFields'](_0x3ebe11);}})[_0xa7cc('0x22')](function(_0x4d4ac5){if(_0x4d4ac5){_0x122040=_0x4d4ac5[_0xa7cc('0x33')];if(!_0x157e82[_0xa7cc('0x2d')][_0xa7cc('0x49')](_0xa7cc('0x34'))){_0x3ebe11[_0xa7cc('0x1b')]=qs[_0xa7cc('0x1b')](_0x157e82['query']['limit']);_0x3ebe11[_0xa7cc('0x19')]=qs[_0xa7cc('0x19')](_0x157e82[_0xa7cc('0x2d')][_0xa7cc('0x19')]);}return _0x4baeff[_0xa7cc('0x4a')](_0x3ebe11);}})[_0xa7cc('0x22')](function(_0x42ad6a){if(_0x42ad6a){return _0x42ad6a?{'count':_0x122040,'rows':_0x42ad6a}:null;}})['then'](respondWithResult(_0x8f69c4,null))[_0xa7cc('0x40')](handleError(_0x8f69c4,null));};exports[_0xa7cc('0x4b')]=function(_0x20b5e1,_0x11f45d,_0x2e6f65){var _0x2fbab3={};var _0x486e6b={};var _0x3d5e98;var _0x454d4b;return db[_0xa7cc('0x3b')][_0xa7cc('0x46')]({'where':{'id':_0x20b5e1[_0xa7cc('0x45')]['id']}})[_0xa7cc('0x22')](handleEntityNotFound(_0x11f45d,null))[_0xa7cc('0x22')](function(_0x1aba4b){if(_0x1aba4b){_0x3d5e98=_0x1aba4b;_0x486e6b['model']=_[_0xa7cc('0x2e')](db['ZohoField'][_0xa7cc('0x29')]);_0x486e6b[_0xa7cc('0x2d')]=_[_0xa7cc('0x2e')](_0x20b5e1['query']);_0x486e6b[_0xa7cc('0x2f')]=_[_0xa7cc('0x30')](_0x486e6b[_0xa7cc('0x2c')],_0x486e6b[_0xa7cc('0x2d')]);_0x2fbab3[_0xa7cc('0x32')]=_['intersection'](_0x486e6b[_0xa7cc('0x2c')],qs[_0xa7cc('0x31')](_0x20b5e1[_0xa7cc('0x2d')][_0xa7cc('0x31')]));_0x2fbab3[_0xa7cc('0x32')]=_0x2fbab3[_0xa7cc('0x32')][_0xa7cc('0x33')]?_0x2fbab3[_0xa7cc('0x32')]:_0x486e6b[_0xa7cc('0x2c')];_0x2fbab3[_0xa7cc('0x35')]=qs[_0xa7cc('0x36')](_0x20b5e1[_0xa7cc('0x2d')][_0xa7cc('0x36')]);_0x2fbab3['where']=qs[_0xa7cc('0x2f')](_[_0xa7cc('0x48')](_0x20b5e1['query'],_0x486e6b[_0xa7cc('0x2f')]));if(_0x20b5e1[_0xa7cc('0x2d')]['filter']){_0x2fbab3[_0xa7cc('0x37')]=_[_0xa7cc('0x39')](_0x2fbab3[_0xa7cc('0x37')],{'$or':_['map'](_0x2fbab3[_0xa7cc('0x32')],function(_0x1d7ef8){var _0x440208={};_0x440208[_0x1d7ef8]={'$like':'%'+_0x20b5e1[_0xa7cc('0x2d')][_0xa7cc('0x38')]+'%'};return _0x440208;})});}_0x2fbab3=_[_0xa7cc('0x39')]({},_0x2fbab3,_0x20b5e1[_0xa7cc('0x3a')]);return _0x3d5e98['getSubjects'](_0x2fbab3);}})[_0xa7cc('0x22')](function(_0x177e59){if(_0x177e59){_0x454d4b=_0x177e59[_0xa7cc('0x33')];if(!_0x20b5e1[_0xa7cc('0x2d')]['hasOwnProperty'](_0xa7cc('0x34'))){_0x2fbab3[_0xa7cc('0x1b')]=qs[_0xa7cc('0x1b')](_0x20b5e1[_0xa7cc('0x2d')][_0xa7cc('0x1b')]);_0x2fbab3[_0xa7cc('0x19')]=qs[_0xa7cc('0x19')](_0x20b5e1[_0xa7cc('0x2d')]['offset']);}return _0x3d5e98[_0xa7cc('0x4b')](_0x2fbab3);}})[_0xa7cc('0x22')](function(_0x2e052f){if(_0x2e052f){return _0x2e052f?{'count':_0x454d4b,'rows':_0x2e052f}:null;}})[_0xa7cc('0x22')](respondWithResult(_0x11f45d,null))[_0xa7cc('0x40')](handleError(_0x11f45d,null));};exports[_0xa7cc('0x4c')]=function(_0x34a488,_0x1fe67f,_0x11c837){var _0x368b65={};var _0x3d3a0e={};var _0x49a5a7;var _0x19cac4;return db[_0xa7cc('0x3b')][_0xa7cc('0x46')]({'where':{'id':_0x34a488[_0xa7cc('0x45')]['id']}})['then'](handleEntityNotFound(_0x1fe67f,null))[_0xa7cc('0x22')](function(_0xda47d4){if(_0xda47d4){_0x49a5a7=_0xda47d4;_0x3d3a0e[_0xa7cc('0x2c')]=_[_0xa7cc('0x2e')](db['ZohoField'][_0xa7cc('0x29')]);_0x3d3a0e['query']=_[_0xa7cc('0x2e')](_0x34a488['query']);_0x3d3a0e[_0xa7cc('0x2f')]=_[_0xa7cc('0x30')](_0x3d3a0e[_0xa7cc('0x2c')],_0x3d3a0e[_0xa7cc('0x2d')]);_0x368b65[_0xa7cc('0x32')]=_[_0xa7cc('0x30')](_0x3d3a0e[_0xa7cc('0x2c')],qs[_0xa7cc('0x31')](_0x34a488[_0xa7cc('0x2d')][_0xa7cc('0x31')]));_0x368b65[_0xa7cc('0x32')]=_0x368b65['attributes'][_0xa7cc('0x33')]?_0x368b65['attributes']:_0x3d3a0e[_0xa7cc('0x2c')];_0x368b65['order']=qs[_0xa7cc('0x36')](_0x34a488[_0xa7cc('0x2d')][_0xa7cc('0x36')]);_0x368b65[_0xa7cc('0x37')]=qs[_0xa7cc('0x2f')](_[_0xa7cc('0x48')](_0x34a488[_0xa7cc('0x2d')],_0x3d3a0e[_0xa7cc('0x2f')]));if(_0x34a488['query']['filter']){_0x368b65[_0xa7cc('0x37')]=_[_0xa7cc('0x39')](_0x368b65[_0xa7cc('0x37')],{'$or':_[_0xa7cc('0x28')](_0x368b65[_0xa7cc('0x32')],function(_0x1e0786){var _0x24946d={};_0x24946d[_0x1e0786]={'$like':'%'+_0x34a488[_0xa7cc('0x2d')][_0xa7cc('0x38')]+'%'};return _0x24946d;})});}_0x368b65=_[_0xa7cc('0x39')]({},_0x368b65,_0x34a488[_0xa7cc('0x3a')]);return _0x49a5a7[_0xa7cc('0x4c')](_0x368b65);}})[_0xa7cc('0x22')](function(_0x4be896){if(_0x4be896){_0x19cac4=_0x4be896[_0xa7cc('0x33')];if(!_0x34a488['query'][_0xa7cc('0x49')](_0xa7cc('0x34'))){_0x368b65[_0xa7cc('0x1b')]=qs[_0xa7cc('0x1b')](_0x34a488['query'][_0xa7cc('0x1b')]);_0x368b65[_0xa7cc('0x19')]=qs[_0xa7cc('0x19')](_0x34a488['query']['offset']);}return _0x49a5a7[_0xa7cc('0x4c')](_0x368b65);}})[_0xa7cc('0x22')](function(_0x47a28b){if(_0x47a28b){return _0x47a28b?{'count':_0x19cac4,'rows':_0x47a28b}:null;}})[_0xa7cc('0x22')](respondWithResult(_0x1fe67f,null))[_0xa7cc('0x40')](handleError(_0x1fe67f,null));};