4e1efb431208cd5a4cfa2d19291080fd4e0084ad
[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 _0xe043=['ejs','fs-extra','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','then','destroy','end','name','send','index','FreshsalesConfiguration','rawAttributes','key','model','query','keys','filters','attributes','intersection','fields','length','order','sort','where','pick','filter','map','VIRTUAL','includeAll','include','findAll','catch','show','merge','options','find','create','body','update','params','getSubjects','findOne','FreshsalesField','nolimit','getDescriptions','hasOwnProperty','getFields','eml-format','rimraf','zip-dir','util','sox','to-csv'];(function(_0x4cdfa7,_0x1661f6){var _0x5299b2=function(_0x47e52c){while(--_0x47e52c){_0x4cdfa7['push'](_0x4cdfa7['shift']());}};_0x5299b2(++_0x1661f6);}(_0xe043,0x1b6));var _0x3e04=function(_0xbfc467,_0x2eb680){_0xbfc467=_0xbfc467-0x0;var _0x2971d2=_0xe043[_0xbfc467];return _0x2971d2;};'use strict';var emlformat=require(_0x3e04('0x0'));var rimraf=require(_0x3e04('0x1'));var zipdir=require(_0x3e04('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x3e04('0x3'));var path=require('path');var sox=require(_0x3e04('0x4'));var csv=require(_0x3e04('0x5'));var ejs=require(_0x3e04('0x6'));var fs=require('fs');var fs_extra=require(_0x3e04('0x7'));var _=require('lodash');var squel=require(_0x3e04('0x8'));var crypto=require(_0x3e04('0x9'));var jsforce=require(_0x3e04('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x3e04('0x5'));var querystring=require(_0x3e04('0xb'));var Papa=require('papaparse');var Redis=require(_0x3e04('0xc'));var authService=require(_0x3e04('0xd'));var qs=require(_0x3e04('0xe'));var as=require(_0x3e04('0xf'));var hardwareService=require(_0x3e04('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0x3e04('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0x3e04('0x12'));var db=require(_0x3e04('0x13'))['db'];function respondWithStatusCode(_0x4156dd,_0x56608a){_0x56608a=_0x56608a||0xcc;return function(_0x2541cf){if(_0x2541cf){return _0x4156dd[_0x3e04('0x14')](_0x56608a);}return _0x4156dd[_0x3e04('0x15')](_0x56608a)['end']();};}function respondWithResult(_0x60862d,_0x5d4308){_0x5d4308=_0x5d4308||0xc8;return function(_0x23ccbd){if(_0x23ccbd){return _0x60862d['status'](_0x5d4308)[_0x3e04('0x16')](_0x23ccbd);}};}function respondWithFilteredResult(_0x12a880,_0x311008){return function(_0x887af2){if(_0x887af2){var _0x5291b1=typeof _0x311008['offset']===_0x3e04('0x17')&&typeof _0x311008[_0x3e04('0x18')]==='undefined';var _0xcfc148=_0x887af2[_0x3e04('0x19')];var _0x230931=_0x5291b1?0x0:_0x311008['offset'];var _0xdedde8=_0x5291b1?_0x887af2[_0x3e04('0x19')]:_0x311008[_0x3e04('0x1a')]+_0x311008[_0x3e04('0x18')];var _0x3dc472;if(_0xdedde8>=_0xcfc148){_0xdedde8=_0xcfc148;_0x3dc472=0xc8;}else{_0x3dc472=0xce;}_0x12a880[_0x3e04('0x15')](_0x3dc472);return _0x12a880[_0x3e04('0x1b')](_0x3e04('0x1c'),_0x230931+'-'+_0xdedde8+'/'+_0xcfc148)[_0x3e04('0x16')](_0x887af2);}return null;};}function patchUpdates(_0x3b46d0){return function(_0x36d57e){try{jsonpatch[_0x3e04('0x1d')](_0x36d57e,_0x3b46d0,!![]);}catch(_0x19963b){return BPromise[_0x3e04('0x1e')](_0x19963b);}return _0x36d57e['save']();};}function saveUpdates(_0x374bc6,_0x25c0c4){return function(_0x28d22d){if(_0x28d22d){return _0x28d22d['update'](_0x374bc6)[_0x3e04('0x1f')](function(_0x3dd9a5){return _0x3dd9a5;});}return null;};}function removeEntity(_0x34dba9,_0x3e4f54){return function(_0x1828c7){if(_0x1828c7){return _0x1828c7[_0x3e04('0x20')]()[_0x3e04('0x1f')](function(){_0x34dba9[_0x3e04('0x15')](0xcc)[_0x3e04('0x21')]();});}};}function handleEntityNotFound(_0x3c1c5a,_0x5cc7c7){return function(_0x299fc1){if(!_0x299fc1){_0x3c1c5a[_0x3e04('0x14')](0x194);}return _0x299fc1;};}function handleError(_0x56fce7,_0x41f44a){_0x41f44a=_0x41f44a||0x1f4;return function(_0x32654b){logger['error'](_0x32654b['stack']);if(_0x32654b[_0x3e04('0x22')]){delete _0x32654b[_0x3e04('0x22')];}_0x56fce7[_0x3e04('0x15')](_0x41f44a)[_0x3e04('0x23')](_0x32654b);};}exports[_0x3e04('0x24')]=function(_0x341442,_0x2c0515){var _0x17d216={},_0x5f317e={},_0xdc9b86={'count':0x0,'rows':[]};var _0x4c6702=_['map'](db[_0x3e04('0x25')][_0x3e04('0x26')],function(_0x493174){return{'name':_0x493174['fieldName'],'type':_0x493174['type'][_0x3e04('0x27')]};});_0x5f317e[_0x3e04('0x28')]=_['map'](_0x4c6702,_0x3e04('0x22'));_0x5f317e[_0x3e04('0x29')]=_[_0x3e04('0x2a')](_0x341442['query']);_0x5f317e[_0x3e04('0x2b')]=_['intersection'](_0x5f317e['model'],_0x5f317e[_0x3e04('0x29')]);_0x17d216[_0x3e04('0x2c')]=_[_0x3e04('0x2d')](_0x5f317e[_0x3e04('0x28')],qs[_0x3e04('0x2e')](_0x341442[_0x3e04('0x29')]['fields']));_0x17d216[_0x3e04('0x2c')]=_0x17d216[_0x3e04('0x2c')][_0x3e04('0x2f')]?_0x17d216[_0x3e04('0x2c')]:_0x5f317e[_0x3e04('0x28')];if(!_0x341442[_0x3e04('0x29')]['hasOwnProperty']('nolimit')){_0x17d216[_0x3e04('0x18')]=qs['limit'](_0x341442[_0x3e04('0x29')][_0x3e04('0x18')]);_0x17d216[_0x3e04('0x1a')]=qs[_0x3e04('0x1a')](_0x341442['query'][_0x3e04('0x1a')]);}_0x17d216[_0x3e04('0x30')]=qs[_0x3e04('0x31')](_0x341442['query'][_0x3e04('0x31')]);_0x17d216[_0x3e04('0x32')]=qs['filters'](_[_0x3e04('0x33')](_0x341442[_0x3e04('0x29')],_0x5f317e[_0x3e04('0x2b')]),_0x4c6702);if(_0x341442[_0x3e04('0x29')][_0x3e04('0x34')]){_0x17d216[_0x3e04('0x32')]=_['merge'](_0x17d216[_0x3e04('0x32')],{'$or':_[_0x3e04('0x35')](_0x4c6702,function(_0x8fb0e){if(_0x8fb0e['type']!==_0x3e04('0x36')){var _0x50dc27={};_0x50dc27[_0x8fb0e[_0x3e04('0x22')]]={'$like':'%'+_0x341442[_0x3e04('0x29')][_0x3e04('0x34')]+'%'};return _0x50dc27;}})});}_0x17d216=_['merge']({},_0x17d216,_0x341442['options']);var _0x33e7bb={'where':_0x17d216[_0x3e04('0x32')]};return db[_0x3e04('0x25')][_0x3e04('0x19')](_0x33e7bb)[_0x3e04('0x1f')](function(_0x3caafe){_0xdc9b86[_0x3e04('0x19')]=_0x3caafe;if(_0x341442[_0x3e04('0x29')][_0x3e04('0x37')]){_0x17d216[_0x3e04('0x38')]=[{'all':!![]}];}return db[_0x3e04('0x25')][_0x3e04('0x39')](_0x17d216);})[_0x3e04('0x1f')](function(_0x1f1f15){_0xdc9b86['rows']=_0x1f1f15;return _0xdc9b86;})[_0x3e04('0x1f')](respondWithFilteredResult(_0x2c0515,_0x17d216))[_0x3e04('0x3a')](handleError(_0x2c0515,null));};exports[_0x3e04('0x3b')]=function(_0x361b6a,_0x1d6f6e){var _0x25b7ba={'raw':![],'where':{'id':_0x361b6a['params']['id']}},_0x44a24f={};_0x44a24f[_0x3e04('0x28')]=_['keys'](db[_0x3e04('0x25')]['rawAttributes']);_0x44a24f[_0x3e04('0x29')]=_['keys'](_0x361b6a[_0x3e04('0x29')]);_0x44a24f[_0x3e04('0x2b')]=_['intersection'](_0x44a24f[_0x3e04('0x28')],_0x44a24f[_0x3e04('0x29')]);_0x25b7ba[_0x3e04('0x2c')]=_[_0x3e04('0x2d')](_0x44a24f[_0x3e04('0x28')],qs[_0x3e04('0x2e')](_0x361b6a[_0x3e04('0x29')][_0x3e04('0x2e')]));_0x25b7ba[_0x3e04('0x2c')]=_0x25b7ba[_0x3e04('0x2c')]['length']?_0x25b7ba[_0x3e04('0x2c')]:_0x44a24f[_0x3e04('0x28')];if(_0x361b6a['query'][_0x3e04('0x37')]){_0x25b7ba['include']=[{'all':!![]}];}_0x25b7ba=_[_0x3e04('0x3c')]({},_0x25b7ba,_0x361b6a[_0x3e04('0x3d')]);return db['FreshsalesConfiguration'][_0x3e04('0x3e')](_0x25b7ba)[_0x3e04('0x1f')](handleEntityNotFound(_0x1d6f6e,null))[_0x3e04('0x1f')](respondWithResult(_0x1d6f6e,null))[_0x3e04('0x3a')](handleError(_0x1d6f6e,null));};exports[_0x3e04('0x3f')]=function(_0x47f25e,_0x230a65){return db[_0x3e04('0x25')][_0x3e04('0x3f')](_0x47f25e[_0x3e04('0x40')],{})[_0x3e04('0x1f')](respondWithResult(_0x230a65,0xc9))[_0x3e04('0x3a')](handleError(_0x230a65,null));};exports[_0x3e04('0x41')]=function(_0x257914,_0x2e14af){if(_0x257914['body']['id']){delete _0x257914[_0x3e04('0x40')]['id'];}return db[_0x3e04('0x25')][_0x3e04('0x3e')]({'where':{'id':_0x257914[_0x3e04('0x42')]['id']}})[_0x3e04('0x1f')](handleEntityNotFound(_0x2e14af,null))[_0x3e04('0x1f')](saveUpdates(_0x257914[_0x3e04('0x40')],null))[_0x3e04('0x1f')](respondWithResult(_0x2e14af,null))[_0x3e04('0x3a')](handleError(_0x2e14af,null));};exports[_0x3e04('0x20')]=function(_0x187807,_0x49fc70){return db[_0x3e04('0x25')]['find']({'where':{'id':_0x187807[_0x3e04('0x42')]['id']}})[_0x3e04('0x1f')](handleEntityNotFound(_0x49fc70,null))[_0x3e04('0x1f')](removeEntity(_0x49fc70,null))[_0x3e04('0x3a')](handleError(_0x49fc70,null));};exports[_0x3e04('0x43')]=function(_0x1df937,_0xa60287,_0x436e8d){var _0x4cf5d8={};var _0x45636e={};var _0x11a581;var _0x37be2f;return db[_0x3e04('0x25')][_0x3e04('0x44')]({'where':{'id':_0x1df937[_0x3e04('0x42')]['id']}})[_0x3e04('0x1f')](handleEntityNotFound(_0xa60287,null))[_0x3e04('0x1f')](function(_0x1d37e9){if(_0x1d37e9){_0x11a581=_0x1d37e9;_0x45636e[_0x3e04('0x28')]=_[_0x3e04('0x2a')](db[_0x3e04('0x45')][_0x3e04('0x26')]);_0x45636e['query']=_['keys'](_0x1df937['query']);_0x45636e[_0x3e04('0x2b')]=_[_0x3e04('0x2d')](_0x45636e[_0x3e04('0x28')],_0x45636e[_0x3e04('0x29')]);_0x4cf5d8[_0x3e04('0x2c')]=_['intersection'](_0x45636e[_0x3e04('0x28')],qs[_0x3e04('0x2e')](_0x1df937[_0x3e04('0x29')]['fields']));_0x4cf5d8[_0x3e04('0x2c')]=_0x4cf5d8[_0x3e04('0x2c')][_0x3e04('0x2f')]?_0x4cf5d8[_0x3e04('0x2c')]:_0x45636e[_0x3e04('0x28')];_0x4cf5d8[_0x3e04('0x30')]=qs[_0x3e04('0x31')](_0x1df937[_0x3e04('0x29')][_0x3e04('0x31')]);_0x4cf5d8[_0x3e04('0x32')]=qs[_0x3e04('0x2b')](_['pick'](_0x1df937[_0x3e04('0x29')],_0x45636e[_0x3e04('0x2b')]));if(_0x1df937[_0x3e04('0x29')][_0x3e04('0x34')]){_0x4cf5d8[_0x3e04('0x32')]=_[_0x3e04('0x3c')](_0x4cf5d8[_0x3e04('0x32')],{'$or':_[_0x3e04('0x35')](_0x4cf5d8[_0x3e04('0x2c')],function(_0x4e9653){var _0x33414a={};_0x33414a[_0x4e9653]={'$like':'%'+_0x1df937[_0x3e04('0x29')][_0x3e04('0x34')]+'%'};return _0x33414a;})});}_0x4cf5d8=_[_0x3e04('0x3c')]({},_0x4cf5d8,_0x1df937['options']);return _0x11a581['getSubjects'](_0x4cf5d8);}})[_0x3e04('0x1f')](function(_0x3d7b5e){if(_0x3d7b5e){_0x37be2f=_0x3d7b5e['length'];if(!_0x1df937[_0x3e04('0x29')]['hasOwnProperty'](_0x3e04('0x46'))){_0x4cf5d8[_0x3e04('0x18')]=qs['limit'](_0x1df937[_0x3e04('0x29')][_0x3e04('0x18')]);_0x4cf5d8[_0x3e04('0x1a')]=qs[_0x3e04('0x1a')](_0x1df937[_0x3e04('0x29')][_0x3e04('0x1a')]);}return _0x11a581[_0x3e04('0x43')](_0x4cf5d8);}})[_0x3e04('0x1f')](function(_0xb2ae11){if(_0xb2ae11){return _0xb2ae11?{'count':_0x37be2f,'rows':_0xb2ae11}:null;}})[_0x3e04('0x1f')](respondWithResult(_0xa60287,null))['catch'](handleError(_0xa60287,null));};exports['getDescriptions']=function(_0x13e59d,_0x428596,_0x42fd81){var _0x1806fa={};var _0x3b4a61={};var _0x41e7d1;var _0x166f5e;return db[_0x3e04('0x25')][_0x3e04('0x44')]({'where':{'id':_0x13e59d['params']['id']}})[_0x3e04('0x1f')](handleEntityNotFound(_0x428596,null))[_0x3e04('0x1f')](function(_0x433d7c){if(_0x433d7c){_0x41e7d1=_0x433d7c;_0x3b4a61[_0x3e04('0x28')]=_[_0x3e04('0x2a')](db[_0x3e04('0x45')][_0x3e04('0x26')]);_0x3b4a61['query']=_[_0x3e04('0x2a')](_0x13e59d[_0x3e04('0x29')]);_0x3b4a61['filters']=_['intersection'](_0x3b4a61[_0x3e04('0x28')],_0x3b4a61[_0x3e04('0x29')]);_0x1806fa[_0x3e04('0x2c')]=_[_0x3e04('0x2d')](_0x3b4a61[_0x3e04('0x28')],qs['fields'](_0x13e59d[_0x3e04('0x29')][_0x3e04('0x2e')]));_0x1806fa[_0x3e04('0x2c')]=_0x1806fa[_0x3e04('0x2c')][_0x3e04('0x2f')]?_0x1806fa['attributes']:_0x3b4a61[_0x3e04('0x28')];_0x1806fa['order']=qs[_0x3e04('0x31')](_0x13e59d[_0x3e04('0x29')][_0x3e04('0x31')]);_0x1806fa[_0x3e04('0x32')]=qs['filters'](_[_0x3e04('0x33')](_0x13e59d[_0x3e04('0x29')],_0x3b4a61[_0x3e04('0x2b')]));if(_0x13e59d[_0x3e04('0x29')]['filter']){_0x1806fa[_0x3e04('0x32')]=_[_0x3e04('0x3c')](_0x1806fa[_0x3e04('0x32')],{'$or':_[_0x3e04('0x35')](_0x1806fa[_0x3e04('0x2c')],function(_0x3051e6){var _0x5710e7={};_0x5710e7[_0x3051e6]={'$like':'%'+_0x13e59d[_0x3e04('0x29')][_0x3e04('0x34')]+'%'};return _0x5710e7;})});}_0x1806fa=_[_0x3e04('0x3c')]({},_0x1806fa,_0x13e59d['options']);return _0x41e7d1[_0x3e04('0x47')](_0x1806fa);}})[_0x3e04('0x1f')](function(_0x41e229){if(_0x41e229){_0x166f5e=_0x41e229[_0x3e04('0x2f')];if(!_0x13e59d[_0x3e04('0x29')][_0x3e04('0x48')](_0x3e04('0x46'))){_0x1806fa['limit']=qs['limit'](_0x13e59d['query'][_0x3e04('0x18')]);_0x1806fa[_0x3e04('0x1a')]=qs[_0x3e04('0x1a')](_0x13e59d[_0x3e04('0x29')][_0x3e04('0x1a')]);}return _0x41e7d1[_0x3e04('0x47')](_0x1806fa);}})[_0x3e04('0x1f')](function(_0x25ee1d){if(_0x25ee1d){return _0x25ee1d?{'count':_0x166f5e,'rows':_0x25ee1d}:null;}})['then'](respondWithResult(_0x428596,null))[_0x3e04('0x3a')](handleError(_0x428596,null));};exports[_0x3e04('0x49')]=function(_0x1976c3,_0x7ab46c,_0x42a363){var _0x21738b={};var _0x2180b5={};var _0x127574;var _0x1459bb;return db['FreshsalesConfiguration'][_0x3e04('0x44')]({'where':{'id':_0x1976c3[_0x3e04('0x42')]['id']}})[_0x3e04('0x1f')](handleEntityNotFound(_0x7ab46c,null))[_0x3e04('0x1f')](function(_0x1657df){if(_0x1657df){_0x127574=_0x1657df;_0x2180b5[_0x3e04('0x28')]=_['keys'](db[_0x3e04('0x45')][_0x3e04('0x26')]);_0x2180b5[_0x3e04('0x29')]=_[_0x3e04('0x2a')](_0x1976c3[_0x3e04('0x29')]);_0x2180b5[_0x3e04('0x2b')]=_[_0x3e04('0x2d')](_0x2180b5[_0x3e04('0x28')],_0x2180b5[_0x3e04('0x29')]);_0x21738b[_0x3e04('0x2c')]=_['intersection'](_0x2180b5[_0x3e04('0x28')],qs[_0x3e04('0x2e')](_0x1976c3[_0x3e04('0x29')]['fields']));_0x21738b[_0x3e04('0x2c')]=_0x21738b[_0x3e04('0x2c')][_0x3e04('0x2f')]?_0x21738b['attributes']:_0x2180b5[_0x3e04('0x28')];_0x21738b[_0x3e04('0x30')]=qs[_0x3e04('0x31')](_0x1976c3[_0x3e04('0x29')]['sort']);_0x21738b[_0x3e04('0x32')]=qs[_0x3e04('0x2b')](_[_0x3e04('0x33')](_0x1976c3[_0x3e04('0x29')],_0x2180b5[_0x3e04('0x2b')]));if(_0x1976c3['query']['filter']){_0x21738b[_0x3e04('0x32')]=_['merge'](_0x21738b[_0x3e04('0x32')],{'$or':_['map'](_0x21738b[_0x3e04('0x2c')],function(_0x35f62f){var _0x8603={};_0x8603[_0x35f62f]={'$like':'%'+_0x1976c3[_0x3e04('0x29')][_0x3e04('0x34')]+'%'};return _0x8603;})});}_0x21738b=_[_0x3e04('0x3c')]({},_0x21738b,_0x1976c3[_0x3e04('0x3d')]);return _0x127574[_0x3e04('0x49')](_0x21738b);}})[_0x3e04('0x1f')](function(_0x1b0ce5){if(_0x1b0ce5){_0x1459bb=_0x1b0ce5[_0x3e04('0x2f')];if(!_0x1976c3[_0x3e04('0x29')][_0x3e04('0x48')]('nolimit')){_0x21738b[_0x3e04('0x18')]=qs[_0x3e04('0x18')](_0x1976c3['query'][_0x3e04('0x18')]);_0x21738b['offset']=qs[_0x3e04('0x1a')](_0x1976c3[_0x3e04('0x29')][_0x3e04('0x1a')]);}return _0x127574[_0x3e04('0x49')](_0x21738b);}})['then'](function(_0x164f92){if(_0x164f92){return _0x164f92?{'count':_0x1459bb,'rows':_0x164f92}:null;}})[_0x3e04('0x1f')](respondWithResult(_0x7ab46c,null))[_0x3e04('0x3a')](handleError(_0x7ab46c,null));};