Built motion from commit (unavailable).|2.5.21
[motion2.git] / server / api / intFreshsalesAccount / intFreshsalesAccount.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 _0xf4eb=['body','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshsalesField','getFields','remoteUri','slice','substring','lastIndexOf','GET','format','%s%s','Token\x20token=','apiKey','users','Requested\x20Resource\x20not\x20Found','test','statusCode','send','Wrong\x20credentials','html-pdf','request-promise','mustache','util','path','sox','to-csv','ejs','lodash','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../components/integrations/configuration','http','request','then','FreshsalesAccount,\x20%s,\x20%s','request\x20sent','debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','sendStatus','status','json','count','offset','limit','Content-Range','apply','reject','save','update','destroy','stack','name','index','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','where','merge','FreshsalesAccount','includeAll','include','findAll','rows','catch','show','params','keys','options','find','create','findOne','FreshsalesConfiguration','getConfigurations','addConfiguration'];(function(_0x4de2ce,_0x3a8075){var _0xc93f1f=function(_0x3c453f){while(--_0x3c453f){_0x4de2ce['push'](_0x4de2ce['shift']());}};_0xc93f1f(++_0x3a8075);}(_0xf4eb,0xec));var _0xbf4e=function(_0x1c05d8,_0x4c91cc){_0x1c05d8=_0x1c05d8-0x0;var _0x2af00d=_0xf4eb[_0x1c05d8];return _0x2af00d;};'use strict';var pdf=require(_0xbf4e('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xbf4e('0x1'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xbf4e('0x2'));var util=require(_0xbf4e('0x3'));var path=require(_0xbf4e('0x4'));var sox=require(_0xbf4e('0x5'));var csv=require(_0xbf4e('0x6'));var ejs=require(_0xbf4e('0x7'));var fs=require('fs');var _=require(_0xbf4e('0x8'));var squel=require('squel');var crypto=require(_0xbf4e('0x9'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xbf4e('0x6'));var querystring=require(_0xbf4e('0xa'));var Papa=require(_0xbf4e('0xb'));var Redis=require(_0xbf4e('0xc'));var authService=require(_0xbf4e('0xd'));var qs=require(_0xbf4e('0xe'));var as=require(_0xbf4e('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xbf4e('0x10'));var utils=require('../../config/utils');var config=require(_0xbf4e('0x11'));var licenseUtil=require(_0xbf4e('0x12'));var db=require('../../mysqldb')['db'];var integrations=require(_0xbf4e('0x13'));var jayson=require('jayson/promise');var client=jayson['client'][_0xbf4e('0x14')]({'port':0x232a});function respondWithRpcPromise(_0x46c79c,_0x1e029b,_0x302841,_0x3b74bd){return new BPromise(function(_0x61bd54,_0x4984b4){var _0x59fb15=_0x3b74bd||client;return _0x59fb15[_0xbf4e('0x15')](_0x46c79c,_0x302841)[_0xbf4e('0x16')](function(_0x28fc6b){logger['info'](_0xbf4e('0x17'),_0x1e029b,_0xbf4e('0x18'));logger[_0xbf4e('0x19')](_0xbf4e('0x1a'),_0x1e029b,'request\x20sent',JSON[_0xbf4e('0x1b')](_0x28fc6b));if(_0x28fc6b['error']){if(_0x28fc6b['error']['code']===0x1f4){logger['error'](_0xbf4e('0x17'),_0x1e029b,_0x28fc6b[_0xbf4e('0x1c')][_0xbf4e('0x1d')]);return _0x4984b4(_0x28fc6b['error']['message']);}logger[_0xbf4e('0x1c')](_0xbf4e('0x17'),_0x1e029b,_0x28fc6b[_0xbf4e('0x1c')][_0xbf4e('0x1d')]);return _0x61bd54(_0x28fc6b[_0xbf4e('0x1c')][_0xbf4e('0x1d')]);}else{logger[_0xbf4e('0x1e')](_0xbf4e('0x17'),_0x1e029b,_0xbf4e('0x18'));_0x61bd54(_0x28fc6b[_0xbf4e('0x1f')][_0xbf4e('0x1d')]);}})['catch'](function(_0x1ff2ec){logger[_0xbf4e('0x1c')]('FreshsalesAccount,\x20%s,\x20%s',_0x1e029b,_0x1ff2ec);_0x4984b4(_0x1ff2ec);});});}function respondWithStatusCode(_0x31e3f5,_0x30994d){_0x30994d=_0x30994d||0xcc;return function(_0x114412){if(_0x114412){return _0x31e3f5[_0xbf4e('0x20')](_0x30994d);}return _0x31e3f5[_0xbf4e('0x21')](_0x30994d)['end']();};}function respondWithResult(_0x90635e,_0x36688a){_0x36688a=_0x36688a||0xc8;return function(_0x3d6863){if(_0x3d6863){return _0x90635e['status'](_0x36688a)[_0xbf4e('0x22')](_0x3d6863);}};}function respondWithFilteredResult(_0x5e08b1,_0x5bcf71){return function(_0x2bfccf){if(_0x2bfccf){var _0x5a0a9b=_0x2bfccf[_0xbf4e('0x23')],_0x38c923=_0x5bcf71['offset'],_0x315df3=_0x5bcf71[_0xbf4e('0x24')]+_0x5bcf71[_0xbf4e('0x25')],_0x4021a9;if(_0x315df3>=_0x5a0a9b){_0x315df3=_0x5a0a9b;_0x4021a9=0xc8;}else{_0x4021a9=0xce;}_0x5e08b1[_0xbf4e('0x21')](_0x4021a9);return _0x5e08b1['set'](_0xbf4e('0x26'),_0x38c923+'-'+_0x315df3+'/'+_0x5a0a9b)['json'](_0x2bfccf);}return null;};}function patchUpdates(_0x1dfa81){return function(_0x1421e1){try{jsonpatch[_0xbf4e('0x27')](_0x1421e1,_0x1dfa81,!![]);}catch(_0x498dbd){return BPromise[_0xbf4e('0x28')](_0x498dbd);}return _0x1421e1[_0xbf4e('0x29')]();};}function saveUpdates(_0x2f3cf8,_0xc7ca87){return function(_0x2343dd){if(_0x2343dd){return _0x2343dd[_0xbf4e('0x2a')](_0x2f3cf8)['then'](function(_0x35c82d){return _0x35c82d;});}return null;};}function removeEntity(_0x154576,_0x5e32c0){return function(_0x3d8959){if(_0x3d8959){return _0x3d8959[_0xbf4e('0x2b')]()['then'](function(){_0x154576[_0xbf4e('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x10722a,_0x59b161){return function(_0x2f49d8){if(!_0x2f49d8){_0x10722a[_0xbf4e('0x20')](0x194);}return _0x2f49d8;};}function handleError(_0x83e0ef,_0x5b3b28){_0x5b3b28=_0x5b3b28||0x1f4;return function(_0x2716b7){logger[_0xbf4e('0x1c')](_0x2716b7[_0xbf4e('0x2c')]);if(_0x2716b7[_0xbf4e('0x2d')]){delete _0x2716b7[_0xbf4e('0x2d')];}_0x83e0ef[_0xbf4e('0x21')](_0x5b3b28)['send'](_0x2716b7);};}exports[_0xbf4e('0x2e')]=function(_0x3dbb2b,_0x25b837){var _0x3bba55={},_0x31d49a={},_0x5b7ea1={'count':0x0,'rows':[]};var _0x4864bd=_['map'](db['FreshsalesAccount'][_0xbf4e('0x2f')],function(_0x17a1a1){return{'name':_0x17a1a1[_0xbf4e('0x30')],'type':_0x17a1a1[_0xbf4e('0x31')][_0xbf4e('0x32')]};});_0x31d49a[_0xbf4e('0x33')]=_[_0xbf4e('0x34')](_0x4864bd,_0xbf4e('0x2d'));_0x31d49a[_0xbf4e('0x35')]=_['keys'](_0x3dbb2b['query']);_0x31d49a[_0xbf4e('0x36')]=_[_0xbf4e('0x37')](_0x31d49a[_0xbf4e('0x33')],_0x31d49a['query']);_0x3bba55[_0xbf4e('0x38')]=_['intersection'](_0x31d49a[_0xbf4e('0x33')],qs[_0xbf4e('0x39')](_0x3dbb2b[_0xbf4e('0x35')][_0xbf4e('0x39')]));_0x3bba55['attributes']=_0x3bba55[_0xbf4e('0x38')][_0xbf4e('0x3a')]?_0x3bba55[_0xbf4e('0x38')]:_0x31d49a[_0xbf4e('0x33')];if(!_0x3dbb2b['query'][_0xbf4e('0x3b')](_0xbf4e('0x3c'))){_0x3bba55[_0xbf4e('0x25')]=qs[_0xbf4e('0x25')](_0x3dbb2b[_0xbf4e('0x35')][_0xbf4e('0x25')]);_0x3bba55[_0xbf4e('0x24')]=qs['offset'](_0x3dbb2b[_0xbf4e('0x35')][_0xbf4e('0x24')]);}_0x3bba55['order']=qs['sort'](_0x3dbb2b[_0xbf4e('0x35')][_0xbf4e('0x3d')]);_0x3bba55['where']=qs['filters'](_[_0xbf4e('0x3e')](_0x3dbb2b[_0xbf4e('0x35')],_0x31d49a[_0xbf4e('0x36')]),_0x4864bd);if(_0x3dbb2b[_0xbf4e('0x35')][_0xbf4e('0x3f')]){_0x3bba55[_0xbf4e('0x40')]=_['merge'](_0x3bba55[_0xbf4e('0x40')],{'$or':_[_0xbf4e('0x34')](_0x4864bd,function(_0x4d31b6){if(_0x4d31b6['type']!=='VIRTUAL'){var _0x53d7dd={};_0x53d7dd[_0x4d31b6[_0xbf4e('0x2d')]]={'$like':'%'+_0x3dbb2b['query'][_0xbf4e('0x3f')]+'%'};return _0x53d7dd;}})});}_0x3bba55=_[_0xbf4e('0x41')]({},_0x3bba55,_0x3dbb2b['options']);var _0x5cd134={'where':_0x3bba55[_0xbf4e('0x40')]};return db[_0xbf4e('0x42')][_0xbf4e('0x23')](_0x5cd134)[_0xbf4e('0x16')](function(_0x8ab634){_0x5b7ea1['count']=_0x8ab634;if(_0x3dbb2b[_0xbf4e('0x35')][_0xbf4e('0x43')]){_0x3bba55[_0xbf4e('0x44')]=[{'all':!![]}];}return db[_0xbf4e('0x42')][_0xbf4e('0x45')](_0x3bba55);})[_0xbf4e('0x16')](function(_0x4060c7){_0x5b7ea1[_0xbf4e('0x46')]=_0x4060c7;return _0x5b7ea1;})['then'](respondWithFilteredResult(_0x25b837,_0x3bba55))[_0xbf4e('0x47')](handleError(_0x25b837,null));};exports[_0xbf4e('0x48')]=function(_0x1833c1,_0x32bed6){var _0x9bc1fe={'raw':![],'where':{'id':_0x1833c1[_0xbf4e('0x49')]['id']}},_0x1198e8={};_0x1198e8[_0xbf4e('0x33')]=_[_0xbf4e('0x4a')](db[_0xbf4e('0x42')][_0xbf4e('0x2f')]);_0x1198e8[_0xbf4e('0x35')]=_[_0xbf4e('0x4a')](_0x1833c1[_0xbf4e('0x35')]);_0x1198e8[_0xbf4e('0x36')]=_[_0xbf4e('0x37')](_0x1198e8[_0xbf4e('0x33')],_0x1198e8['query']);_0x9bc1fe[_0xbf4e('0x38')]=_[_0xbf4e('0x37')](_0x1198e8[_0xbf4e('0x33')],qs['fields'](_0x1833c1[_0xbf4e('0x35')]['fields']));_0x9bc1fe['attributes']=_0x9bc1fe[_0xbf4e('0x38')][_0xbf4e('0x3a')]?_0x9bc1fe['attributes']:_0x1198e8[_0xbf4e('0x33')];if(_0x1833c1[_0xbf4e('0x35')][_0xbf4e('0x43')]){_0x9bc1fe[_0xbf4e('0x44')]=[{'all':!![]}];}_0x9bc1fe=_[_0xbf4e('0x41')]({},_0x9bc1fe,_0x1833c1[_0xbf4e('0x4b')]);return db[_0xbf4e('0x42')][_0xbf4e('0x4c')](_0x9bc1fe)[_0xbf4e('0x16')](handleEntityNotFound(_0x32bed6,null))[_0xbf4e('0x16')](respondWithResult(_0x32bed6,null))[_0xbf4e('0x47')](handleError(_0x32bed6,null));};exports['create']=function(_0x5d6324,_0xad8934){return db[_0xbf4e('0x42')][_0xbf4e('0x4d')](_0x5d6324['body'],{})[_0xbf4e('0x16')](respondWithResult(_0xad8934,0xc9))[_0xbf4e('0x47')](handleError(_0xad8934,null));};exports['update']=function(_0x545db7,_0x36a87d){if(_0x545db7['body']['id']){delete _0x545db7['body']['id'];}return db[_0xbf4e('0x42')][_0xbf4e('0x4c')]({'where':{'id':_0x545db7[_0xbf4e('0x49')]['id']}})[_0xbf4e('0x16')](handleEntityNotFound(_0x36a87d,null))[_0xbf4e('0x16')](saveUpdates(_0x545db7['body'],null))[_0xbf4e('0x16')](respondWithResult(_0x36a87d,null))['catch'](handleError(_0x36a87d,null));};exports[_0xbf4e('0x2b')]=function(_0x53875e,_0xa3f71b){return db['FreshsalesAccount'][_0xbf4e('0x4c')]({'where':{'id':_0x53875e[_0xbf4e('0x49')]['id']}})[_0xbf4e('0x16')](handleEntityNotFound(_0xa3f71b,null))[_0xbf4e('0x16')](removeEntity(_0xa3f71b,null))[_0xbf4e('0x47')](handleError(_0xa3f71b,null));};exports['getConfigurations']=function(_0x55a17d,_0x5a0f4a,_0x52ea6e){var _0x419a69={};var _0x453411={};var _0x5cfc26;var _0x200096;return db[_0xbf4e('0x42')][_0xbf4e('0x4e')]({'where':{'id':_0x55a17d[_0xbf4e('0x49')]['id']}})[_0xbf4e('0x16')](handleEntityNotFound(_0x5a0f4a,null))[_0xbf4e('0x16')](function(_0x34bbf6){if(_0x34bbf6){_0x5cfc26=_0x34bbf6;_0x453411['model']=_[_0xbf4e('0x4a')](db[_0xbf4e('0x4f')][_0xbf4e('0x2f')]);_0x453411['query']=_['keys'](_0x55a17d[_0xbf4e('0x35')]);_0x453411[_0xbf4e('0x36')]=_[_0xbf4e('0x37')](_0x453411['model'],_0x453411[_0xbf4e('0x35')]);_0x419a69[_0xbf4e('0x38')]=_[_0xbf4e('0x37')](_0x453411[_0xbf4e('0x33')],qs[_0xbf4e('0x39')](_0x55a17d[_0xbf4e('0x35')][_0xbf4e('0x39')]));_0x419a69[_0xbf4e('0x38')]=_0x419a69[_0xbf4e('0x38')][_0xbf4e('0x3a')]?_0x419a69[_0xbf4e('0x38')]:_0x453411[_0xbf4e('0x33')];_0x419a69['order']=qs[_0xbf4e('0x3d')](_0x55a17d['query'][_0xbf4e('0x3d')]);_0x419a69[_0xbf4e('0x40')]=qs[_0xbf4e('0x36')](_[_0xbf4e('0x3e')](_0x55a17d[_0xbf4e('0x35')],_0x453411[_0xbf4e('0x36')]));if(_0x55a17d[_0xbf4e('0x35')][_0xbf4e('0x3f')]){_0x419a69['where']=_[_0xbf4e('0x41')](_0x419a69[_0xbf4e('0x40')],{'$or':_[_0xbf4e('0x34')](_0x419a69[_0xbf4e('0x38')],function(_0x1c0ecb){var _0x5f3deb={};_0x5f3deb[_0x1c0ecb]={'$like':'%'+_0x55a17d[_0xbf4e('0x35')][_0xbf4e('0x3f')]+'%'};return _0x5f3deb;})});}_0x419a69=_[_0xbf4e('0x41')]({},_0x419a69,_0x55a17d[_0xbf4e('0x4b')]);return _0x5cfc26[_0xbf4e('0x50')](_0x419a69);}})[_0xbf4e('0x16')](function(_0x4bd102){if(_0x4bd102){_0x200096=_0x4bd102[_0xbf4e('0x3a')];if(!_0x55a17d['query'][_0xbf4e('0x3b')](_0xbf4e('0x3c'))){_0x419a69[_0xbf4e('0x25')]=qs[_0xbf4e('0x25')](_0x55a17d['query'][_0xbf4e('0x25')]);_0x419a69['offset']=qs['offset'](_0x55a17d[_0xbf4e('0x35')][_0xbf4e('0x24')]);}return _0x5cfc26[_0xbf4e('0x50')](_0x419a69);}})['then'](function(_0x1c0b76){if(_0x1c0b76){return _0x1c0b76?{'count':_0x200096,'rows':_0x1c0b76}:null;}})[_0xbf4e('0x16')](respondWithResult(_0x5a0f4a,null))['catch'](handleError(_0x5a0f4a,null));};exports[_0xbf4e('0x51')]=function(_0x42df5f,_0x4405b9,_0x137224){if(_0x42df5f[_0xbf4e('0x52')]['id']){delete _0x42df5f[_0xbf4e('0x52')]['id'];}return db[_0xbf4e('0x42')][_0xbf4e('0x4e')]({'where':{'id':_0x42df5f[_0xbf4e('0x49')]['id']}})['then'](handleEntityNotFound(_0x4405b9,null))[_0xbf4e('0x16')](function(_0x1e77bf){if(_0x1e77bf){_0x42df5f[_0xbf4e('0x52')][_0xbf4e('0x53')]=_0x1e77bf['id'];_0x42df5f['body'][_0xbf4e('0x54')]=integrations[_0xbf4e('0x55')](_0x42df5f[_0xbf4e('0x52')][_0xbf4e('0x56')],_0x42df5f[_0xbf4e('0x52')][_0xbf4e('0x31')]);_0x42df5f[_0xbf4e('0x52')][_0xbf4e('0x57')]=integrations[_0xbf4e('0x58')](_0x42df5f['body'][_0xbf4e('0x56')],_0x42df5f['body'][_0xbf4e('0x31')]);return db[_0xbf4e('0x4f')][_0xbf4e('0x4d')](_0x42df5f[_0xbf4e('0x52')],{'include':[{'model':db[_0xbf4e('0x59')],'as':'Subjects'},{'model':db[_0xbf4e('0x59')],'as':_0xbf4e('0x57')}]});}return null;})[_0xbf4e('0x16')](respondWithResult(_0x4405b9,null))['catch'](handleError(_0x4405b9,null));};exports[_0xbf4e('0x5a')]=function(_0xa677bd,_0x12b3d6,_0x53e836){var _0x25b9de='';var _0x468f43='';return db[_0xbf4e('0x42')][_0xbf4e('0x4e')]({'where':{'id':_0xa677bd[_0xbf4e('0x49')]['id']},'attributes':['id','username',_0xbf4e('0x5b'),'apiKey']})[_0xbf4e('0x16')](handleEntityNotFound(_0x12b3d6,null))['then'](function(_0x19a7e9){if(_0x19a7e9){_0x468f43=_0x19a7e9['username'];_0x25b9de=_0x19a7e9[_0xbf4e('0x5b')];var _0x52d706=_0x19a7e9[_0xbf4e('0x5b')][_0xbf4e('0x5c')](-0x1);if(_0x52d706==='/'){_0x25b9de=_0x25b9de[_0xbf4e('0x5d')](0x0,_0x25b9de[_0xbf4e('0x5e')](_0x52d706));}return rp({'method':_0xbf4e('0x5f'),'uri':util[_0xbf4e('0x60')](_0xbf4e('0x61'),_0x25b9de,'/api/selector/owners'),'headers':{'Authorization':_0xbf4e('0x62')+_0x19a7e9[_0xbf4e('0x63')]},'json':!![]});}})[_0xbf4e('0x16')](function(_0x2c99f6){if(_0x2c99f6){var _0x1bff2e=_0x2c99f6[_0xbf4e('0x64')];var _0x492f50=![];var _0x207d2f=null;for(_0x207d2f=0x0;_0x207d2f<_0x1bff2e[_0xbf4e('0x3a')];_0x207d2f++){if(_0x1bff2e[_0x207d2f]['email']===_0x468f43){_0x492f50=!![];}}if(_0x492f50){return!![];}else{throw new Error({'statusCode':0x194,'message':_0xbf4e('0x65')});}}})[_0xbf4e('0x16')](respondWithResult(_0x12b3d6,null))[_0xbf4e('0x47')](function(_0xb6d122){var _0x19ec7e=_0xa677bd[_0xbf4e('0x35')][_0xbf4e('0x66')]?0x1f4:_0xb6d122[_0xbf4e('0x67')]||0x1f4;logger[_0xbf4e('0x1c')]('getFields,\x20%s,\x20%s,\x20%s',_0xbf4e('0x5a'),_0x19ec7e,JSON[_0xbf4e('0x1b')](_0xb6d122));delete _0xb6d122[_0xbf4e('0x2d')];if(_0x19ec7e===0x191){_0x19ec7e=0x190;}_0x12b3d6['status'](_0x19ec7e)[_0xbf4e('0x68')](_0xa677bd[_0xbf4e('0x35')]['test']?{'message':_0xbf4e('0x69'),'statusCode':_0xb6d122[_0xbf4e('0x67')]}:_0xb6d122);});};