Built motion from commit 3c2ce842.|2.6.31
[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 _0xb454=['../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','error','name','send','index','map','ZohoConfiguration','fieldName','key','model','query','filters','intersection','attributes','fields','length','sort','where','pick','type','filter','merge','show','params','keys','includeAll','include','find','catch','create','body','update','getFields','findOne','ZohoField','rawAttributes','order','options','hasOwnProperty','nolimit','getSubjects','getDescriptions','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils'];(function(_0x273e0d,_0x57ced8){var _0x251355=function(_0x201566){while(--_0x201566){_0x273e0d['push'](_0x273e0d['shift']());}};_0x251355(++_0x57ced8);}(_0xb454,0x8b));var _0x4b45=function(_0x999b85,_0x1edc2b){_0x999b85=_0x999b85-0x0;var _0x1d7124=_0xb454[_0x999b85];return _0x1d7124;};'use strict';var emlformat=require(_0x4b45('0x0'));var rimraf=require(_0x4b45('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4b45('0x2'));var rp=require(_0x4b45('0x3'));var moment=require(_0x4b45('0x4'));var BPromise=require(_0x4b45('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x4b45('0x6'));var sox=require(_0x4b45('0x7'));var csv=require(_0x4b45('0x8'));var ejs=require(_0x4b45('0x9'));var fs=require('fs');var fs_extra=require(_0x4b45('0xa'));var _=require('lodash');var squel=require(_0x4b45('0xb'));var crypto=require(_0x4b45('0xc'));var jsforce=require(_0x4b45('0xd'));var deskjs=require(_0x4b45('0xe'));var toCsv=require(_0x4b45('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x4b45('0xf'));var authService=require(_0x4b45('0x10'));var qs=require(_0x4b45('0x11'));var as=require(_0x4b45('0x12'));var hardwareService=require(_0x4b45('0x13'));var logger=require(_0x4b45('0x14'))(_0x4b45('0x15'));var utils=require(_0x4b45('0x16'));var config=require(_0x4b45('0x17'));var licenseUtil=require(_0x4b45('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x47503f,_0x38d5a7){_0x38d5a7=_0x38d5a7||0xcc;return function(_0x307411){if(_0x307411){return _0x47503f[_0x4b45('0x19')](_0x38d5a7);}return _0x47503f[_0x4b45('0x1a')](_0x38d5a7)[_0x4b45('0x1b')]();};}function respondWithResult(_0x5a3f44,_0x3530a8){_0x3530a8=_0x3530a8||0xc8;return function(_0x18cbce){if(_0x18cbce){return _0x5a3f44[_0x4b45('0x1a')](_0x3530a8)[_0x4b45('0x1c')](_0x18cbce);}};}function respondWithFilteredResult(_0x4c065a,_0x58af5b){return function(_0x38a2f0){if(_0x38a2f0){var _0x28853a=typeof _0x58af5b[_0x4b45('0x1d')]===_0x4b45('0x1e')&&typeof _0x58af5b[_0x4b45('0x1f')]===_0x4b45('0x1e');var _0x3d5cb9=_0x38a2f0[_0x4b45('0x20')];var _0x57b727=_0x28853a?0x0:_0x58af5b['offset'];var _0x10f550=_0x28853a?_0x38a2f0[_0x4b45('0x20')]:_0x58af5b[_0x4b45('0x1d')]+_0x58af5b[_0x4b45('0x1f')];var _0x160b24;if(_0x10f550>=_0x3d5cb9){_0x10f550=_0x3d5cb9;_0x160b24=0xc8;}else{_0x160b24=0xce;}_0x4c065a[_0x4b45('0x1a')](_0x160b24);return _0x4c065a[_0x4b45('0x21')](_0x4b45('0x22'),_0x57b727+'-'+_0x10f550+'/'+_0x3d5cb9)[_0x4b45('0x1c')](_0x38a2f0);}return null;};}function patchUpdates(_0x2f9a8d){return function(_0x553ca1){try{jsonpatch[_0x4b45('0x23')](_0x553ca1,_0x2f9a8d,!![]);}catch(_0x1e6e86){return BPromise[_0x4b45('0x24')](_0x1e6e86);}return _0x553ca1[_0x4b45('0x25')]();};}function saveUpdates(_0x2dd9ea,_0xa14dc0){return function(_0x1468da){if(_0x1468da){return _0x1468da['update'](_0x2dd9ea)[_0x4b45('0x26')](function(_0x277208){return _0x277208;});}return null;};}function removeEntity(_0x3470e4,_0x1bfcd1){return function(_0x4f81f6){if(_0x4f81f6){return _0x4f81f6[_0x4b45('0x27')]()[_0x4b45('0x26')](function(){_0x3470e4[_0x4b45('0x1a')](0xcc)[_0x4b45('0x1b')]();});}};}function handleEntityNotFound(_0x25acb2,_0x43940b){return function(_0x3ace2f){if(!_0x3ace2f){_0x25acb2[_0x4b45('0x19')](0x194);}return _0x3ace2f;};}function handleError(_0x59edda,_0x2cfda4){_0x2cfda4=_0x2cfda4||0x1f4;return function(_0x1fe8e9){logger[_0x4b45('0x28')](_0x1fe8e9['stack']);if(_0x1fe8e9[_0x4b45('0x29')]){delete _0x1fe8e9[_0x4b45('0x29')];}_0x59edda[_0x4b45('0x1a')](_0x2cfda4)[_0x4b45('0x2a')](_0x1fe8e9);};}exports[_0x4b45('0x2b')]=function(_0x24aed4,_0xc893ba){var _0x1e0fec={},_0x483d61={},_0x3969e6={'count':0x0,'rows':[]};var _0x19a759=_[_0x4b45('0x2c')](db[_0x4b45('0x2d')]['rawAttributes'],function(_0x4d26d4){return{'name':_0x4d26d4[_0x4b45('0x2e')],'type':_0x4d26d4['type'][_0x4b45('0x2f')]};});_0x483d61[_0x4b45('0x30')]=_[_0x4b45('0x2c')](_0x19a759,_0x4b45('0x29'));_0x483d61[_0x4b45('0x31')]=_['keys'](_0x24aed4[_0x4b45('0x31')]);_0x483d61[_0x4b45('0x32')]=_[_0x4b45('0x33')](_0x483d61[_0x4b45('0x30')],_0x483d61['query']);_0x1e0fec[_0x4b45('0x34')]=_[_0x4b45('0x33')](_0x483d61['model'],qs[_0x4b45('0x35')](_0x24aed4[_0x4b45('0x31')]['fields']));_0x1e0fec[_0x4b45('0x34')]=_0x1e0fec['attributes'][_0x4b45('0x36')]?_0x1e0fec['attributes']:_0x483d61['model'];if(!_0x24aed4['query']['hasOwnProperty']('nolimit')){_0x1e0fec['limit']=qs['limit'](_0x24aed4[_0x4b45('0x31')][_0x4b45('0x1f')]);_0x1e0fec[_0x4b45('0x1d')]=qs[_0x4b45('0x1d')](_0x24aed4['query'][_0x4b45('0x1d')]);}_0x1e0fec['order']=qs[_0x4b45('0x37')](_0x24aed4['query']['sort']);_0x1e0fec[_0x4b45('0x38')]=qs[_0x4b45('0x32')](_[_0x4b45('0x39')](_0x24aed4[_0x4b45('0x31')],_0x483d61[_0x4b45('0x32')]),_0x19a759);if(_0x24aed4['query']['filter']){_0x1e0fec[_0x4b45('0x38')]=_['merge'](_0x1e0fec[_0x4b45('0x38')],{'$or':_[_0x4b45('0x2c')](_0x19a759,function(_0x3fcd27){if(_0x3fcd27[_0x4b45('0x3a')]!=='VIRTUAL'){var _0x285506={};_0x285506[_0x3fcd27[_0x4b45('0x29')]]={'$like':'%'+_0x24aed4['query'][_0x4b45('0x3b')]+'%'};return _0x285506;}})});}_0x1e0fec=_[_0x4b45('0x3c')]({},_0x1e0fec,_0x24aed4['options']);var _0x20d340={'where':_0x1e0fec[_0x4b45('0x38')]};return db[_0x4b45('0x2d')]['count'](_0x20d340)['then'](function(_0x3bf803){_0x3969e6[_0x4b45('0x20')]=_0x3bf803;if(_0x24aed4[_0x4b45('0x31')]['includeAll']){_0x1e0fec['include']=[{'all':!![]}];}return db[_0x4b45('0x2d')]['findAll'](_0x1e0fec);})[_0x4b45('0x26')](function(_0x42f00c){_0x3969e6['rows']=_0x42f00c;return _0x3969e6;})[_0x4b45('0x26')](respondWithFilteredResult(_0xc893ba,_0x1e0fec))['catch'](handleError(_0xc893ba,null));};exports[_0x4b45('0x3d')]=function(_0x29a06d,_0x56a863){var _0x20c911={'raw':![],'where':{'id':_0x29a06d[_0x4b45('0x3e')]['id']}},_0x4d2dc7={};_0x4d2dc7['model']=_[_0x4b45('0x3f')](db[_0x4b45('0x2d')]['rawAttributes']);_0x4d2dc7['query']=_['keys'](_0x29a06d[_0x4b45('0x31')]);_0x4d2dc7[_0x4b45('0x32')]=_[_0x4b45('0x33')](_0x4d2dc7[_0x4b45('0x30')],_0x4d2dc7['query']);_0x20c911[_0x4b45('0x34')]=_[_0x4b45('0x33')](_0x4d2dc7['model'],qs[_0x4b45('0x35')](_0x29a06d[_0x4b45('0x31')][_0x4b45('0x35')]));_0x20c911[_0x4b45('0x34')]=_0x20c911[_0x4b45('0x34')]['length']?_0x20c911[_0x4b45('0x34')]:_0x4d2dc7[_0x4b45('0x30')];if(_0x29a06d[_0x4b45('0x31')][_0x4b45('0x40')]){_0x20c911[_0x4b45('0x41')]=[{'all':!![]}];}_0x20c911=_[_0x4b45('0x3c')]({},_0x20c911,_0x29a06d['options']);return db[_0x4b45('0x2d')][_0x4b45('0x42')](_0x20c911)['then'](handleEntityNotFound(_0x56a863,null))[_0x4b45('0x26')](respondWithResult(_0x56a863,null))[_0x4b45('0x43')](handleError(_0x56a863,null));};exports[_0x4b45('0x44')]=function(_0x105cd1,_0x3359f5){return db[_0x4b45('0x2d')][_0x4b45('0x44')](_0x105cd1[_0x4b45('0x45')],{})[_0x4b45('0x26')](respondWithResult(_0x3359f5,0xc9))[_0x4b45('0x43')](handleError(_0x3359f5,null));};exports[_0x4b45('0x46')]=function(_0x2624bd,_0x23dadf){if(_0x2624bd[_0x4b45('0x45')]['id']){delete _0x2624bd[_0x4b45('0x45')]['id'];}return db[_0x4b45('0x2d')][_0x4b45('0x42')]({'where':{'id':_0x2624bd[_0x4b45('0x3e')]['id']}})[_0x4b45('0x26')](handleEntityNotFound(_0x23dadf,null))[_0x4b45('0x26')](saveUpdates(_0x2624bd['body'],null))[_0x4b45('0x26')](respondWithResult(_0x23dadf,null))[_0x4b45('0x43')](handleError(_0x23dadf,null));};exports['destroy']=function(_0x569f5f,_0x2baef4){return db['ZohoConfiguration'][_0x4b45('0x42')]({'where':{'id':_0x569f5f[_0x4b45('0x3e')]['id']}})[_0x4b45('0x26')](handleEntityNotFound(_0x2baef4,null))['then'](removeEntity(_0x2baef4,null))[_0x4b45('0x43')](handleError(_0x2baef4,null));};exports[_0x4b45('0x47')]=function(_0x2bf973,_0x17e13f,_0x12739c){var _0x59492e={};var _0x420dda={};var _0x3299c8;var _0x58559e;return db[_0x4b45('0x2d')][_0x4b45('0x48')]({'where':{'id':_0x2bf973[_0x4b45('0x3e')]['id']}})['then'](handleEntityNotFound(_0x17e13f,null))[_0x4b45('0x26')](function(_0x1c5202){if(_0x1c5202){_0x3299c8=_0x1c5202;_0x420dda['model']=_['keys'](db[_0x4b45('0x49')][_0x4b45('0x4a')]);_0x420dda[_0x4b45('0x31')]=_[_0x4b45('0x3f')](_0x2bf973[_0x4b45('0x31')]);_0x420dda[_0x4b45('0x32')]=_[_0x4b45('0x33')](_0x420dda[_0x4b45('0x30')],_0x420dda[_0x4b45('0x31')]);_0x59492e[_0x4b45('0x34')]=_[_0x4b45('0x33')](_0x420dda['model'],qs[_0x4b45('0x35')](_0x2bf973['query']['fields']));_0x59492e[_0x4b45('0x34')]=_0x59492e['attributes'][_0x4b45('0x36')]?_0x59492e['attributes']:_0x420dda[_0x4b45('0x30')];_0x59492e[_0x4b45('0x4b')]=qs[_0x4b45('0x37')](_0x2bf973[_0x4b45('0x31')]['sort']);_0x59492e[_0x4b45('0x38')]=qs[_0x4b45('0x32')](_[_0x4b45('0x39')](_0x2bf973[_0x4b45('0x31')],_0x420dda[_0x4b45('0x32')]));if(_0x2bf973[_0x4b45('0x31')][_0x4b45('0x3b')]){_0x59492e['where']=_[_0x4b45('0x3c')](_0x59492e['where'],{'$or':_[_0x4b45('0x2c')](_0x59492e[_0x4b45('0x34')],function(_0x3c51f4){var _0x52eebd={};_0x52eebd[_0x3c51f4]={'$like':'%'+_0x2bf973[_0x4b45('0x31')][_0x4b45('0x3b')]+'%'};return _0x52eebd;})});}_0x59492e=_['merge']({},_0x59492e,_0x2bf973[_0x4b45('0x4c')]);return _0x3299c8[_0x4b45('0x47')](_0x59492e);}})[_0x4b45('0x26')](function(_0x44c3c2){if(_0x44c3c2){_0x58559e=_0x44c3c2[_0x4b45('0x36')];if(!_0x2bf973['query'][_0x4b45('0x4d')](_0x4b45('0x4e'))){_0x59492e[_0x4b45('0x1f')]=qs[_0x4b45('0x1f')](_0x2bf973[_0x4b45('0x31')][_0x4b45('0x1f')]);_0x59492e[_0x4b45('0x1d')]=qs['offset'](_0x2bf973['query']['offset']);}return _0x3299c8[_0x4b45('0x47')](_0x59492e);}})[_0x4b45('0x26')](function(_0x1a8d14){if(_0x1a8d14){return _0x1a8d14?{'count':_0x58559e,'rows':_0x1a8d14}:null;}})['then'](respondWithResult(_0x17e13f,null))[_0x4b45('0x43')](handleError(_0x17e13f,null));};exports['getSubjects']=function(_0xcd6969,_0x1d699a,_0x4adea0){var _0x20f719={};var _0x576624={};var _0x3ff9e1;var _0x36b1fe;return db[_0x4b45('0x2d')]['findOne']({'where':{'id':_0xcd6969[_0x4b45('0x3e')]['id']}})[_0x4b45('0x26')](handleEntityNotFound(_0x1d699a,null))['then'](function(_0x236e57){if(_0x236e57){_0x3ff9e1=_0x236e57;_0x576624[_0x4b45('0x30')]=_[_0x4b45('0x3f')](db['ZohoField'][_0x4b45('0x4a')]);_0x576624[_0x4b45('0x31')]=_[_0x4b45('0x3f')](_0xcd6969[_0x4b45('0x31')]);_0x576624[_0x4b45('0x32')]=_['intersection'](_0x576624[_0x4b45('0x30')],_0x576624[_0x4b45('0x31')]);_0x20f719[_0x4b45('0x34')]=_[_0x4b45('0x33')](_0x576624[_0x4b45('0x30')],qs[_0x4b45('0x35')](_0xcd6969[_0x4b45('0x31')][_0x4b45('0x35')]));_0x20f719[_0x4b45('0x34')]=_0x20f719[_0x4b45('0x34')][_0x4b45('0x36')]?_0x20f719[_0x4b45('0x34')]:_0x576624[_0x4b45('0x30')];_0x20f719[_0x4b45('0x4b')]=qs[_0x4b45('0x37')](_0xcd6969[_0x4b45('0x31')][_0x4b45('0x37')]);_0x20f719[_0x4b45('0x38')]=qs[_0x4b45('0x32')](_['pick'](_0xcd6969[_0x4b45('0x31')],_0x576624[_0x4b45('0x32')]));if(_0xcd6969[_0x4b45('0x31')][_0x4b45('0x3b')]){_0x20f719[_0x4b45('0x38')]=_[_0x4b45('0x3c')](_0x20f719[_0x4b45('0x38')],{'$or':_['map'](_0x20f719[_0x4b45('0x34')],function(_0xbc0ac3){var _0x1740f6={};_0x1740f6[_0xbc0ac3]={'$like':'%'+_0xcd6969[_0x4b45('0x31')][_0x4b45('0x3b')]+'%'};return _0x1740f6;})});}_0x20f719=_[_0x4b45('0x3c')]({},_0x20f719,_0xcd6969[_0x4b45('0x4c')]);return _0x3ff9e1[_0x4b45('0x4f')](_0x20f719);}})[_0x4b45('0x26')](function(_0x3a47eb){if(_0x3a47eb){_0x36b1fe=_0x3a47eb['length'];if(!_0xcd6969[_0x4b45('0x31')][_0x4b45('0x4d')]('nolimit')){_0x20f719[_0x4b45('0x1f')]=qs[_0x4b45('0x1f')](_0xcd6969[_0x4b45('0x31')]['limit']);_0x20f719[_0x4b45('0x1d')]=qs['offset'](_0xcd6969[_0x4b45('0x31')][_0x4b45('0x1d')]);}return _0x3ff9e1[_0x4b45('0x4f')](_0x20f719);}})[_0x4b45('0x26')](function(_0x2296d7){if(_0x2296d7){return _0x2296d7?{'count':_0x36b1fe,'rows':_0x2296d7}:null;}})[_0x4b45('0x26')](respondWithResult(_0x1d699a,null))[_0x4b45('0x43')](handleError(_0x1d699a,null));};exports['getDescriptions']=function(_0x20d0d1,_0x50deea,_0x58d4de){var _0x2eeec1={};var _0x35ff06={};var _0x236943;var _0x6ab83;return db[_0x4b45('0x2d')][_0x4b45('0x48')]({'where':{'id':_0x20d0d1[_0x4b45('0x3e')]['id']}})[_0x4b45('0x26')](handleEntityNotFound(_0x50deea,null))[_0x4b45('0x26')](function(_0x48b9b7){if(_0x48b9b7){_0x236943=_0x48b9b7;_0x35ff06[_0x4b45('0x30')]=_[_0x4b45('0x3f')](db['ZohoField']['rawAttributes']);_0x35ff06[_0x4b45('0x31')]=_[_0x4b45('0x3f')](_0x20d0d1[_0x4b45('0x31')]);_0x35ff06[_0x4b45('0x32')]=_[_0x4b45('0x33')](_0x35ff06[_0x4b45('0x30')],_0x35ff06[_0x4b45('0x31')]);_0x2eeec1[_0x4b45('0x34')]=_[_0x4b45('0x33')](_0x35ff06[_0x4b45('0x30')],qs[_0x4b45('0x35')](_0x20d0d1[_0x4b45('0x31')][_0x4b45('0x35')]));_0x2eeec1[_0x4b45('0x34')]=_0x2eeec1['attributes'][_0x4b45('0x36')]?_0x2eeec1[_0x4b45('0x34')]:_0x35ff06[_0x4b45('0x30')];_0x2eeec1[_0x4b45('0x4b')]=qs[_0x4b45('0x37')](_0x20d0d1[_0x4b45('0x31')][_0x4b45('0x37')]);_0x2eeec1['where']=qs[_0x4b45('0x32')](_[_0x4b45('0x39')](_0x20d0d1[_0x4b45('0x31')],_0x35ff06['filters']));if(_0x20d0d1[_0x4b45('0x31')][_0x4b45('0x3b')]){_0x2eeec1[_0x4b45('0x38')]=_[_0x4b45('0x3c')](_0x2eeec1[_0x4b45('0x38')],{'$or':_[_0x4b45('0x2c')](_0x2eeec1[_0x4b45('0x34')],function(_0x5bcbf6){var _0x4dc23d={};_0x4dc23d[_0x5bcbf6]={'$like':'%'+_0x20d0d1[_0x4b45('0x31')][_0x4b45('0x3b')]+'%'};return _0x4dc23d;})});}_0x2eeec1=_[_0x4b45('0x3c')]({},_0x2eeec1,_0x20d0d1['options']);return _0x236943['getDescriptions'](_0x2eeec1);}})[_0x4b45('0x26')](function(_0x1ef1be){if(_0x1ef1be){_0x6ab83=_0x1ef1be[_0x4b45('0x36')];if(!_0x20d0d1[_0x4b45('0x31')][_0x4b45('0x4d')](_0x4b45('0x4e'))){_0x2eeec1[_0x4b45('0x1f')]=qs[_0x4b45('0x1f')](_0x20d0d1[_0x4b45('0x31')][_0x4b45('0x1f')]);_0x2eeec1['offset']=qs['offset'](_0x20d0d1[_0x4b45('0x31')][_0x4b45('0x1d')]);}return _0x236943[_0x4b45('0x50')](_0x2eeec1);}})[_0x4b45('0x26')](function(_0x2183ac){if(_0x2183ac){return _0x2183ac?{'count':_0x6ab83,'rows':_0x2183ac}:null;}})['then'](respondWithResult(_0x50deea,null))[_0x4b45('0x43')](handleError(_0x50deea,null));};