3848aee8281ce31cde4816c12b0305deb5515330
[motion2.git] / server / api / intFreshsalesConfiguration / intFreshsalesConfiguration.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 _0x64f6=['status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','error','stack','name','send','index','map','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','VIRTUAL','merge','options','FreshsalesConfiguration','include','rows','catch','params','includeAll','find','create','body','update','destroy','getSubjects','findOne','FreshsalesField','hasOwnProperty','getDescriptions','nolimit','getFields','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus'];(function(_0x14102c,_0x1cb214){var _0x13297b=function(_0x1f4372){while(--_0x1f4372){_0x14102c['push'](_0x14102c['shift']());}};_0x13297b(++_0x1cb214);}(_0x64f6,0xe4));var _0x664f=function(_0x2fb175,_0x530dae){_0x2fb175=_0x2fb175-0x0;var _0x25e827=_0x64f6[_0x2fb175];return _0x25e827;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x664f('0x0'));var zipdir=require(_0x664f('0x1'));var jsonpatch=require(_0x664f('0x2'));var rp=require(_0x664f('0x3'));var moment=require(_0x664f('0x4'));var BPromise=require(_0x664f('0x5'));var Mustache=require(_0x664f('0x6'));var util=require(_0x664f('0x7'));var path=require(_0x664f('0x8'));var sox=require(_0x664f('0x9'));var csv=require(_0x664f('0xa'));var ejs=require(_0x664f('0xb'));var fs=require('fs');var fs_extra=require(_0x664f('0xc'));var _=require(_0x664f('0xd'));var squel=require(_0x664f('0xe'));var crypto=require('crypto');var jsforce=require(_0x664f('0xf'));var deskjs=require(_0x664f('0x10'));var toCsv=require(_0x664f('0xa'));var querystring=require(_0x664f('0x11'));var Papa=require(_0x664f('0x12'));var Redis=require(_0x664f('0x13'));var authService=require(_0x664f('0x14'));var qs=require(_0x664f('0x15'));var as=require(_0x664f('0x16'));var hardwareService=require(_0x664f('0x17'));var logger=require(_0x664f('0x18'))('api');var utils=require(_0x664f('0x19'));var config=require(_0x664f('0x1a'));var licenseUtil=require(_0x664f('0x1b'));var db=require(_0x664f('0x1c'))['db'];function respondWithStatusCode(_0x47fd8a,_0x59fad7){_0x59fad7=_0x59fad7||0xcc;return function(_0x5aea0e){if(_0x5aea0e){return _0x47fd8a[_0x664f('0x1d')](_0x59fad7);}return _0x47fd8a[_0x664f('0x1e')](_0x59fad7)[_0x664f('0x1f')]();};}function respondWithResult(_0x47b96e,_0x1e3b45){_0x1e3b45=_0x1e3b45||0xc8;return function(_0x2be14b){if(_0x2be14b){return _0x47b96e[_0x664f('0x1e')](_0x1e3b45)[_0x664f('0x20')](_0x2be14b);}};}function respondWithFilteredResult(_0x258cda,_0x2fb22a){return function(_0x5d8893){if(_0x5d8893){var _0x1f21bb=typeof _0x2fb22a[_0x664f('0x21')]===_0x664f('0x22')&&typeof _0x2fb22a[_0x664f('0x23')]===_0x664f('0x22');var _0x1cb3fc=_0x5d8893[_0x664f('0x24')];var _0x10f4e0=_0x1f21bb?0x0:_0x2fb22a[_0x664f('0x21')];var _0x3a35af=_0x1f21bb?_0x5d8893[_0x664f('0x24')]:_0x2fb22a[_0x664f('0x21')]+_0x2fb22a[_0x664f('0x23')];var _0x2e4f54;if(_0x3a35af>=_0x1cb3fc){_0x3a35af=_0x1cb3fc;_0x2e4f54=0xc8;}else{_0x2e4f54=0xce;}_0x258cda['status'](_0x2e4f54);return _0x258cda[_0x664f('0x25')](_0x664f('0x26'),_0x10f4e0+'-'+_0x3a35af+'/'+_0x1cb3fc)[_0x664f('0x20')](_0x5d8893);}return null;};}function patchUpdates(_0x3786a8){return function(_0x25c84b){try{jsonpatch[_0x664f('0x27')](_0x25c84b,_0x3786a8,!![]);}catch(_0x1958d0){return BPromise[_0x664f('0x28')](_0x1958d0);}return _0x25c84b[_0x664f('0x29')]();};}function saveUpdates(_0x20eb1a,_0x434272){return function(_0x54402d){if(_0x54402d){return _0x54402d['update'](_0x20eb1a)[_0x664f('0x2a')](function(_0x3acf2d){return _0x3acf2d;});}return null;};}function removeEntity(_0x2ebbaf,_0x3fdf78){return function(_0x7f8b3){if(_0x7f8b3){return _0x7f8b3['destroy']()['then'](function(){_0x2ebbaf[_0x664f('0x1e')](0xcc)[_0x664f('0x1f')]();});}};}function handleEntityNotFound(_0x2389d8,_0x27dad5){return function(_0x59e0eb){if(!_0x59e0eb){_0x2389d8['sendStatus'](0x194);}return _0x59e0eb;};}function handleError(_0x1f2590,_0x17925f){_0x17925f=_0x17925f||0x1f4;return function(_0x55f606){logger[_0x664f('0x2b')](_0x55f606[_0x664f('0x2c')]);if(_0x55f606[_0x664f('0x2d')]){delete _0x55f606[_0x664f('0x2d')];}_0x1f2590[_0x664f('0x1e')](_0x17925f)[_0x664f('0x2e')](_0x55f606);};}exports[_0x664f('0x2f')]=function(_0x3c0c71,_0x289ee3){var _0x6c4cb0={},_0x5ae529={},_0x25a315={'count':0x0,'rows':[]};var _0x1da579=_[_0x664f('0x30')](db['FreshsalesConfiguration'][_0x664f('0x31')],function(_0x1ae1d1){return{'name':_0x1ae1d1['fieldName'],'type':_0x1ae1d1[_0x664f('0x32')][_0x664f('0x33')]};});_0x5ae529[_0x664f('0x34')]=_['map'](_0x1da579,_0x664f('0x2d'));_0x5ae529[_0x664f('0x35')]=_[_0x664f('0x36')](_0x3c0c71['query']);_0x5ae529[_0x664f('0x37')]=_[_0x664f('0x38')](_0x5ae529['model'],_0x5ae529[_0x664f('0x35')]);_0x6c4cb0[_0x664f('0x39')]=_[_0x664f('0x38')](_0x5ae529[_0x664f('0x34')],qs[_0x664f('0x3a')](_0x3c0c71[_0x664f('0x35')][_0x664f('0x3a')]));_0x6c4cb0[_0x664f('0x39')]=_0x6c4cb0[_0x664f('0x39')][_0x664f('0x3b')]?_0x6c4cb0[_0x664f('0x39')]:_0x5ae529[_0x664f('0x34')];if(!_0x3c0c71['query']['hasOwnProperty']('nolimit')){_0x6c4cb0[_0x664f('0x23')]=qs['limit'](_0x3c0c71[_0x664f('0x35')][_0x664f('0x23')]);_0x6c4cb0[_0x664f('0x21')]=qs[_0x664f('0x21')](_0x3c0c71[_0x664f('0x35')]['offset']);}_0x6c4cb0[_0x664f('0x3c')]=qs['sort'](_0x3c0c71[_0x664f('0x35')][_0x664f('0x3d')]);_0x6c4cb0[_0x664f('0x3e')]=qs[_0x664f('0x37')](_[_0x664f('0x3f')](_0x3c0c71[_0x664f('0x35')],_0x5ae529[_0x664f('0x37')]),_0x1da579);if(_0x3c0c71[_0x664f('0x35')][_0x664f('0x40')]){_0x6c4cb0['where']=_['merge'](_0x6c4cb0['where'],{'$or':_['map'](_0x1da579,function(_0x25c314){if(_0x25c314[_0x664f('0x32')]!==_0x664f('0x41')){var _0xc797ab={};_0xc797ab[_0x25c314['name']]={'$like':'%'+_0x3c0c71[_0x664f('0x35')][_0x664f('0x40')]+'%'};return _0xc797ab;}})});}_0x6c4cb0=_[_0x664f('0x42')]({},_0x6c4cb0,_0x3c0c71[_0x664f('0x43')]);var _0x3d8ec3={'where':_0x6c4cb0[_0x664f('0x3e')]};return db[_0x664f('0x44')][_0x664f('0x24')](_0x3d8ec3)[_0x664f('0x2a')](function(_0x6c1762){_0x25a315[_0x664f('0x24')]=_0x6c1762;if(_0x3c0c71[_0x664f('0x35')]['includeAll']){_0x6c4cb0[_0x664f('0x45')]=[{'all':!![]}];}return db[_0x664f('0x44')]['findAll'](_0x6c4cb0);})['then'](function(_0x256d00){_0x25a315[_0x664f('0x46')]=_0x256d00;return _0x25a315;})[_0x664f('0x2a')](respondWithFilteredResult(_0x289ee3,_0x6c4cb0))[_0x664f('0x47')](handleError(_0x289ee3,null));};exports['show']=function(_0x1f0990,_0x12d132){var _0x684512={'raw':![],'where':{'id':_0x1f0990[_0x664f('0x48')]['id']}},_0x40869b={};_0x40869b['model']=_[_0x664f('0x36')](db[_0x664f('0x44')][_0x664f('0x31')]);_0x40869b[_0x664f('0x35')]=_[_0x664f('0x36')](_0x1f0990[_0x664f('0x35')]);_0x40869b['filters']=_['intersection'](_0x40869b[_0x664f('0x34')],_0x40869b[_0x664f('0x35')]);_0x684512[_0x664f('0x39')]=_[_0x664f('0x38')](_0x40869b[_0x664f('0x34')],qs[_0x664f('0x3a')](_0x1f0990[_0x664f('0x35')][_0x664f('0x3a')]));_0x684512[_0x664f('0x39')]=_0x684512[_0x664f('0x39')][_0x664f('0x3b')]?_0x684512['attributes']:_0x40869b['model'];if(_0x1f0990[_0x664f('0x35')][_0x664f('0x49')]){_0x684512['include']=[{'all':!![]}];}_0x684512=_[_0x664f('0x42')]({},_0x684512,_0x1f0990[_0x664f('0x43')]);return db['FreshsalesConfiguration'][_0x664f('0x4a')](_0x684512)[_0x664f('0x2a')](handleEntityNotFound(_0x12d132,null))[_0x664f('0x2a')](respondWithResult(_0x12d132,null))[_0x664f('0x47')](handleError(_0x12d132,null));};exports[_0x664f('0x4b')]=function(_0x455711,_0x39f8a0){return db[_0x664f('0x44')][_0x664f('0x4b')](_0x455711[_0x664f('0x4c')],{})['then'](respondWithResult(_0x39f8a0,0xc9))[_0x664f('0x47')](handleError(_0x39f8a0,null));};exports[_0x664f('0x4d')]=function(_0x39b283,_0x53bda4){if(_0x39b283[_0x664f('0x4c')]['id']){delete _0x39b283['body']['id'];}return db[_0x664f('0x44')][_0x664f('0x4a')]({'where':{'id':_0x39b283['params']['id']}})[_0x664f('0x2a')](handleEntityNotFound(_0x53bda4,null))[_0x664f('0x2a')](saveUpdates(_0x39b283[_0x664f('0x4c')],null))['then'](respondWithResult(_0x53bda4,null))['catch'](handleError(_0x53bda4,null));};exports[_0x664f('0x4e')]=function(_0x2a85f7,_0x3bddba){return db[_0x664f('0x44')][_0x664f('0x4a')]({'where':{'id':_0x2a85f7[_0x664f('0x48')]['id']}})[_0x664f('0x2a')](handleEntityNotFound(_0x3bddba,null))[_0x664f('0x2a')](removeEntity(_0x3bddba,null))[_0x664f('0x47')](handleError(_0x3bddba,null));};exports[_0x664f('0x4f')]=function(_0x3b1980,_0x45a12c,_0x417d36){var _0x3c600c={};var _0x285035={};var _0x4de75c;var _0x2a32e4;return db[_0x664f('0x44')][_0x664f('0x50')]({'where':{'id':_0x3b1980[_0x664f('0x48')]['id']}})[_0x664f('0x2a')](handleEntityNotFound(_0x45a12c,null))[_0x664f('0x2a')](function(_0x22a35a){if(_0x22a35a){_0x4de75c=_0x22a35a;_0x285035['model']=_[_0x664f('0x36')](db[_0x664f('0x51')]['rawAttributes']);_0x285035[_0x664f('0x35')]=_['keys'](_0x3b1980[_0x664f('0x35')]);_0x285035[_0x664f('0x37')]=_[_0x664f('0x38')](_0x285035[_0x664f('0x34')],_0x285035[_0x664f('0x35')]);_0x3c600c[_0x664f('0x39')]=_[_0x664f('0x38')](_0x285035[_0x664f('0x34')],qs[_0x664f('0x3a')](_0x3b1980[_0x664f('0x35')][_0x664f('0x3a')]));_0x3c600c[_0x664f('0x39')]=_0x3c600c[_0x664f('0x39')]['length']?_0x3c600c[_0x664f('0x39')]:_0x285035[_0x664f('0x34')];_0x3c600c['order']=qs[_0x664f('0x3d')](_0x3b1980[_0x664f('0x35')]['sort']);_0x3c600c[_0x664f('0x3e')]=qs[_0x664f('0x37')](_[_0x664f('0x3f')](_0x3b1980[_0x664f('0x35')],_0x285035['filters']));if(_0x3b1980['query'][_0x664f('0x40')]){_0x3c600c[_0x664f('0x3e')]=_[_0x664f('0x42')](_0x3c600c[_0x664f('0x3e')],{'$or':_[_0x664f('0x30')](_0x3c600c['attributes'],function(_0x49072a){var _0x2215c8={};_0x2215c8[_0x49072a]={'$like':'%'+_0x3b1980[_0x664f('0x35')][_0x664f('0x40')]+'%'};return _0x2215c8;})});}_0x3c600c=_['merge']({},_0x3c600c,_0x3b1980[_0x664f('0x43')]);return _0x4de75c[_0x664f('0x4f')](_0x3c600c);}})['then'](function(_0x55b969){if(_0x55b969){_0x2a32e4=_0x55b969['length'];if(!_0x3b1980[_0x664f('0x35')][_0x664f('0x52')]('nolimit')){_0x3c600c[_0x664f('0x23')]=qs['limit'](_0x3b1980['query'][_0x664f('0x23')]);_0x3c600c[_0x664f('0x21')]=qs[_0x664f('0x21')](_0x3b1980[_0x664f('0x35')][_0x664f('0x21')]);}return _0x4de75c[_0x664f('0x4f')](_0x3c600c);}})[_0x664f('0x2a')](function(_0x51b956){if(_0x51b956){return _0x51b956?{'count':_0x2a32e4,'rows':_0x51b956}:null;}})[_0x664f('0x2a')](respondWithResult(_0x45a12c,null))[_0x664f('0x47')](handleError(_0x45a12c,null));};exports[_0x664f('0x53')]=function(_0xb6949a,_0x445dca,_0x2479a9){var _0x2712fa={};var _0xaca6d4={};var _0x4e0982;var _0x2817ca;return db[_0x664f('0x44')][_0x664f('0x50')]({'where':{'id':_0xb6949a[_0x664f('0x48')]['id']}})[_0x664f('0x2a')](handleEntityNotFound(_0x445dca,null))[_0x664f('0x2a')](function(_0x5b09f6){if(_0x5b09f6){_0x4e0982=_0x5b09f6;_0xaca6d4['model']=_[_0x664f('0x36')](db['FreshsalesField'][_0x664f('0x31')]);_0xaca6d4['query']=_[_0x664f('0x36')](_0xb6949a[_0x664f('0x35')]);_0xaca6d4[_0x664f('0x37')]=_['intersection'](_0xaca6d4[_0x664f('0x34')],_0xaca6d4['query']);_0x2712fa['attributes']=_[_0x664f('0x38')](_0xaca6d4['model'],qs[_0x664f('0x3a')](_0xb6949a[_0x664f('0x35')][_0x664f('0x3a')]));_0x2712fa['attributes']=_0x2712fa[_0x664f('0x39')][_0x664f('0x3b')]?_0x2712fa[_0x664f('0x39')]:_0xaca6d4[_0x664f('0x34')];_0x2712fa['order']=qs[_0x664f('0x3d')](_0xb6949a['query'][_0x664f('0x3d')]);_0x2712fa[_0x664f('0x3e')]=qs[_0x664f('0x37')](_[_0x664f('0x3f')](_0xb6949a[_0x664f('0x35')],_0xaca6d4[_0x664f('0x37')]));if(_0xb6949a[_0x664f('0x35')][_0x664f('0x40')]){_0x2712fa[_0x664f('0x3e')]=_['merge'](_0x2712fa[_0x664f('0x3e')],{'$or':_['map'](_0x2712fa[_0x664f('0x39')],function(_0x6914a){var _0x14a98c={};_0x14a98c[_0x6914a]={'$like':'%'+_0xb6949a['query'][_0x664f('0x40')]+'%'};return _0x14a98c;})});}_0x2712fa=_['merge']({},_0x2712fa,_0xb6949a[_0x664f('0x43')]);return _0x4e0982[_0x664f('0x53')](_0x2712fa);}})[_0x664f('0x2a')](function(_0x4a4b32){if(_0x4a4b32){_0x2817ca=_0x4a4b32['length'];if(!_0xb6949a[_0x664f('0x35')][_0x664f('0x52')](_0x664f('0x54'))){_0x2712fa[_0x664f('0x23')]=qs[_0x664f('0x23')](_0xb6949a[_0x664f('0x35')]['limit']);_0x2712fa['offset']=qs[_0x664f('0x21')](_0xb6949a[_0x664f('0x35')][_0x664f('0x21')]);}return _0x4e0982['getDescriptions'](_0x2712fa);}})[_0x664f('0x2a')](function(_0x56263a){if(_0x56263a){return _0x56263a?{'count':_0x2817ca,'rows':_0x56263a}:null;}})[_0x664f('0x2a')](respondWithResult(_0x445dca,null))[_0x664f('0x47')](handleError(_0x445dca,null));};exports[_0x664f('0x55')]=function(_0x23e333,_0x33d382,_0x124fd6){var _0x5b78f9={};var _0x37cfd4={};var _0x150f33;var _0x4af1ea;return db[_0x664f('0x44')][_0x664f('0x50')]({'where':{'id':_0x23e333['params']['id']}})[_0x664f('0x2a')](handleEntityNotFound(_0x33d382,null))['then'](function(_0x1b7eae){if(_0x1b7eae){_0x150f33=_0x1b7eae;_0x37cfd4[_0x664f('0x34')]=_['keys'](db[_0x664f('0x51')][_0x664f('0x31')]);_0x37cfd4['query']=_[_0x664f('0x36')](_0x23e333[_0x664f('0x35')]);_0x37cfd4[_0x664f('0x37')]=_[_0x664f('0x38')](_0x37cfd4[_0x664f('0x34')],_0x37cfd4[_0x664f('0x35')]);_0x5b78f9[_0x664f('0x39')]=_[_0x664f('0x38')](_0x37cfd4[_0x664f('0x34')],qs['fields'](_0x23e333['query'][_0x664f('0x3a')]));_0x5b78f9[_0x664f('0x39')]=_0x5b78f9[_0x664f('0x39')][_0x664f('0x3b')]?_0x5b78f9[_0x664f('0x39')]:_0x37cfd4['model'];_0x5b78f9[_0x664f('0x3c')]=qs[_0x664f('0x3d')](_0x23e333[_0x664f('0x35')][_0x664f('0x3d')]);_0x5b78f9[_0x664f('0x3e')]=qs[_0x664f('0x37')](_['pick'](_0x23e333[_0x664f('0x35')],_0x37cfd4[_0x664f('0x37')]));if(_0x23e333[_0x664f('0x35')][_0x664f('0x40')]){_0x5b78f9[_0x664f('0x3e')]=_['merge'](_0x5b78f9[_0x664f('0x3e')],{'$or':_[_0x664f('0x30')](_0x5b78f9[_0x664f('0x39')],function(_0x4cf42b){var _0x52132f={};_0x52132f[_0x4cf42b]={'$like':'%'+_0x23e333[_0x664f('0x35')][_0x664f('0x40')]+'%'};return _0x52132f;})});}_0x5b78f9=_[_0x664f('0x42')]({},_0x5b78f9,_0x23e333[_0x664f('0x43')]);return _0x150f33[_0x664f('0x55')](_0x5b78f9);}})['then'](function(_0x3023b1){if(_0x3023b1){_0x4af1ea=_0x3023b1[_0x664f('0x3b')];if(!_0x23e333[_0x664f('0x35')][_0x664f('0x52')](_0x664f('0x54'))){_0x5b78f9['limit']=qs[_0x664f('0x23')](_0x23e333[_0x664f('0x35')][_0x664f('0x23')]);_0x5b78f9[_0x664f('0x21')]=qs[_0x664f('0x21')](_0x23e333[_0x664f('0x35')][_0x664f('0x21')]);}return _0x150f33[_0x664f('0x55')](_0x5b78f9);}})[_0x664f('0x2a')](function(_0x1a8195){if(_0x1a8195){return _0x1a8195?{'count':_0x4af1ea,'rows':_0x1a8195}:null;}})['then'](respondWithResult(_0x33d382,null))[_0x664f('0x47')](handleError(_0x33d382,null));};