Built motion from commit 639a1a7f.|2.6.19
[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 _0x6252=['../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','limit','undefined','count','Content-Range','apply','save','then','destroy','name','index','map','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','length','order','sort','where','filter','merge','FreshsalesConfiguration','includeAll','include','findAll','catch','show','keys','options','find','create','update','body','getSubjects','findOne','params','FreshsalesField','pick','nolimit','getDescriptions','hasOwnProperty','getFields','rimraf','zip-dir','moment','bluebird','mustache','util','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils'];(function(_0x3c5ad6,_0x47b7bf){var _0x3154f2=function(_0x3a24de){while(--_0x3a24de){_0x3c5ad6['push'](_0x3c5ad6['shift']());}};_0x3154f2(++_0x47b7bf);}(_0x6252,0x15a));var _0x2625=function(_0x2080a3,_0x48acfa){_0x2080a3=_0x2080a3-0x0;var _0x8d7d17=_0x6252[_0x2080a3];return _0x8d7d17;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2625('0x0'));var zipdir=require(_0x2625('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x2625('0x2'));var BPromise=require(_0x2625('0x3'));var Mustache=require(_0x2625('0x4'));var util=require(_0x2625('0x5'));var path=require('path');var sox=require(_0x2625('0x6'));var csv=require(_0x2625('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2625('0x8'));var _=require('lodash');var squel=require(_0x2625('0x9'));var crypto=require(_0x2625('0xa'));var jsforce=require(_0x2625('0xb'));var deskjs=require(_0x2625('0xc'));var toCsv=require('to-csv');var querystring=require(_0x2625('0xd'));var Papa=require('papaparse');var Redis=require(_0x2625('0xe'));var authService=require(_0x2625('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x2625('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2625('0x11'))('api');var utils=require(_0x2625('0x12'));var config=require(_0x2625('0x13'));var licenseUtil=require(_0x2625('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xac6755,_0x101cfc){_0x101cfc=_0x101cfc||0xcc;return function(_0x5b1d47){if(_0x5b1d47){return _0xac6755[_0x2625('0x15')](_0x101cfc);}return _0xac6755[_0x2625('0x16')](_0x101cfc)[_0x2625('0x17')]();};}function respondWithResult(_0x59bbdd,_0xf71a11){_0xf71a11=_0xf71a11||0xc8;return function(_0x5e6ad3){if(_0x5e6ad3){return _0x59bbdd[_0x2625('0x16')](_0xf71a11)[_0x2625('0x18')](_0x5e6ad3);}};}function respondWithFilteredResult(_0x2d79e8,_0x4d7e87){return function(_0x444777){if(_0x444777){var _0x561bde=typeof _0x4d7e87[_0x2625('0x19')]==='undefined'&&typeof _0x4d7e87[_0x2625('0x1a')]===_0x2625('0x1b');var _0x5607a5=_0x444777[_0x2625('0x1c')];var _0x28f810=_0x561bde?0x0:_0x4d7e87[_0x2625('0x19')];var _0x1e008b=_0x561bde?_0x444777[_0x2625('0x1c')]:_0x4d7e87[_0x2625('0x19')]+_0x4d7e87['limit'];var _0x6aabff;if(_0x1e008b>=_0x5607a5){_0x1e008b=_0x5607a5;_0x6aabff=0xc8;}else{_0x6aabff=0xce;}_0x2d79e8[_0x2625('0x16')](_0x6aabff);return _0x2d79e8['set'](_0x2625('0x1d'),_0x28f810+'-'+_0x1e008b+'/'+_0x5607a5)[_0x2625('0x18')](_0x444777);}return null;};}function patchUpdates(_0x1b5c22){return function(_0x3153a){try{jsonpatch[_0x2625('0x1e')](_0x3153a,_0x1b5c22,!![]);}catch(_0x22f63a){return BPromise['reject'](_0x22f63a);}return _0x3153a[_0x2625('0x1f')]();};}function saveUpdates(_0x19bdc2,_0x2a334b){return function(_0x566bf5){if(_0x566bf5){return _0x566bf5['update'](_0x19bdc2)[_0x2625('0x20')](function(_0x2f6f7f){return _0x2f6f7f;});}return null;};}function removeEntity(_0x23f35c,_0x456bc0){return function(_0x5ba611){if(_0x5ba611){return _0x5ba611[_0x2625('0x21')]()[_0x2625('0x20')](function(){_0x23f35c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5de082,_0x11edd3){return function(_0x51c5c5){if(!_0x51c5c5){_0x5de082[_0x2625('0x15')](0x194);}return _0x51c5c5;};}function handleError(_0x684190,_0x30026b){_0x30026b=_0x30026b||0x1f4;return function(_0x349973){logger['error'](_0x349973['stack']);if(_0x349973[_0x2625('0x22')]){delete _0x349973[_0x2625('0x22')];}_0x684190['status'](_0x30026b)['send'](_0x349973);};}exports[_0x2625('0x23')]=function(_0x31a3c6,_0x2aaa5a){var _0x41d152={},_0x4767a8={},_0x57750d={'count':0x0,'rows':[]};var _0x39637e=_[_0x2625('0x24')](db['FreshsalesConfiguration'][_0x2625('0x25')],function(_0x5bb08a){return{'name':_0x5bb08a['fieldName'],'type':_0x5bb08a[_0x2625('0x26')][_0x2625('0x27')]};});_0x4767a8[_0x2625('0x28')]=_[_0x2625('0x24')](_0x39637e,_0x2625('0x22'));_0x4767a8[_0x2625('0x29')]=_['keys'](_0x31a3c6['query']);_0x4767a8[_0x2625('0x2a')]=_[_0x2625('0x2b')](_0x4767a8['model'],_0x4767a8[_0x2625('0x29')]);_0x41d152[_0x2625('0x2c')]=_[_0x2625('0x2b')](_0x4767a8['model'],qs[_0x2625('0x2d')](_0x31a3c6[_0x2625('0x29')][_0x2625('0x2d')]));_0x41d152[_0x2625('0x2c')]=_0x41d152[_0x2625('0x2c')][_0x2625('0x2e')]?_0x41d152[_0x2625('0x2c')]:_0x4767a8[_0x2625('0x28')];if(!_0x31a3c6[_0x2625('0x29')]['hasOwnProperty']('nolimit')){_0x41d152[_0x2625('0x1a')]=qs[_0x2625('0x1a')](_0x31a3c6['query'][_0x2625('0x1a')]);_0x41d152[_0x2625('0x19')]=qs[_0x2625('0x19')](_0x31a3c6[_0x2625('0x29')][_0x2625('0x19')]);}_0x41d152[_0x2625('0x2f')]=qs[_0x2625('0x30')](_0x31a3c6['query'][_0x2625('0x30')]);_0x41d152[_0x2625('0x31')]=qs[_0x2625('0x2a')](_['pick'](_0x31a3c6[_0x2625('0x29')],_0x4767a8[_0x2625('0x2a')]),_0x39637e);if(_0x31a3c6[_0x2625('0x29')][_0x2625('0x32')]){_0x41d152['where']=_['merge'](_0x41d152['where'],{'$or':_['map'](_0x39637e,function(_0x28dbac){if(_0x28dbac[_0x2625('0x26')]!=='VIRTUAL'){var _0x262784={};_0x262784[_0x28dbac[_0x2625('0x22')]]={'$like':'%'+_0x31a3c6['query']['filter']+'%'};return _0x262784;}})});}_0x41d152=_[_0x2625('0x33')]({},_0x41d152,_0x31a3c6['options']);var _0x186cd1={'where':_0x41d152['where']};return db[_0x2625('0x34')][_0x2625('0x1c')](_0x186cd1)['then'](function(_0x41d3ef){_0x57750d[_0x2625('0x1c')]=_0x41d3ef;if(_0x31a3c6[_0x2625('0x29')][_0x2625('0x35')]){_0x41d152[_0x2625('0x36')]=[{'all':!![]}];}return db['FreshsalesConfiguration'][_0x2625('0x37')](_0x41d152);})[_0x2625('0x20')](function(_0x45a573){_0x57750d['rows']=_0x45a573;return _0x57750d;})['then'](respondWithFilteredResult(_0x2aaa5a,_0x41d152))[_0x2625('0x38')](handleError(_0x2aaa5a,null));};exports[_0x2625('0x39')]=function(_0x38cca0,_0x421024){var _0xeb1ebe={'raw':![],'where':{'id':_0x38cca0['params']['id']}},_0x306101={};_0x306101['model']=_[_0x2625('0x3a')](db[_0x2625('0x34')][_0x2625('0x25')]);_0x306101[_0x2625('0x29')]=_[_0x2625('0x3a')](_0x38cca0[_0x2625('0x29')]);_0x306101[_0x2625('0x2a')]=_['intersection'](_0x306101[_0x2625('0x28')],_0x306101['query']);_0xeb1ebe['attributes']=_['intersection'](_0x306101[_0x2625('0x28')],qs[_0x2625('0x2d')](_0x38cca0[_0x2625('0x29')][_0x2625('0x2d')]));_0xeb1ebe[_0x2625('0x2c')]=_0xeb1ebe[_0x2625('0x2c')][_0x2625('0x2e')]?_0xeb1ebe['attributes']:_0x306101[_0x2625('0x28')];if(_0x38cca0['query'][_0x2625('0x35')]){_0xeb1ebe[_0x2625('0x36')]=[{'all':!![]}];}_0xeb1ebe=_[_0x2625('0x33')]({},_0xeb1ebe,_0x38cca0[_0x2625('0x3b')]);return db[_0x2625('0x34')][_0x2625('0x3c')](_0xeb1ebe)[_0x2625('0x20')](handleEntityNotFound(_0x421024,null))['then'](respondWithResult(_0x421024,null))[_0x2625('0x38')](handleError(_0x421024,null));};exports[_0x2625('0x3d')]=function(_0x5392b0,_0x43d5b9){return db[_0x2625('0x34')][_0x2625('0x3d')](_0x5392b0['body'],{})[_0x2625('0x20')](respondWithResult(_0x43d5b9,0xc9))[_0x2625('0x38')](handleError(_0x43d5b9,null));};exports[_0x2625('0x3e')]=function(_0x4819de,_0x4905b0){if(_0x4819de[_0x2625('0x3f')]['id']){delete _0x4819de[_0x2625('0x3f')]['id'];}return db['FreshsalesConfiguration'][_0x2625('0x3c')]({'where':{'id':_0x4819de['params']['id']}})[_0x2625('0x20')](handleEntityNotFound(_0x4905b0,null))[_0x2625('0x20')](saveUpdates(_0x4819de[_0x2625('0x3f')],null))['then'](respondWithResult(_0x4905b0,null))[_0x2625('0x38')](handleError(_0x4905b0,null));};exports['destroy']=function(_0x523f54,_0x5088c1){return db[_0x2625('0x34')][_0x2625('0x3c')]({'where':{'id':_0x523f54['params']['id']}})[_0x2625('0x20')](handleEntityNotFound(_0x5088c1,null))[_0x2625('0x20')](removeEntity(_0x5088c1,null))[_0x2625('0x38')](handleError(_0x5088c1,null));};exports[_0x2625('0x40')]=function(_0x54e0d0,_0x62e02f,_0x17a34c){var _0x8c1743={};var _0x116b83={};var _0x2b9159;var _0x3132e4;return db[_0x2625('0x34')][_0x2625('0x41')]({'where':{'id':_0x54e0d0[_0x2625('0x42')]['id']}})[_0x2625('0x20')](handleEntityNotFound(_0x62e02f,null))[_0x2625('0x20')](function(_0x56b8df){if(_0x56b8df){_0x2b9159=_0x56b8df;_0x116b83[_0x2625('0x28')]=_[_0x2625('0x3a')](db[_0x2625('0x43')][_0x2625('0x25')]);_0x116b83['query']=_['keys'](_0x54e0d0[_0x2625('0x29')]);_0x116b83[_0x2625('0x2a')]=_['intersection'](_0x116b83[_0x2625('0x28')],_0x116b83['query']);_0x8c1743[_0x2625('0x2c')]=_[_0x2625('0x2b')](_0x116b83[_0x2625('0x28')],qs[_0x2625('0x2d')](_0x54e0d0[_0x2625('0x29')][_0x2625('0x2d')]));_0x8c1743[_0x2625('0x2c')]=_0x8c1743['attributes'][_0x2625('0x2e')]?_0x8c1743[_0x2625('0x2c')]:_0x116b83['model'];_0x8c1743['order']=qs[_0x2625('0x30')](_0x54e0d0[_0x2625('0x29')][_0x2625('0x30')]);_0x8c1743['where']=qs['filters'](_[_0x2625('0x44')](_0x54e0d0[_0x2625('0x29')],_0x116b83['filters']));if(_0x54e0d0['query'][_0x2625('0x32')]){_0x8c1743[_0x2625('0x31')]=_[_0x2625('0x33')](_0x8c1743[_0x2625('0x31')],{'$or':_[_0x2625('0x24')](_0x8c1743['attributes'],function(_0x5bb703){var _0x5d589b={};_0x5d589b[_0x5bb703]={'$like':'%'+_0x54e0d0[_0x2625('0x29')]['filter']+'%'};return _0x5d589b;})});}_0x8c1743=_['merge']({},_0x8c1743,_0x54e0d0[_0x2625('0x3b')]);return _0x2b9159[_0x2625('0x40')](_0x8c1743);}})[_0x2625('0x20')](function(_0x49a2d8){if(_0x49a2d8){_0x3132e4=_0x49a2d8[_0x2625('0x2e')];if(!_0x54e0d0['query']['hasOwnProperty'](_0x2625('0x45'))){_0x8c1743[_0x2625('0x1a')]=qs[_0x2625('0x1a')](_0x54e0d0[_0x2625('0x29')]['limit']);_0x8c1743[_0x2625('0x19')]=qs[_0x2625('0x19')](_0x54e0d0[_0x2625('0x29')][_0x2625('0x19')]);}return _0x2b9159[_0x2625('0x40')](_0x8c1743);}})[_0x2625('0x20')](function(_0x22b78c){if(_0x22b78c){return _0x22b78c?{'count':_0x3132e4,'rows':_0x22b78c}:null;}})[_0x2625('0x20')](respondWithResult(_0x62e02f,null))['catch'](handleError(_0x62e02f,null));};exports[_0x2625('0x46')]=function(_0x394650,_0x750e7f,_0x34f018){var _0x1332b7={};var _0xc3c27b={};var _0x34a0ee;var _0x2e1bc4;return db[_0x2625('0x34')]['findOne']({'where':{'id':_0x394650[_0x2625('0x42')]['id']}})['then'](handleEntityNotFound(_0x750e7f,null))[_0x2625('0x20')](function(_0x29d28c){if(_0x29d28c){_0x34a0ee=_0x29d28c;_0xc3c27b['model']=_['keys'](db[_0x2625('0x43')][_0x2625('0x25')]);_0xc3c27b['query']=_['keys'](_0x394650[_0x2625('0x29')]);_0xc3c27b[_0x2625('0x2a')]=_[_0x2625('0x2b')](_0xc3c27b[_0x2625('0x28')],_0xc3c27b['query']);_0x1332b7[_0x2625('0x2c')]=_[_0x2625('0x2b')](_0xc3c27b[_0x2625('0x28')],qs[_0x2625('0x2d')](_0x394650[_0x2625('0x29')][_0x2625('0x2d')]));_0x1332b7['attributes']=_0x1332b7[_0x2625('0x2c')][_0x2625('0x2e')]?_0x1332b7[_0x2625('0x2c')]:_0xc3c27b[_0x2625('0x28')];_0x1332b7[_0x2625('0x2f')]=qs[_0x2625('0x30')](_0x394650[_0x2625('0x29')]['sort']);_0x1332b7[_0x2625('0x31')]=qs[_0x2625('0x2a')](_[_0x2625('0x44')](_0x394650[_0x2625('0x29')],_0xc3c27b[_0x2625('0x2a')]));if(_0x394650[_0x2625('0x29')][_0x2625('0x32')]){_0x1332b7[_0x2625('0x31')]=_[_0x2625('0x33')](_0x1332b7[_0x2625('0x31')],{'$or':_[_0x2625('0x24')](_0x1332b7[_0x2625('0x2c')],function(_0x5a1c85){var _0x2d9d77={};_0x2d9d77[_0x5a1c85]={'$like':'%'+_0x394650[_0x2625('0x29')][_0x2625('0x32')]+'%'};return _0x2d9d77;})});}_0x1332b7=_['merge']({},_0x1332b7,_0x394650[_0x2625('0x3b')]);return _0x34a0ee[_0x2625('0x46')](_0x1332b7);}})['then'](function(_0x5c72ca){if(_0x5c72ca){_0x2e1bc4=_0x5c72ca[_0x2625('0x2e')];if(!_0x394650['query'][_0x2625('0x47')](_0x2625('0x45'))){_0x1332b7['limit']=qs['limit'](_0x394650[_0x2625('0x29')]['limit']);_0x1332b7['offset']=qs[_0x2625('0x19')](_0x394650[_0x2625('0x29')][_0x2625('0x19')]);}return _0x34a0ee[_0x2625('0x46')](_0x1332b7);}})[_0x2625('0x20')](function(_0x414283){if(_0x414283){return _0x414283?{'count':_0x2e1bc4,'rows':_0x414283}:null;}})[_0x2625('0x20')](respondWithResult(_0x750e7f,null))[_0x2625('0x38')](handleError(_0x750e7f,null));};exports['getFields']=function(_0x236484,_0x405a9e,_0x32eff4){var _0x4778c8={};var _0x5b4064={};var _0x12a557;var _0xe845eb;return db['FreshsalesConfiguration']['findOne']({'where':{'id':_0x236484[_0x2625('0x42')]['id']}})[_0x2625('0x20')](handleEntityNotFound(_0x405a9e,null))[_0x2625('0x20')](function(_0x28214c){if(_0x28214c){_0x12a557=_0x28214c;_0x5b4064[_0x2625('0x28')]=_['keys'](db['FreshsalesField'][_0x2625('0x25')]);_0x5b4064[_0x2625('0x29')]=_[_0x2625('0x3a')](_0x236484['query']);_0x5b4064[_0x2625('0x2a')]=_['intersection'](_0x5b4064[_0x2625('0x28')],_0x5b4064[_0x2625('0x29')]);_0x4778c8[_0x2625('0x2c')]=_['intersection'](_0x5b4064['model'],qs[_0x2625('0x2d')](_0x236484[_0x2625('0x29')][_0x2625('0x2d')]));_0x4778c8[_0x2625('0x2c')]=_0x4778c8[_0x2625('0x2c')]['length']?_0x4778c8['attributes']:_0x5b4064[_0x2625('0x28')];_0x4778c8[_0x2625('0x2f')]=qs[_0x2625('0x30')](_0x236484[_0x2625('0x29')][_0x2625('0x30')]);_0x4778c8[_0x2625('0x31')]=qs[_0x2625('0x2a')](_[_0x2625('0x44')](_0x236484[_0x2625('0x29')],_0x5b4064[_0x2625('0x2a')]));if(_0x236484['query'][_0x2625('0x32')]){_0x4778c8[_0x2625('0x31')]=_[_0x2625('0x33')](_0x4778c8[_0x2625('0x31')],{'$or':_['map'](_0x4778c8['attributes'],function(_0x20311c){var _0x252b3b={};_0x252b3b[_0x20311c]={'$like':'%'+_0x236484[_0x2625('0x29')][_0x2625('0x32')]+'%'};return _0x252b3b;})});}_0x4778c8=_[_0x2625('0x33')]({},_0x4778c8,_0x236484[_0x2625('0x3b')]);return _0x12a557[_0x2625('0x48')](_0x4778c8);}})[_0x2625('0x20')](function(_0x1fd951){if(_0x1fd951){_0xe845eb=_0x1fd951['length'];if(!_0x236484[_0x2625('0x29')]['hasOwnProperty'](_0x2625('0x45'))){_0x4778c8[_0x2625('0x1a')]=qs[_0x2625('0x1a')](_0x236484[_0x2625('0x29')][_0x2625('0x1a')]);_0x4778c8[_0x2625('0x19')]=qs[_0x2625('0x19')](_0x236484[_0x2625('0x29')][_0x2625('0x19')]);}return _0x12a557['getFields'](_0x4778c8);}})['then'](function(_0x20c469){if(_0x20c469){return _0x20c469?{'count':_0xe845eb,'rows':_0x20c469}:null;}})[_0x2625('0x20')](respondWithResult(_0x405a9e,null))['catch'](handleError(_0x405a9e,null));};