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 _0xf009=['util','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','error','ZohoConfiguration','rawAttributes','fieldName','type','key','map','name','keys','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','include','findAll','rows','show','includeAll','find','create','body','catch','params','getFields','findOne','ZohoField','pick','getSubjects','getDescriptions','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf009,0x136));var _0x9f00=function(_0x239eaf,_0x1968b4){_0x239eaf=_0x239eaf-0x0;var _0x8863f7=_0xf009[_0x239eaf];return _0x8863f7;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9f00('0x0'));var zipdir=require(_0x9f00('0x1'));var jsonpatch=require(_0x9f00('0x2'));var rp=require(_0x9f00('0x3'));var moment=require('moment');var BPromise=require(_0x9f00('0x4'));var Mustache=require(_0x9f00('0x5'));var util=require(_0x9f00('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x9f00('0x7'));var ejs=require(_0x9f00('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9f00('0x9'));var squel=require('squel');var crypto=require(_0x9f00('0xa'));var jsforce=require(_0x9f00('0xb'));var deskjs=require(_0x9f00('0xc'));var toCsv=require(_0x9f00('0x7'));var querystring=require(_0x9f00('0xd'));var Papa=require(_0x9f00('0xe'));var Redis=require(_0x9f00('0xf'));var authService=require(_0x9f00('0x10'));var qs=require(_0x9f00('0x11'));var as=require(_0x9f00('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9f00('0x13'))(_0x9f00('0x14'));var utils=require(_0x9f00('0x15'));var config=require(_0x9f00('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x48758c,_0x3b3212){_0x3b3212=_0x3b3212||0xcc;return function(_0x3f0cf0){if(_0x3f0cf0){return _0x48758c[_0x9f00('0x17')](_0x3b3212);}return _0x48758c['status'](_0x3b3212)[_0x9f00('0x18')]();};}function respondWithResult(_0x2d4639,_0x1d75ed){_0x1d75ed=_0x1d75ed||0xc8;return function(_0x54a869){if(_0x54a869){return _0x2d4639[_0x9f00('0x19')](_0x1d75ed)[_0x9f00('0x1a')](_0x54a869);}};}function respondWithFilteredResult(_0x4e19ec,_0x1a90f8){return function(_0x74ddea){if(_0x74ddea){var _0xdcc093=typeof _0x1a90f8[_0x9f00('0x1b')]===_0x9f00('0x1c')&&typeof _0x1a90f8[_0x9f00('0x1d')]===_0x9f00('0x1c');var _0x4a657f=_0x74ddea[_0x9f00('0x1e')];var _0x530f8e=_0xdcc093?0x0:_0x1a90f8[_0x9f00('0x1b')];var _0x4d468f=_0xdcc093?_0x74ddea[_0x9f00('0x1e')]:_0x1a90f8[_0x9f00('0x1b')]+_0x1a90f8[_0x9f00('0x1d')];var _0x52a5d3;if(_0x4d468f>=_0x4a657f){_0x4d468f=_0x4a657f;_0x52a5d3=0xc8;}else{_0x52a5d3=0xce;}_0x4e19ec[_0x9f00('0x19')](_0x52a5d3);return _0x4e19ec[_0x9f00('0x1f')](_0x9f00('0x20'),_0x530f8e+'-'+_0x4d468f+'/'+_0x4a657f)[_0x9f00('0x1a')](_0x74ddea);}return null;};}function patchUpdates(_0x12d199){return function(_0x385d38){try{jsonpatch['apply'](_0x385d38,_0x12d199,!![]);}catch(_0xabbfb3){return BPromise[_0x9f00('0x21')](_0xabbfb3);}return _0x385d38[_0x9f00('0x22')]();};}function saveUpdates(_0x58af36,_0x47b545){return function(_0x2e39f3){if(_0x2e39f3){return _0x2e39f3[_0x9f00('0x23')](_0x58af36)[_0x9f00('0x24')](function(_0x66b956){return _0x66b956;});}return null;};}function removeEntity(_0x4d8059,_0x2c4bd1){return function(_0x32668e){if(_0x32668e){return _0x32668e[_0x9f00('0x25')]()['then'](function(){_0x4d8059[_0x9f00('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5de97f,_0x5b97fa){return function(_0x2f12bc){if(!_0x2f12bc){_0x5de97f[_0x9f00('0x17')](0x194);}return _0x2f12bc;};}function handleError(_0x23936b,_0x1e9151){_0x1e9151=_0x1e9151||0x1f4;return function(_0x4e5a0b){logger[_0x9f00('0x26')](_0x4e5a0b['stack']);if(_0x4e5a0b['name']){delete _0x4e5a0b['name'];}_0x23936b[_0x9f00('0x19')](_0x1e9151)['send'](_0x4e5a0b);};}exports['index']=function(_0x361c5a,_0x2b4631){var _0x26e2be={},_0x5ef013={},_0x35abbc={'count':0x0,'rows':[]};var _0x2ccce3=_['map'](db[_0x9f00('0x27')][_0x9f00('0x28')],function(_0x49e06f){return{'name':_0x49e06f[_0x9f00('0x29')],'type':_0x49e06f[_0x9f00('0x2a')][_0x9f00('0x2b')]};});_0x5ef013['model']=_[_0x9f00('0x2c')](_0x2ccce3,_0x9f00('0x2d'));_0x5ef013['query']=_[_0x9f00('0x2e')](_0x361c5a[_0x9f00('0x2f')]);_0x5ef013[_0x9f00('0x30')]=_[_0x9f00('0x31')](_0x5ef013[_0x9f00('0x32')],_0x5ef013[_0x9f00('0x2f')]);_0x26e2be['attributes']=_[_0x9f00('0x31')](_0x5ef013[_0x9f00('0x32')],qs['fields'](_0x361c5a[_0x9f00('0x2f')][_0x9f00('0x33')]));_0x26e2be[_0x9f00('0x34')]=_0x26e2be['attributes'][_0x9f00('0x35')]?_0x26e2be[_0x9f00('0x34')]:_0x5ef013[_0x9f00('0x32')];if(!_0x361c5a[_0x9f00('0x2f')][_0x9f00('0x36')](_0x9f00('0x37'))){_0x26e2be[_0x9f00('0x1d')]=qs['limit'](_0x361c5a['query'][_0x9f00('0x1d')]);_0x26e2be[_0x9f00('0x1b')]=qs[_0x9f00('0x1b')](_0x361c5a[_0x9f00('0x2f')][_0x9f00('0x1b')]);}_0x26e2be[_0x9f00('0x38')]=qs[_0x9f00('0x39')](_0x361c5a['query']['sort']);_0x26e2be[_0x9f00('0x3a')]=qs[_0x9f00('0x30')](_['pick'](_0x361c5a[_0x9f00('0x2f')],_0x5ef013[_0x9f00('0x30')]),_0x2ccce3);if(_0x361c5a[_0x9f00('0x2f')][_0x9f00('0x3b')]){_0x26e2be[_0x9f00('0x3a')]=_[_0x9f00('0x3c')](_0x26e2be[_0x9f00('0x3a')],{'$or':_[_0x9f00('0x2c')](_0x2ccce3,function(_0x220584){if(_0x220584['type']!==_0x9f00('0x3d')){var _0x30f169={};_0x30f169[_0x220584[_0x9f00('0x2d')]]={'$like':'%'+_0x361c5a[_0x9f00('0x2f')]['filter']+'%'};return _0x30f169;}})});}_0x26e2be=_['merge']({},_0x26e2be,_0x361c5a[_0x9f00('0x3e')]);var _0x2f1f8d={'where':_0x26e2be[_0x9f00('0x3a')]};return db[_0x9f00('0x27')][_0x9f00('0x1e')](_0x2f1f8d)[_0x9f00('0x24')](function(_0x2ea4a9){_0x35abbc[_0x9f00('0x1e')]=_0x2ea4a9;if(_0x361c5a['query']['includeAll']){_0x26e2be[_0x9f00('0x3f')]=[{'all':!![]}];}return db[_0x9f00('0x27')][_0x9f00('0x40')](_0x26e2be);})['then'](function(_0x4d889d){_0x35abbc[_0x9f00('0x41')]=_0x4d889d;return _0x35abbc;})['then'](respondWithFilteredResult(_0x2b4631,_0x26e2be))['catch'](handleError(_0x2b4631,null));};exports[_0x9f00('0x42')]=function(_0x3b568f,_0x14294a){var _0x261783={'raw':![],'where':{'id':_0x3b568f['params']['id']}},_0xc7168e={};_0xc7168e[_0x9f00('0x32')]=_[_0x9f00('0x2e')](db[_0x9f00('0x27')][_0x9f00('0x28')]);_0xc7168e['query']=_['keys'](_0x3b568f[_0x9f00('0x2f')]);_0xc7168e[_0x9f00('0x30')]=_[_0x9f00('0x31')](_0xc7168e[_0x9f00('0x32')],_0xc7168e[_0x9f00('0x2f')]);_0x261783['attributes']=_[_0x9f00('0x31')](_0xc7168e[_0x9f00('0x32')],qs[_0x9f00('0x33')](_0x3b568f[_0x9f00('0x2f')][_0x9f00('0x33')]));_0x261783['attributes']=_0x261783[_0x9f00('0x34')][_0x9f00('0x35')]?_0x261783[_0x9f00('0x34')]:_0xc7168e[_0x9f00('0x32')];if(_0x3b568f[_0x9f00('0x2f')][_0x9f00('0x43')]){_0x261783[_0x9f00('0x3f')]=[{'all':!![]}];}_0x261783=_['merge']({},_0x261783,_0x3b568f['options']);return db[_0x9f00('0x27')][_0x9f00('0x44')](_0x261783)['then'](handleEntityNotFound(_0x14294a,null))[_0x9f00('0x24')](respondWithResult(_0x14294a,null))['catch'](handleError(_0x14294a,null));};exports[_0x9f00('0x45')]=function(_0x363320,_0x5d5a26){return db[_0x9f00('0x27')][_0x9f00('0x45')](_0x363320[_0x9f00('0x46')],{})[_0x9f00('0x24')](respondWithResult(_0x5d5a26,0xc9))[_0x9f00('0x47')](handleError(_0x5d5a26,null));};exports[_0x9f00('0x23')]=function(_0x3d17e4,_0x10ac9c){if(_0x3d17e4[_0x9f00('0x46')]['id']){delete _0x3d17e4[_0x9f00('0x46')]['id'];}return db[_0x9f00('0x27')][_0x9f00('0x44')]({'where':{'id':_0x3d17e4['params']['id']}})['then'](handleEntityNotFound(_0x10ac9c,null))[_0x9f00('0x24')](saveUpdates(_0x3d17e4[_0x9f00('0x46')],null))[_0x9f00('0x24')](respondWithResult(_0x10ac9c,null))[_0x9f00('0x47')](handleError(_0x10ac9c,null));};exports[_0x9f00('0x25')]=function(_0x12a245,_0x521bb2){return db[_0x9f00('0x27')][_0x9f00('0x44')]({'where':{'id':_0x12a245[_0x9f00('0x48')]['id']}})['then'](handleEntityNotFound(_0x521bb2,null))[_0x9f00('0x24')](removeEntity(_0x521bb2,null))[_0x9f00('0x47')](handleError(_0x521bb2,null));};exports[_0x9f00('0x49')]=function(_0xf3c904,_0x595259,_0x502737){var _0x4294a7={};var _0x20cdef={};var _0x582216;var _0x422522;return db[_0x9f00('0x27')][_0x9f00('0x4a')]({'where':{'id':_0xf3c904[_0x9f00('0x48')]['id']}})[_0x9f00('0x24')](handleEntityNotFound(_0x595259,null))['then'](function(_0x5cd844){if(_0x5cd844){_0x582216=_0x5cd844;_0x20cdef[_0x9f00('0x32')]=_[_0x9f00('0x2e')](db['ZohoField'][_0x9f00('0x28')]);_0x20cdef['query']=_[_0x9f00('0x2e')](_0xf3c904[_0x9f00('0x2f')]);_0x20cdef[_0x9f00('0x30')]=_['intersection'](_0x20cdef[_0x9f00('0x32')],_0x20cdef['query']);_0x4294a7[_0x9f00('0x34')]=_[_0x9f00('0x31')](_0x20cdef[_0x9f00('0x32')],qs[_0x9f00('0x33')](_0xf3c904[_0x9f00('0x2f')][_0x9f00('0x33')]));_0x4294a7['attributes']=_0x4294a7[_0x9f00('0x34')][_0x9f00('0x35')]?_0x4294a7['attributes']:_0x20cdef[_0x9f00('0x32')];_0x4294a7[_0x9f00('0x38')]=qs[_0x9f00('0x39')](_0xf3c904[_0x9f00('0x2f')][_0x9f00('0x39')]);_0x4294a7[_0x9f00('0x3a')]=qs[_0x9f00('0x30')](_['pick'](_0xf3c904[_0x9f00('0x2f')],_0x20cdef[_0x9f00('0x30')]));if(_0xf3c904['query']['filter']){_0x4294a7[_0x9f00('0x3a')]=_[_0x9f00('0x3c')](_0x4294a7['where'],{'$or':_['map'](_0x4294a7[_0x9f00('0x34')],function(_0x40838c){var _0x33ad8a={};_0x33ad8a[_0x40838c]={'$like':'%'+_0xf3c904['query']['filter']+'%'};return _0x33ad8a;})});}_0x4294a7=_[_0x9f00('0x3c')]({},_0x4294a7,_0xf3c904[_0x9f00('0x3e')]);return _0x582216['getFields'](_0x4294a7);}})[_0x9f00('0x24')](function(_0x2bcd59){if(_0x2bcd59){_0x422522=_0x2bcd59[_0x9f00('0x35')];if(!_0xf3c904[_0x9f00('0x2f')]['hasOwnProperty'](_0x9f00('0x37'))){_0x4294a7[_0x9f00('0x1d')]=qs[_0x9f00('0x1d')](_0xf3c904[_0x9f00('0x2f')]['limit']);_0x4294a7[_0x9f00('0x1b')]=qs['offset'](_0xf3c904[_0x9f00('0x2f')][_0x9f00('0x1b')]);}return _0x582216['getFields'](_0x4294a7);}})[_0x9f00('0x24')](function(_0x5f3b2e){if(_0x5f3b2e){return _0x5f3b2e?{'count':_0x422522,'rows':_0x5f3b2e}:null;}})[_0x9f00('0x24')](respondWithResult(_0x595259,null))['catch'](handleError(_0x595259,null));};exports['getSubjects']=function(_0x4684db,_0x39f06a,_0x19dc23){var _0x174e24={};var _0x23c60f={};var _0xb94313;var _0x43dfaa;return db[_0x9f00('0x27')][_0x9f00('0x4a')]({'where':{'id':_0x4684db['params']['id']}})['then'](handleEntityNotFound(_0x39f06a,null))['then'](function(_0x49247c){if(_0x49247c){_0xb94313=_0x49247c;_0x23c60f[_0x9f00('0x32')]=_[_0x9f00('0x2e')](db[_0x9f00('0x4b')][_0x9f00('0x28')]);_0x23c60f[_0x9f00('0x2f')]=_[_0x9f00('0x2e')](_0x4684db[_0x9f00('0x2f')]);_0x23c60f[_0x9f00('0x30')]=_[_0x9f00('0x31')](_0x23c60f['model'],_0x23c60f[_0x9f00('0x2f')]);_0x174e24[_0x9f00('0x34')]=_['intersection'](_0x23c60f['model'],qs[_0x9f00('0x33')](_0x4684db[_0x9f00('0x2f')][_0x9f00('0x33')]));_0x174e24['attributes']=_0x174e24[_0x9f00('0x34')]['length']?_0x174e24[_0x9f00('0x34')]:_0x23c60f[_0x9f00('0x32')];_0x174e24[_0x9f00('0x38')]=qs[_0x9f00('0x39')](_0x4684db['query']['sort']);_0x174e24[_0x9f00('0x3a')]=qs['filters'](_[_0x9f00('0x4c')](_0x4684db[_0x9f00('0x2f')],_0x23c60f[_0x9f00('0x30')]));if(_0x4684db[_0x9f00('0x2f')]['filter']){_0x174e24[_0x9f00('0x3a')]=_[_0x9f00('0x3c')](_0x174e24[_0x9f00('0x3a')],{'$or':_['map'](_0x174e24['attributes'],function(_0x2d9ba5){var _0x55557f={};_0x55557f[_0x2d9ba5]={'$like':'%'+_0x4684db['query'][_0x9f00('0x3b')]+'%'};return _0x55557f;})});}_0x174e24=_[_0x9f00('0x3c')]({},_0x174e24,_0x4684db[_0x9f00('0x3e')]);return _0xb94313[_0x9f00('0x4d')](_0x174e24);}})[_0x9f00('0x24')](function(_0x4fdffd){if(_0x4fdffd){_0x43dfaa=_0x4fdffd[_0x9f00('0x35')];if(!_0x4684db[_0x9f00('0x2f')][_0x9f00('0x36')](_0x9f00('0x37'))){_0x174e24[_0x9f00('0x1d')]=qs['limit'](_0x4684db['query']['limit']);_0x174e24[_0x9f00('0x1b')]=qs[_0x9f00('0x1b')](_0x4684db['query'][_0x9f00('0x1b')]);}return _0xb94313[_0x9f00('0x4d')](_0x174e24);}})[_0x9f00('0x24')](function(_0x40cbca){if(_0x40cbca){return _0x40cbca?{'count':_0x43dfaa,'rows':_0x40cbca}:null;}})[_0x9f00('0x24')](respondWithResult(_0x39f06a,null))[_0x9f00('0x47')](handleError(_0x39f06a,null));};exports[_0x9f00('0x4e')]=function(_0x3c0b62,_0x1e3dce,_0x44f969){var _0x8037fb={};var _0x3dc4d0={};var _0xecb919;var _0x59bc84;return db[_0x9f00('0x27')][_0x9f00('0x4a')]({'where':{'id':_0x3c0b62['params']['id']}})['then'](handleEntityNotFound(_0x1e3dce,null))['then'](function(_0xc40047){if(_0xc40047){_0xecb919=_0xc40047;_0x3dc4d0['model']=_[_0x9f00('0x2e')](db[_0x9f00('0x4b')][_0x9f00('0x28')]);_0x3dc4d0[_0x9f00('0x2f')]=_[_0x9f00('0x2e')](_0x3c0b62['query']);_0x3dc4d0['filters']=_[_0x9f00('0x31')](_0x3dc4d0[_0x9f00('0x32')],_0x3dc4d0['query']);_0x8037fb['attributes']=_[_0x9f00('0x31')](_0x3dc4d0[_0x9f00('0x32')],qs['fields'](_0x3c0b62[_0x9f00('0x2f')][_0x9f00('0x33')]));_0x8037fb[_0x9f00('0x34')]=_0x8037fb[_0x9f00('0x34')][_0x9f00('0x35')]?_0x8037fb['attributes']:_0x3dc4d0[_0x9f00('0x32')];_0x8037fb[_0x9f00('0x38')]=qs[_0x9f00('0x39')](_0x3c0b62['query']['sort']);_0x8037fb['where']=qs['filters'](_[_0x9f00('0x4c')](_0x3c0b62[_0x9f00('0x2f')],_0x3dc4d0[_0x9f00('0x30')]));if(_0x3c0b62[_0x9f00('0x2f')]['filter']){_0x8037fb['where']=_['merge'](_0x8037fb[_0x9f00('0x3a')],{'$or':_[_0x9f00('0x2c')](_0x8037fb[_0x9f00('0x34')],function(_0x2e899a){var _0x5daef2={};_0x5daef2[_0x2e899a]={'$like':'%'+_0x3c0b62[_0x9f00('0x2f')]['filter']+'%'};return _0x5daef2;})});}_0x8037fb=_[_0x9f00('0x3c')]({},_0x8037fb,_0x3c0b62[_0x9f00('0x3e')]);return _0xecb919[_0x9f00('0x4e')](_0x8037fb);}})[_0x9f00('0x24')](function(_0x4acc27){if(_0x4acc27){_0x59bc84=_0x4acc27[_0x9f00('0x35')];if(!_0x3c0b62['query']['hasOwnProperty'](_0x9f00('0x37'))){_0x8037fb[_0x9f00('0x1d')]=qs['limit'](_0x3c0b62[_0x9f00('0x2f')][_0x9f00('0x1d')]);_0x8037fb[_0x9f00('0x1b')]=qs[_0x9f00('0x1b')](_0x3c0b62[_0x9f00('0x2f')][_0x9f00('0x1b')]);}return _0xecb919[_0x9f00('0x4e')](_0x8037fb);}})[_0x9f00('0x24')](function(_0x515d32){if(_0x515d32){return _0x515d32?{'count':_0x59bc84,'rows':_0x515d32}:null;}})['then'](respondWithResult(_0x1e3dce,null))[_0x9f00('0x47')](handleError(_0x1e3dce,null));};