292c65d9c3f8b283a56f8bb674be222f18671c5c
[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 _0xbd88=['error','stack','name','send','index','rawAttributes','fieldName','type','key','model','map','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','options','includeAll','include','FreshsalesConfiguration','findAll','rows','show','params','catch','create','body','find','getSubjects','pick','getDescriptions','findOne','FreshsalesField','getFields','eml-format','zip-dir','request-promise','moment','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy'];(function(_0x3f1068,_0x2d4f61){var _0x54c89c=function(_0x19e3aa){while(--_0x19e3aa){_0x3f1068['push'](_0x3f1068['shift']());}};_0x54c89c(++_0x2d4f61);}(_0xbd88,0x178));var _0x8bd8=function(_0x4a53d,_0x58a95e){_0x4a53d=_0x4a53d-0x0;var _0x27410e=_0xbd88[_0x4a53d];return _0x27410e;};'use strict';var emlformat=require(_0x8bd8('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8bd8('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8bd8('0x2'));var moment=require(_0x8bd8('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x8bd8('0x4'));var path=require(_0x8bd8('0x5'));var sox=require(_0x8bd8('0x6'));var csv=require(_0x8bd8('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8bd8('0x8'));var _=require(_0x8bd8('0x9'));var squel=require(_0x8bd8('0xa'));var crypto=require(_0x8bd8('0xb'));var jsforce=require(_0x8bd8('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x8bd8('0x7'));var querystring=require(_0x8bd8('0xd'));var Papa=require(_0x8bd8('0xe'));var Redis=require('ioredis');var authService=require(_0x8bd8('0xf'));var qs=require(_0x8bd8('0x10'));var as=require(_0x8bd8('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8bd8('0x12'))(_0x8bd8('0x13'));var utils=require(_0x8bd8('0x14'));var config=require(_0x8bd8('0x15'));var licenseUtil=require(_0x8bd8('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x29b37d,_0x1cd34b){_0x1cd34b=_0x1cd34b||0xcc;return function(_0x2792a3){if(_0x2792a3){return _0x29b37d[_0x8bd8('0x17')](_0x1cd34b);}return _0x29b37d[_0x8bd8('0x18')](_0x1cd34b)[_0x8bd8('0x19')]();};}function respondWithResult(_0x1cb1ef,_0x43b740){_0x43b740=_0x43b740||0xc8;return function(_0x3366c1){if(_0x3366c1){return _0x1cb1ef[_0x8bd8('0x18')](_0x43b740)[_0x8bd8('0x1a')](_0x3366c1);}};}function respondWithFilteredResult(_0x495733,_0xa47978){return function(_0x2c027f){if(_0x2c027f){var _0x54aaea=typeof _0xa47978[_0x8bd8('0x1b')]===_0x8bd8('0x1c')&&typeof _0xa47978[_0x8bd8('0x1d')]===_0x8bd8('0x1c');var _0x4af352=_0x2c027f[_0x8bd8('0x1e')];var _0x46b152=_0x54aaea?0x0:_0xa47978[_0x8bd8('0x1b')];var _0x45cb66=_0x54aaea?_0x2c027f[_0x8bd8('0x1e')]:_0xa47978['offset']+_0xa47978[_0x8bd8('0x1d')];var _0x4c6349;if(_0x45cb66>=_0x4af352){_0x45cb66=_0x4af352;_0x4c6349=0xc8;}else{_0x4c6349=0xce;}_0x495733[_0x8bd8('0x18')](_0x4c6349);return _0x495733[_0x8bd8('0x1f')](_0x8bd8('0x20'),_0x46b152+'-'+_0x45cb66+'/'+_0x4af352)[_0x8bd8('0x1a')](_0x2c027f);}return null;};}function patchUpdates(_0x21f6d4){return function(_0x29ad59){try{jsonpatch[_0x8bd8('0x21')](_0x29ad59,_0x21f6d4,!![]);}catch(_0x5206df){return BPromise[_0x8bd8('0x22')](_0x5206df);}return _0x29ad59[_0x8bd8('0x23')]();};}function saveUpdates(_0x33868a,_0xb9a48c){return function(_0x389a26){if(_0x389a26){return _0x389a26[_0x8bd8('0x24')](_0x33868a)[_0x8bd8('0x25')](function(_0x4caf26){return _0x4caf26;});}return null;};}function removeEntity(_0x1e9b55,_0x5d32ee){return function(_0x3ffe89){if(_0x3ffe89){return _0x3ffe89[_0x8bd8('0x26')]()[_0x8bd8('0x25')](function(){_0x1e9b55[_0x8bd8('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x489eeb,_0x379cbe){return function(_0x514629){if(!_0x514629){_0x489eeb[_0x8bd8('0x17')](0x194);}return _0x514629;};}function handleError(_0x54e7a6,_0x2762df){_0x2762df=_0x2762df||0x1f4;return function(_0x551cf2){logger[_0x8bd8('0x27')](_0x551cf2[_0x8bd8('0x28')]);if(_0x551cf2['name']){delete _0x551cf2[_0x8bd8('0x29')];}_0x54e7a6['status'](_0x2762df)[_0x8bd8('0x2a')](_0x551cf2);};}exports[_0x8bd8('0x2b')]=function(_0x19ad84,_0x85113e){var _0x2b4416={},_0x4625b1={},_0x3c57df={'count':0x0,'rows':[]};var _0x2de9ad=_['map'](db['FreshsalesConfiguration'][_0x8bd8('0x2c')],function(_0x68871e){return{'name':_0x68871e[_0x8bd8('0x2d')],'type':_0x68871e[_0x8bd8('0x2e')][_0x8bd8('0x2f')]};});_0x4625b1[_0x8bd8('0x30')]=_[_0x8bd8('0x31')](_0x2de9ad,_0x8bd8('0x29'));_0x4625b1[_0x8bd8('0x32')]=_[_0x8bd8('0x33')](_0x19ad84[_0x8bd8('0x32')]);_0x4625b1['filters']=_['intersection'](_0x4625b1[_0x8bd8('0x30')],_0x4625b1[_0x8bd8('0x32')]);_0x2b4416[_0x8bd8('0x34')]=_[_0x8bd8('0x35')](_0x4625b1[_0x8bd8('0x30')],qs[_0x8bd8('0x36')](_0x19ad84[_0x8bd8('0x32')][_0x8bd8('0x36')]));_0x2b4416['attributes']=_0x2b4416['attributes'][_0x8bd8('0x37')]?_0x2b4416['attributes']:_0x4625b1[_0x8bd8('0x30')];if(!_0x19ad84[_0x8bd8('0x32')][_0x8bd8('0x38')](_0x8bd8('0x39'))){_0x2b4416['limit']=qs[_0x8bd8('0x1d')](_0x19ad84['query'][_0x8bd8('0x1d')]);_0x2b4416[_0x8bd8('0x1b')]=qs[_0x8bd8('0x1b')](_0x19ad84[_0x8bd8('0x32')][_0x8bd8('0x1b')]);}_0x2b4416[_0x8bd8('0x3a')]=qs[_0x8bd8('0x3b')](_0x19ad84['query'][_0x8bd8('0x3b')]);_0x2b4416[_0x8bd8('0x3c')]=qs[_0x8bd8('0x3d')](_['pick'](_0x19ad84[_0x8bd8('0x32')],_0x4625b1['filters']),_0x2de9ad);if(_0x19ad84[_0x8bd8('0x32')][_0x8bd8('0x3e')]){_0x2b4416[_0x8bd8('0x3c')]=_[_0x8bd8('0x3f')](_0x2b4416[_0x8bd8('0x3c')],{'$or':_[_0x8bd8('0x31')](_0x2de9ad,function(_0x1ad399){if(_0x1ad399['type']!==_0x8bd8('0x40')){var _0x14bb0e={};_0x14bb0e[_0x1ad399['name']]={'$like':'%'+_0x19ad84[_0x8bd8('0x32')][_0x8bd8('0x3e')]+'%'};return _0x14bb0e;}})});}_0x2b4416=_['merge']({},_0x2b4416,_0x19ad84[_0x8bd8('0x41')]);var _0x4f3bb1={'where':_0x2b4416[_0x8bd8('0x3c')]};return db['FreshsalesConfiguration'][_0x8bd8('0x1e')](_0x4f3bb1)['then'](function(_0x32367f){_0x3c57df[_0x8bd8('0x1e')]=_0x32367f;if(_0x19ad84[_0x8bd8('0x32')][_0x8bd8('0x42')]){_0x2b4416[_0x8bd8('0x43')]=[{'all':!![]}];}return db[_0x8bd8('0x44')][_0x8bd8('0x45')](_0x2b4416);})[_0x8bd8('0x25')](function(_0x5842a2){_0x3c57df[_0x8bd8('0x46')]=_0x5842a2;return _0x3c57df;})['then'](respondWithFilteredResult(_0x85113e,_0x2b4416))['catch'](handleError(_0x85113e,null));};exports[_0x8bd8('0x47')]=function(_0x15a9ea,_0x5a9aa7){var _0x1ac9a9={'raw':![],'where':{'id':_0x15a9ea[_0x8bd8('0x48')]['id']}},_0x3be5f8={};_0x3be5f8['model']=_[_0x8bd8('0x33')](db[_0x8bd8('0x44')][_0x8bd8('0x2c')]);_0x3be5f8[_0x8bd8('0x32')]=_[_0x8bd8('0x33')](_0x15a9ea[_0x8bd8('0x32')]);_0x3be5f8[_0x8bd8('0x3d')]=_[_0x8bd8('0x35')](_0x3be5f8[_0x8bd8('0x30')],_0x3be5f8[_0x8bd8('0x32')]);_0x1ac9a9[_0x8bd8('0x34')]=_[_0x8bd8('0x35')](_0x3be5f8['model'],qs[_0x8bd8('0x36')](_0x15a9ea['query']['fields']));_0x1ac9a9['attributes']=_0x1ac9a9['attributes']['length']?_0x1ac9a9[_0x8bd8('0x34')]:_0x3be5f8['model'];if(_0x15a9ea['query'][_0x8bd8('0x42')]){_0x1ac9a9[_0x8bd8('0x43')]=[{'all':!![]}];}_0x1ac9a9=_[_0x8bd8('0x3f')]({},_0x1ac9a9,_0x15a9ea[_0x8bd8('0x41')]);return db[_0x8bd8('0x44')]['find'](_0x1ac9a9)[_0x8bd8('0x25')](handleEntityNotFound(_0x5a9aa7,null))['then'](respondWithResult(_0x5a9aa7,null))[_0x8bd8('0x49')](handleError(_0x5a9aa7,null));};exports['create']=function(_0x223efd,_0x273d6c){return db[_0x8bd8('0x44')][_0x8bd8('0x4a')](_0x223efd[_0x8bd8('0x4b')],{})[_0x8bd8('0x25')](respondWithResult(_0x273d6c,0xc9))[_0x8bd8('0x49')](handleError(_0x273d6c,null));};exports[_0x8bd8('0x24')]=function(_0x484edb,_0x231eee){if(_0x484edb[_0x8bd8('0x4b')]['id']){delete _0x484edb[_0x8bd8('0x4b')]['id'];}return db[_0x8bd8('0x44')]['find']({'where':{'id':_0x484edb[_0x8bd8('0x48')]['id']}})[_0x8bd8('0x25')](handleEntityNotFound(_0x231eee,null))['then'](saveUpdates(_0x484edb[_0x8bd8('0x4b')],null))[_0x8bd8('0x25')](respondWithResult(_0x231eee,null))['catch'](handleError(_0x231eee,null));};exports[_0x8bd8('0x26')]=function(_0x2c7d3f,_0x398241){return db[_0x8bd8('0x44')][_0x8bd8('0x4c')]({'where':{'id':_0x2c7d3f[_0x8bd8('0x48')]['id']}})[_0x8bd8('0x25')](handleEntityNotFound(_0x398241,null))[_0x8bd8('0x25')](removeEntity(_0x398241,null))[_0x8bd8('0x49')](handleError(_0x398241,null));};exports[_0x8bd8('0x4d')]=function(_0x1ab90a,_0x1dfc9a,_0x311065){var _0x313048={};var _0x57e781={};var _0x204f63;var _0xb3d207;return db['FreshsalesConfiguration']['findOne']({'where':{'id':_0x1ab90a[_0x8bd8('0x48')]['id']}})[_0x8bd8('0x25')](handleEntityNotFound(_0x1dfc9a,null))[_0x8bd8('0x25')](function(_0x5d6dbc){if(_0x5d6dbc){_0x204f63=_0x5d6dbc;_0x57e781[_0x8bd8('0x30')]=_[_0x8bd8('0x33')](db['FreshsalesField'][_0x8bd8('0x2c')]);_0x57e781[_0x8bd8('0x32')]=_[_0x8bd8('0x33')](_0x1ab90a[_0x8bd8('0x32')]);_0x57e781[_0x8bd8('0x3d')]=_[_0x8bd8('0x35')](_0x57e781[_0x8bd8('0x30')],_0x57e781[_0x8bd8('0x32')]);_0x313048[_0x8bd8('0x34')]=_['intersection'](_0x57e781[_0x8bd8('0x30')],qs[_0x8bd8('0x36')](_0x1ab90a['query'][_0x8bd8('0x36')]));_0x313048['attributes']=_0x313048[_0x8bd8('0x34')][_0x8bd8('0x37')]?_0x313048[_0x8bd8('0x34')]:_0x57e781[_0x8bd8('0x30')];_0x313048[_0x8bd8('0x3a')]=qs[_0x8bd8('0x3b')](_0x1ab90a[_0x8bd8('0x32')][_0x8bd8('0x3b')]);_0x313048[_0x8bd8('0x3c')]=qs['filters'](_[_0x8bd8('0x4e')](_0x1ab90a[_0x8bd8('0x32')],_0x57e781[_0x8bd8('0x3d')]));if(_0x1ab90a[_0x8bd8('0x32')]['filter']){_0x313048[_0x8bd8('0x3c')]=_[_0x8bd8('0x3f')](_0x313048[_0x8bd8('0x3c')],{'$or':_[_0x8bd8('0x31')](_0x313048[_0x8bd8('0x34')],function(_0x7b11ae){var _0x23c1e2={};_0x23c1e2[_0x7b11ae]={'$like':'%'+_0x1ab90a[_0x8bd8('0x32')][_0x8bd8('0x3e')]+'%'};return _0x23c1e2;})});}_0x313048=_[_0x8bd8('0x3f')]({},_0x313048,_0x1ab90a[_0x8bd8('0x41')]);return _0x204f63[_0x8bd8('0x4d')](_0x313048);}})[_0x8bd8('0x25')](function(_0x1714a0){if(_0x1714a0){_0xb3d207=_0x1714a0[_0x8bd8('0x37')];if(!_0x1ab90a[_0x8bd8('0x32')][_0x8bd8('0x38')](_0x8bd8('0x39'))){_0x313048[_0x8bd8('0x1d')]=qs[_0x8bd8('0x1d')](_0x1ab90a[_0x8bd8('0x32')][_0x8bd8('0x1d')]);_0x313048[_0x8bd8('0x1b')]=qs[_0x8bd8('0x1b')](_0x1ab90a[_0x8bd8('0x32')]['offset']);}return _0x204f63[_0x8bd8('0x4d')](_0x313048);}})[_0x8bd8('0x25')](function(_0x479292){if(_0x479292){return _0x479292?{'count':_0xb3d207,'rows':_0x479292}:null;}})[_0x8bd8('0x25')](respondWithResult(_0x1dfc9a,null))['catch'](handleError(_0x1dfc9a,null));};exports[_0x8bd8('0x4f')]=function(_0x57cd40,_0x4487d0,_0x3e3976){var _0x10a357={};var _0x811390={};var _0x38ec67;var _0x6f5c3d;return db[_0x8bd8('0x44')][_0x8bd8('0x50')]({'where':{'id':_0x57cd40['params']['id']}})[_0x8bd8('0x25')](handleEntityNotFound(_0x4487d0,null))[_0x8bd8('0x25')](function(_0x47c030){if(_0x47c030){_0x38ec67=_0x47c030;_0x811390[_0x8bd8('0x30')]=_['keys'](db[_0x8bd8('0x51')][_0x8bd8('0x2c')]);_0x811390[_0x8bd8('0x32')]=_[_0x8bd8('0x33')](_0x57cd40['query']);_0x811390[_0x8bd8('0x3d')]=_[_0x8bd8('0x35')](_0x811390[_0x8bd8('0x30')],_0x811390[_0x8bd8('0x32')]);_0x10a357[_0x8bd8('0x34')]=_['intersection'](_0x811390['model'],qs[_0x8bd8('0x36')](_0x57cd40[_0x8bd8('0x32')]['fields']));_0x10a357[_0x8bd8('0x34')]=_0x10a357[_0x8bd8('0x34')][_0x8bd8('0x37')]?_0x10a357[_0x8bd8('0x34')]:_0x811390[_0x8bd8('0x30')];_0x10a357[_0x8bd8('0x3a')]=qs[_0x8bd8('0x3b')](_0x57cd40[_0x8bd8('0x32')][_0x8bd8('0x3b')]);_0x10a357[_0x8bd8('0x3c')]=qs[_0x8bd8('0x3d')](_['pick'](_0x57cd40[_0x8bd8('0x32')],_0x811390[_0x8bd8('0x3d')]));if(_0x57cd40['query'][_0x8bd8('0x3e')]){_0x10a357[_0x8bd8('0x3c')]=_[_0x8bd8('0x3f')](_0x10a357[_0x8bd8('0x3c')],{'$or':_[_0x8bd8('0x31')](_0x10a357[_0x8bd8('0x34')],function(_0x482363){var _0x3d083c={};_0x3d083c[_0x482363]={'$like':'%'+_0x57cd40[_0x8bd8('0x32')][_0x8bd8('0x3e')]+'%'};return _0x3d083c;})});}_0x10a357=_[_0x8bd8('0x3f')]({},_0x10a357,_0x57cd40[_0x8bd8('0x41')]);return _0x38ec67[_0x8bd8('0x4f')](_0x10a357);}})[_0x8bd8('0x25')](function(_0x3969c7){if(_0x3969c7){_0x6f5c3d=_0x3969c7[_0x8bd8('0x37')];if(!_0x57cd40[_0x8bd8('0x32')][_0x8bd8('0x38')](_0x8bd8('0x39'))){_0x10a357[_0x8bd8('0x1d')]=qs['limit'](_0x57cd40['query']['limit']);_0x10a357[_0x8bd8('0x1b')]=qs[_0x8bd8('0x1b')](_0x57cd40['query'][_0x8bd8('0x1b')]);}return _0x38ec67[_0x8bd8('0x4f')](_0x10a357);}})['then'](function(_0x4db1e9){if(_0x4db1e9){return _0x4db1e9?{'count':_0x6f5c3d,'rows':_0x4db1e9}:null;}})[_0x8bd8('0x25')](respondWithResult(_0x4487d0,null))['catch'](handleError(_0x4487d0,null));};exports[_0x8bd8('0x52')]=function(_0x23b799,_0x5f5324,_0x129bce){var _0x16e7ba={};var _0x20730a={};var _0x56191e;var _0x31a071;return db['FreshsalesConfiguration']['findOne']({'where':{'id':_0x23b799[_0x8bd8('0x48')]['id']}})[_0x8bd8('0x25')](handleEntityNotFound(_0x5f5324,null))['then'](function(_0xd6aac9){if(_0xd6aac9){_0x56191e=_0xd6aac9;_0x20730a[_0x8bd8('0x30')]=_[_0x8bd8('0x33')](db['FreshsalesField'][_0x8bd8('0x2c')]);_0x20730a[_0x8bd8('0x32')]=_[_0x8bd8('0x33')](_0x23b799[_0x8bd8('0x32')]);_0x20730a[_0x8bd8('0x3d')]=_['intersection'](_0x20730a[_0x8bd8('0x30')],_0x20730a[_0x8bd8('0x32')]);_0x16e7ba[_0x8bd8('0x34')]=_[_0x8bd8('0x35')](_0x20730a[_0x8bd8('0x30')],qs['fields'](_0x23b799['query']['fields']));_0x16e7ba[_0x8bd8('0x34')]=_0x16e7ba[_0x8bd8('0x34')][_0x8bd8('0x37')]?_0x16e7ba[_0x8bd8('0x34')]:_0x20730a['model'];_0x16e7ba['order']=qs[_0x8bd8('0x3b')](_0x23b799[_0x8bd8('0x32')][_0x8bd8('0x3b')]);_0x16e7ba[_0x8bd8('0x3c')]=qs[_0x8bd8('0x3d')](_[_0x8bd8('0x4e')](_0x23b799[_0x8bd8('0x32')],_0x20730a['filters']));if(_0x23b799[_0x8bd8('0x32')]['filter']){_0x16e7ba[_0x8bd8('0x3c')]=_['merge'](_0x16e7ba[_0x8bd8('0x3c')],{'$or':_[_0x8bd8('0x31')](_0x16e7ba[_0x8bd8('0x34')],function(_0x57f804){var _0x49ca3e={};_0x49ca3e[_0x57f804]={'$like':'%'+_0x23b799['query'][_0x8bd8('0x3e')]+'%'};return _0x49ca3e;})});}_0x16e7ba=_['merge']({},_0x16e7ba,_0x23b799['options']);return _0x56191e[_0x8bd8('0x52')](_0x16e7ba);}})[_0x8bd8('0x25')](function(_0x5b382e){if(_0x5b382e){_0x31a071=_0x5b382e[_0x8bd8('0x37')];if(!_0x23b799['query'][_0x8bd8('0x38')](_0x8bd8('0x39'))){_0x16e7ba[_0x8bd8('0x1d')]=qs[_0x8bd8('0x1d')](_0x23b799[_0x8bd8('0x32')][_0x8bd8('0x1d')]);_0x16e7ba[_0x8bd8('0x1b')]=qs[_0x8bd8('0x1b')](_0x23b799[_0x8bd8('0x32')][_0x8bd8('0x1b')]);}return _0x56191e[_0x8bd8('0x52')](_0x16e7ba);}})[_0x8bd8('0x25')](function(_0x140f14){if(_0x140f14){return _0x140f14?{'count':_0x31a071,'rows':_0x140f14}:null;}})[_0x8bd8('0x25')](respondWithResult(_0x5f5324,null))[_0x8bd8('0x49')](handleError(_0x5f5324,null));};