Built motion from commit a61a4a20.|2.5.46
[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 _0xffa9=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../components/integrations/configuration','status','end','json','offset','limit','undefined','count','set','Content-Range','reject','save','update','then','error','stack','name','index','map','FreshsalesAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','pick','filter','where','VIRTUAL','merge','includeAll','include','findAll','rows','catch','show','params','options','find','create','body','destroy','getConfigurations','FreshsalesConfiguration','sort','hasOwnProperty','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshsalesField','getFields','username','apiKey','remoteUri','slice','substring','lastIndexOf','GET','format','Token\x20token=','users','email','Requested\x20Resource\x20not\x20Found','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse'];(function(_0x4f80a7,_0x40d48e){var _0x57f272=function(_0x578773){while(--_0x578773){_0x4f80a7['push'](_0x4f80a7['shift']());}};_0x57f272(++_0x40d48e);}(_0xffa9,0xbf));var _0x9ffa=function(_0x20bbe5,_0x189723){_0x20bbe5=_0x20bbe5-0x0;var _0x1d94c7=_0xffa9[_0x20bbe5];return _0x1d94c7;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9ffa('0x0'));var zipdir=require(_0x9ffa('0x1'));var jsonpatch=require(_0x9ffa('0x2'));var rp=require(_0x9ffa('0x3'));var moment=require(_0x9ffa('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9ffa('0x5'));var util=require(_0x9ffa('0x6'));var path=require(_0x9ffa('0x7'));var sox=require(_0x9ffa('0x8'));var csv=require(_0x9ffa('0x9'));var ejs=require(_0x9ffa('0xa'));var fs=require('fs');var fs_extra=require(_0x9ffa('0xb'));var _=require('lodash');var squel=require(_0x9ffa('0xc'));var crypto=require(_0x9ffa('0xd'));var jsforce=require(_0x9ffa('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x9ffa('0x9'));var querystring=require(_0x9ffa('0xf'));var Papa=require(_0x9ffa('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x9ffa('0x11'));var as=require(_0x9ffa('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9ffa('0x13'))(_0x9ffa('0x14'));var utils=require('../../config/utils');var config=require(_0x9ffa('0x15'));var licenseUtil=require(_0x9ffa('0x16'));var db=require('../../mysqldb')['db'];var integrations=require(_0x9ffa('0x17'));function respondWithStatusCode(_0x558540,_0x249b40){_0x249b40=_0x249b40||0xcc;return function(_0x32a2d7){if(_0x32a2d7){return _0x558540['sendStatus'](_0x249b40);}return _0x558540[_0x9ffa('0x18')](_0x249b40)[_0x9ffa('0x19')]();};}function respondWithResult(_0x53d9db,_0x13811d){_0x13811d=_0x13811d||0xc8;return function(_0x4e266e){if(_0x4e266e){return _0x53d9db[_0x9ffa('0x18')](_0x13811d)[_0x9ffa('0x1a')](_0x4e266e);}};}function respondWithFilteredResult(_0x4696a0,_0x460948){return function(_0x32896d){if(_0x32896d){var _0x5c2cd2=typeof _0x460948[_0x9ffa('0x1b')]==='undefined'&&typeof _0x460948[_0x9ffa('0x1c')]===_0x9ffa('0x1d');var _0x14f19e=_0x32896d['count'];var _0x1ad353=_0x5c2cd2?0x0:_0x460948[_0x9ffa('0x1b')];var _0x4c81bb=_0x5c2cd2?_0x32896d[_0x9ffa('0x1e')]:_0x460948[_0x9ffa('0x1b')]+_0x460948[_0x9ffa('0x1c')];var _0x2b43b5;if(_0x4c81bb>=_0x14f19e){_0x4c81bb=_0x14f19e;_0x2b43b5=0xc8;}else{_0x2b43b5=0xce;}_0x4696a0['status'](_0x2b43b5);return _0x4696a0[_0x9ffa('0x1f')](_0x9ffa('0x20'),_0x1ad353+'-'+_0x4c81bb+'/'+_0x14f19e)[_0x9ffa('0x1a')](_0x32896d);}return null;};}function patchUpdates(_0x5f106f){return function(_0x29613e){try{jsonpatch['apply'](_0x29613e,_0x5f106f,!![]);}catch(_0x3ec5d4){return BPromise[_0x9ffa('0x21')](_0x3ec5d4);}return _0x29613e[_0x9ffa('0x22')]();};}function saveUpdates(_0x477c3b,_0x55f6d6){return function(_0x41e6b5){if(_0x41e6b5){return _0x41e6b5[_0x9ffa('0x23')](_0x477c3b)[_0x9ffa('0x24')](function(_0x205c1c){return _0x205c1c;});}return null;};}function removeEntity(_0x32d3fa,_0x52f95c){return function(_0x4cfbde){if(_0x4cfbde){return _0x4cfbde['destroy']()[_0x9ffa('0x24')](function(){_0x32d3fa[_0x9ffa('0x18')](0xcc)[_0x9ffa('0x19')]();});}};}function handleEntityNotFound(_0x495ad0,_0x3781e2){return function(_0x1f97fb){if(!_0x1f97fb){_0x495ad0['sendStatus'](0x194);}return _0x1f97fb;};}function handleError(_0xab5ca0,_0xabebe6){_0xabebe6=_0xabebe6||0x1f4;return function(_0x156a82){logger[_0x9ffa('0x25')](_0x156a82[_0x9ffa('0x26')]);if(_0x156a82[_0x9ffa('0x27')]){delete _0x156a82[_0x9ffa('0x27')];}_0xab5ca0[_0x9ffa('0x18')](_0xabebe6)['send'](_0x156a82);};}exports[_0x9ffa('0x28')]=function(_0xe928b3,_0x4bdba1){var _0x185abf={},_0x128560={},_0x5ca942={'count':0x0,'rows':[]};var _0x5ea141=_[_0x9ffa('0x29')](db[_0x9ffa('0x2a')][_0x9ffa('0x2b')],function(_0x5f1c7f){return{'name':_0x5f1c7f[_0x9ffa('0x2c')],'type':_0x5f1c7f[_0x9ffa('0x2d')][_0x9ffa('0x2e')]};});_0x128560[_0x9ffa('0x2f')]=_['map'](_0x5ea141,_0x9ffa('0x27'));_0x128560[_0x9ffa('0x30')]=_[_0x9ffa('0x31')](_0xe928b3[_0x9ffa('0x30')]);_0x128560[_0x9ffa('0x32')]=_[_0x9ffa('0x33')](_0x128560['model'],_0x128560[_0x9ffa('0x30')]);_0x185abf[_0x9ffa('0x34')]=_['intersection'](_0x128560[_0x9ffa('0x2f')],qs[_0x9ffa('0x35')](_0xe928b3[_0x9ffa('0x30')][_0x9ffa('0x35')]));_0x185abf[_0x9ffa('0x34')]=_0x185abf[_0x9ffa('0x34')][_0x9ffa('0x36')]?_0x185abf[_0x9ffa('0x34')]:_0x128560[_0x9ffa('0x2f')];if(!_0xe928b3[_0x9ffa('0x30')]['hasOwnProperty'](_0x9ffa('0x37'))){_0x185abf[_0x9ffa('0x1c')]=qs[_0x9ffa('0x1c')](_0xe928b3[_0x9ffa('0x30')]['limit']);_0x185abf[_0x9ffa('0x1b')]=qs[_0x9ffa('0x1b')](_0xe928b3[_0x9ffa('0x30')][_0x9ffa('0x1b')]);}_0x185abf['order']=qs['sort'](_0xe928b3['query']['sort']);_0x185abf['where']=qs[_0x9ffa('0x32')](_[_0x9ffa('0x38')](_0xe928b3[_0x9ffa('0x30')],_0x128560[_0x9ffa('0x32')]),_0x5ea141);if(_0xe928b3[_0x9ffa('0x30')][_0x9ffa('0x39')]){_0x185abf['where']=_['merge'](_0x185abf[_0x9ffa('0x3a')],{'$or':_[_0x9ffa('0x29')](_0x5ea141,function(_0x55a017){if(_0x55a017['type']!==_0x9ffa('0x3b')){var _0x33b8b1={};_0x33b8b1[_0x55a017[_0x9ffa('0x27')]]={'$like':'%'+_0xe928b3['query'][_0x9ffa('0x39')]+'%'};return _0x33b8b1;}})});}_0x185abf=_[_0x9ffa('0x3c')]({},_0x185abf,_0xe928b3['options']);var _0x51dfe1={'where':_0x185abf[_0x9ffa('0x3a')]};return db[_0x9ffa('0x2a')][_0x9ffa('0x1e')](_0x51dfe1)[_0x9ffa('0x24')](function(_0x559291){_0x5ca942['count']=_0x559291;if(_0xe928b3['query'][_0x9ffa('0x3d')]){_0x185abf[_0x9ffa('0x3e')]=[{'all':!![]}];}return db[_0x9ffa('0x2a')][_0x9ffa('0x3f')](_0x185abf);})['then'](function(_0x250128){_0x5ca942[_0x9ffa('0x40')]=_0x250128;return _0x5ca942;})[_0x9ffa('0x24')](respondWithFilteredResult(_0x4bdba1,_0x185abf))[_0x9ffa('0x41')](handleError(_0x4bdba1,null));};exports[_0x9ffa('0x42')]=function(_0x22a5d4,_0xb837ec){var _0x59fcf5={'raw':![],'where':{'id':_0x22a5d4[_0x9ffa('0x43')]['id']}},_0x48b171={};_0x48b171[_0x9ffa('0x2f')]=_[_0x9ffa('0x31')](db[_0x9ffa('0x2a')]['rawAttributes']);_0x48b171[_0x9ffa('0x30')]=_[_0x9ffa('0x31')](_0x22a5d4[_0x9ffa('0x30')]);_0x48b171[_0x9ffa('0x32')]=_[_0x9ffa('0x33')](_0x48b171[_0x9ffa('0x2f')],_0x48b171[_0x9ffa('0x30')]);_0x59fcf5[_0x9ffa('0x34')]=_[_0x9ffa('0x33')](_0x48b171['model'],qs['fields'](_0x22a5d4[_0x9ffa('0x30')]['fields']));_0x59fcf5['attributes']=_0x59fcf5[_0x9ffa('0x34')][_0x9ffa('0x36')]?_0x59fcf5[_0x9ffa('0x34')]:_0x48b171[_0x9ffa('0x2f')];if(_0x22a5d4['query'][_0x9ffa('0x3d')]){_0x59fcf5[_0x9ffa('0x3e')]=[{'all':!![]}];}_0x59fcf5=_[_0x9ffa('0x3c')]({},_0x59fcf5,_0x22a5d4[_0x9ffa('0x44')]);return db[_0x9ffa('0x2a')][_0x9ffa('0x45')](_0x59fcf5)[_0x9ffa('0x24')](handleEntityNotFound(_0xb837ec,null))[_0x9ffa('0x24')](respondWithResult(_0xb837ec,null))[_0x9ffa('0x41')](handleError(_0xb837ec,null));};exports[_0x9ffa('0x46')]=function(_0xbf2799,_0x3a6309){return db[_0x9ffa('0x2a')]['create'](_0xbf2799[_0x9ffa('0x47')],{})['then'](respondWithResult(_0x3a6309,0xc9))[_0x9ffa('0x41')](handleError(_0x3a6309,null));};exports[_0x9ffa('0x23')]=function(_0x82ac89,_0x4d8b80){if(_0x82ac89[_0x9ffa('0x47')]['id']){delete _0x82ac89[_0x9ffa('0x47')]['id'];}return db[_0x9ffa('0x2a')][_0x9ffa('0x45')]({'where':{'id':_0x82ac89[_0x9ffa('0x43')]['id']}})['then'](handleEntityNotFound(_0x4d8b80,null))[_0x9ffa('0x24')](saveUpdates(_0x82ac89[_0x9ffa('0x47')],null))[_0x9ffa('0x24')](respondWithResult(_0x4d8b80,null))[_0x9ffa('0x41')](handleError(_0x4d8b80,null));};exports[_0x9ffa('0x48')]=function(_0x550d5c,_0x10e67b){return db[_0x9ffa('0x2a')][_0x9ffa('0x45')]({'where':{'id':_0x550d5c[_0x9ffa('0x43')]['id']}})[_0x9ffa('0x24')](handleEntityNotFound(_0x10e67b,null))[_0x9ffa('0x24')](removeEntity(_0x10e67b,null))[_0x9ffa('0x41')](handleError(_0x10e67b,null));};exports[_0x9ffa('0x49')]=function(_0x5524a1,_0x115fe2,_0x539a6){var _0x542cc6={};var _0x59f526={};var _0x3f1ae2;var _0x360e78;return db['FreshsalesAccount']['findOne']({'where':{'id':_0x5524a1[_0x9ffa('0x43')]['id']}})[_0x9ffa('0x24')](handleEntityNotFound(_0x115fe2,null))[_0x9ffa('0x24')](function(_0x4d9123){if(_0x4d9123){_0x3f1ae2=_0x4d9123;_0x59f526[_0x9ffa('0x2f')]=_[_0x9ffa('0x31')](db[_0x9ffa('0x4a')]['rawAttributes']);_0x59f526[_0x9ffa('0x30')]=_[_0x9ffa('0x31')](_0x5524a1[_0x9ffa('0x30')]);_0x59f526['filters']=_[_0x9ffa('0x33')](_0x59f526['model'],_0x59f526['query']);_0x542cc6[_0x9ffa('0x34')]=_[_0x9ffa('0x33')](_0x59f526[_0x9ffa('0x2f')],qs['fields'](_0x5524a1[_0x9ffa('0x30')][_0x9ffa('0x35')]));_0x542cc6[_0x9ffa('0x34')]=_0x542cc6[_0x9ffa('0x34')][_0x9ffa('0x36')]?_0x542cc6[_0x9ffa('0x34')]:_0x59f526[_0x9ffa('0x2f')];_0x542cc6['order']=qs[_0x9ffa('0x4b')](_0x5524a1[_0x9ffa('0x30')][_0x9ffa('0x4b')]);_0x542cc6[_0x9ffa('0x3a')]=qs[_0x9ffa('0x32')](_[_0x9ffa('0x38')](_0x5524a1['query'],_0x59f526[_0x9ffa('0x32')]));if(_0x5524a1[_0x9ffa('0x30')][_0x9ffa('0x39')]){_0x542cc6['where']=_[_0x9ffa('0x3c')](_0x542cc6['where'],{'$or':_[_0x9ffa('0x29')](_0x542cc6[_0x9ffa('0x34')],function(_0x259aab){var _0x5571f5={};_0x5571f5[_0x259aab]={'$like':'%'+_0x5524a1[_0x9ffa('0x30')][_0x9ffa('0x39')]+'%'};return _0x5571f5;})});}_0x542cc6=_[_0x9ffa('0x3c')]({},_0x542cc6,_0x5524a1[_0x9ffa('0x44')]);return _0x3f1ae2[_0x9ffa('0x49')](_0x542cc6);}})[_0x9ffa('0x24')](function(_0xd82512){if(_0xd82512){_0x360e78=_0xd82512[_0x9ffa('0x36')];if(!_0x5524a1[_0x9ffa('0x30')][_0x9ffa('0x4c')]('nolimit')){_0x542cc6[_0x9ffa('0x1c')]=qs['limit'](_0x5524a1[_0x9ffa('0x30')]['limit']);_0x542cc6[_0x9ffa('0x1b')]=qs['offset'](_0x5524a1['query'][_0x9ffa('0x1b')]);}return _0x3f1ae2['getConfigurations'](_0x542cc6);}})['then'](function(_0x11be97){if(_0x11be97){return _0x11be97?{'count':_0x360e78,'rows':_0x11be97}:null;}})['then'](respondWithResult(_0x115fe2,null))[_0x9ffa('0x41')](handleError(_0x115fe2,null));};exports[_0x9ffa('0x4d')]=function(_0x540d8b,_0x4b8c24,_0x97ec5e){if(_0x540d8b[_0x9ffa('0x47')]['id']){delete _0x540d8b[_0x9ffa('0x47')]['id'];}return db[_0x9ffa('0x2a')][_0x9ffa('0x4e')]({'where':{'id':_0x540d8b[_0x9ffa('0x43')]['id']}})[_0x9ffa('0x24')](handleEntityNotFound(_0x4b8c24,null))[_0x9ffa('0x24')](function(_0x4f8df0){if(_0x4f8df0){_0x540d8b[_0x9ffa('0x47')][_0x9ffa('0x4f')]=_0x4f8df0['id'];_0x540d8b[_0x9ffa('0x47')][_0x9ffa('0x50')]=integrations[_0x9ffa('0x51')](_0x540d8b[_0x9ffa('0x47')][_0x9ffa('0x52')],_0x540d8b[_0x9ffa('0x47')][_0x9ffa('0x2d')]);_0x540d8b[_0x9ffa('0x47')][_0x9ffa('0x53')]=integrations[_0x9ffa('0x54')](_0x540d8b[_0x9ffa('0x47')][_0x9ffa('0x52')],_0x540d8b[_0x9ffa('0x47')][_0x9ffa('0x2d')]);return db[_0x9ffa('0x4a')]['create'](_0x540d8b[_0x9ffa('0x47')],{'include':[{'model':db[_0x9ffa('0x55')],'as':_0x9ffa('0x50')},{'model':db['FreshsalesField'],'as':_0x9ffa('0x53')}]});}return null;})[_0x9ffa('0x24')](respondWithResult(_0x4b8c24,null))[_0x9ffa('0x41')](handleError(_0x4b8c24,null));};exports[_0x9ffa('0x56')]=function(_0x552abf,_0x394be4,_0x4994c8){var _0x3113d9='';var _0x390cde='';return db[_0x9ffa('0x2a')]['findOne']({'where':{'id':_0x552abf[_0x9ffa('0x43')]['id']},'attributes':['id',_0x9ffa('0x57'),'remoteUri',_0x9ffa('0x58')]})[_0x9ffa('0x24')](handleEntityNotFound(_0x394be4,null))[_0x9ffa('0x24')](function(_0xa95a38){if(_0xa95a38){_0x390cde=_0xa95a38[_0x9ffa('0x57')];_0x3113d9=_0xa95a38[_0x9ffa('0x59')];var _0x5ac240=_0xa95a38[_0x9ffa('0x59')][_0x9ffa('0x5a')](-0x1);if(_0x5ac240==='/'){_0x3113d9=_0x3113d9[_0x9ffa('0x5b')](0x0,_0x3113d9[_0x9ffa('0x5c')](_0x5ac240));}return rp({'method':_0x9ffa('0x5d'),'uri':util[_0x9ffa('0x5e')]('%s%s',_0x3113d9,'/api/selector/owners'),'headers':{'Authorization':_0x9ffa('0x5f')+_0xa95a38[_0x9ffa('0x58')]},'json':!![]});}})[_0x9ffa('0x24')](function(_0x5b2e91){if(_0x5b2e91){var _0x37fb62=_0x5b2e91[_0x9ffa('0x60')];var _0x526482=![];var _0x3a2a79=null;for(_0x3a2a79=0x0;_0x3a2a79<_0x37fb62['length'];_0x3a2a79++){if(_0x37fb62[_0x3a2a79][_0x9ffa('0x61')]===_0x390cde){_0x526482=!![];}}if(_0x526482){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x9ffa('0x62')});}}})[_0x9ffa('0x24')](respondWithResult(_0x394be4,null))[_0x9ffa('0x41')](function(_0x50715c){var _0xe95be6=_0x552abf[_0x9ffa('0x30')][_0x9ffa('0x63')]?0x1f4:_0x50715c[_0x9ffa('0x64')]||0x1f4;logger[_0x9ffa('0x25')](_0x9ffa('0x65'),_0x9ffa('0x56'),_0xe95be6,JSON['stringify'](_0x50715c));delete _0x50715c[_0x9ffa('0x27')];if(_0xe95be6===0x191){_0xe95be6=0x190;}_0x394be4[_0x9ffa('0x18')](_0xe95be6)[_0x9ffa('0x66')](_0x552abf[_0x9ffa('0x30')][_0x9ffa('0x63')]?{'message':_0x9ffa('0x67'),'statusCode':_0x50715c[_0x9ffa('0x64')]}:_0x50715c);});};