916e22c0097ddc88faebf2e257b7b132d91da1ce
[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 _0xbdb7=['../../config/license/hardware','../../config/logger','api','../../mysqldb','../../components/integrations/configuration','client','request','then','info','FreshsalesAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','status','json','count','offset','limit','set','Content-Range','reject','save','update','end','sendStatus','stack','name','index','map','FreshsalesAccount','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','length','attributes','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','includeAll','include','findAll','rows','show','params','options','find','body','destroy','FreshsalesConfiguration','getConfigurations','addConfiguration','AccountId','channel','Descriptions','FreshsalesField','Subjects','getFields','findOne','apiKey','username','remoteUri','substring','format','%s%s','users','Requested\x20Resource\x20not\x20Found','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','ejs','lodash','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x4521c8,_0x500b0a){var _0x139c2b=function(_0x585732){while(--_0x585732){_0x4521c8['push'](_0x4521c8['shift']());}};_0x139c2b(++_0x500b0a);}(_0xbdb7,0x12e));var _0x7bdb=function(_0xf16b1,_0x33c637){_0xf16b1=_0xf16b1-0x0;var _0x26f94d=_0xbdb7[_0xf16b1];return _0x26f94d;};'use strict';var pdf=require(_0x7bdb('0x0'));var emlformat=require(_0x7bdb('0x1'));var rimraf=require(_0x7bdb('0x2'));var zipdir=require(_0x7bdb('0x3'));var jsonpatch=require(_0x7bdb('0x4'));var rp=require(_0x7bdb('0x5'));var moment=require(_0x7bdb('0x6'));var BPromise=require(_0x7bdb('0x7'));var Mustache=require(_0x7bdb('0x8'));var util=require('util');var path=require(_0x7bdb('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x7bdb('0xa'));var fs=require('fs');var _=require(_0x7bdb('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x7bdb('0xc'));var deskjs=require(_0x7bdb('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7bdb('0xe'));var Redis=require(_0x7bdb('0xf'));var authService=require(_0x7bdb('0x10'));var qs=require(_0x7bdb('0x11'));var as=require(_0x7bdb('0x12'));var hardwareService=require(_0x7bdb('0x13'));var logger=require(_0x7bdb('0x14'))(_0x7bdb('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x7bdb('0x16'))['db'];var integrations=require(_0x7bdb('0x17'));var jayson=require('jayson/promise');var client=jayson[_0x7bdb('0x18')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5898c1,_0x2abca6,_0x46dd4a,_0x4fd91a){return new BPromise(function(_0x50eeca,_0x4e98f7){var _0x4476ff=_0x4fd91a||client;return _0x4476ff[_0x7bdb('0x19')](_0x5898c1,_0x46dd4a)[_0x7bdb('0x1a')](function(_0x25d417){logger[_0x7bdb('0x1b')](_0x7bdb('0x1c'),_0x2abca6,_0x7bdb('0x1d'));logger[_0x7bdb('0x1e')]('FreshsalesAccount,\x20%s,\x20%s,\x20%s',_0x2abca6,_0x7bdb('0x1d'),JSON[_0x7bdb('0x1f')](_0x25d417));if(_0x25d417[_0x7bdb('0x20')]){if(_0x25d417[_0x7bdb('0x20')]['code']===0x1f4){logger[_0x7bdb('0x20')](_0x7bdb('0x1c'),_0x2abca6,_0x25d417['error'][_0x7bdb('0x21')]);return _0x4e98f7(_0x25d417[_0x7bdb('0x20')][_0x7bdb('0x21')]);}logger[_0x7bdb('0x20')](_0x7bdb('0x1c'),_0x2abca6,_0x25d417['error']['message']);return _0x50eeca(_0x25d417[_0x7bdb('0x20')][_0x7bdb('0x21')]);}else{logger['info'](_0x7bdb('0x1c'),_0x2abca6,_0x7bdb('0x1d'));_0x50eeca(_0x25d417[_0x7bdb('0x22')][_0x7bdb('0x21')]);}})[_0x7bdb('0x23')](function(_0x4d668e){logger[_0x7bdb('0x20')](_0x7bdb('0x1c'),_0x2abca6,_0x4d668e);_0x4e98f7(_0x4d668e);});});}function respondWithStatusCode(_0x40c447,_0x3a456f){_0x3a456f=_0x3a456f||0xcc;return function(_0x481f4b){if(_0x481f4b){return _0x40c447['sendStatus'](_0x3a456f);}return _0x40c447[_0x7bdb('0x24')](_0x3a456f)['end']();};}function respondWithResult(_0x47abaf,_0x4a9e02){_0x4a9e02=_0x4a9e02||0xc8;return function(_0x2abef6){if(_0x2abef6){return _0x47abaf['status'](_0x4a9e02)[_0x7bdb('0x25')](_0x2abef6);}};}function respondWithFilteredResult(_0x72ba69,_0x3ec129){return function(_0x7c09cf){if(_0x7c09cf){var _0x2a494e=_0x7c09cf[_0x7bdb('0x26')],_0x523869=_0x3ec129[_0x7bdb('0x27')],_0x10e818=_0x3ec129[_0x7bdb('0x27')]+_0x3ec129[_0x7bdb('0x28')],_0x32242d;if(_0x10e818>=_0x2a494e){_0x10e818=_0x2a494e;_0x32242d=0xc8;}else{_0x32242d=0xce;}_0x72ba69[_0x7bdb('0x24')](_0x32242d);return _0x72ba69[_0x7bdb('0x29')](_0x7bdb('0x2a'),_0x523869+'-'+_0x10e818+'/'+_0x2a494e)[_0x7bdb('0x25')](_0x7c09cf);}return null;};}function patchUpdates(_0x9ec48d){return function(_0x81ca6f){try{jsonpatch['apply'](_0x81ca6f,_0x9ec48d,!![]);}catch(_0x388a45){return BPromise[_0x7bdb('0x2b')](_0x388a45);}return _0x81ca6f[_0x7bdb('0x2c')]();};}function saveUpdates(_0x9f5c1,_0x29eac5){return function(_0x5da819){if(_0x5da819){return _0x5da819[_0x7bdb('0x2d')](_0x9f5c1)[_0x7bdb('0x1a')](function(_0x9ac56){return _0x9ac56;});}return null;};}function removeEntity(_0x103585,_0x58c6b7){return function(_0x4f43b9){if(_0x4f43b9){return _0x4f43b9['destroy']()[_0x7bdb('0x1a')](function(){_0x103585['status'](0xcc)[_0x7bdb('0x2e')]();});}};}function handleEntityNotFound(_0x4cfb77,_0x23e5b2){return function(_0x438ee5){if(!_0x438ee5){_0x4cfb77[_0x7bdb('0x2f')](0x194);}return _0x438ee5;};}function handleError(_0x4b40a3,_0x2ffdb5){_0x2ffdb5=_0x2ffdb5||0x1f4;return function(_0x514713){logger['error'](_0x514713[_0x7bdb('0x30')]);if(_0x514713['name']){delete _0x514713[_0x7bdb('0x31')];}_0x4b40a3['status'](_0x2ffdb5)['send'](_0x514713);};}exports[_0x7bdb('0x32')]=function(_0x353b26,_0x3ddee4){var _0x62e562={},_0x3c2bb8={},_0x2bb28a={'count':0x0,'rows':[]};var _0x59e269=_[_0x7bdb('0x33')](db[_0x7bdb('0x34')][_0x7bdb('0x35')],function(_0x3d1537){return{'name':_0x3d1537[_0x7bdb('0x36')],'type':_0x3d1537[_0x7bdb('0x37')][_0x7bdb('0x38')]};});_0x3c2bb8[_0x7bdb('0x39')]=_[_0x7bdb('0x33')](_0x59e269,'name');_0x3c2bb8['query']=_[_0x7bdb('0x3a')](_0x353b26[_0x7bdb('0x3b')]);_0x3c2bb8[_0x7bdb('0x3c')]=_[_0x7bdb('0x3d')](_0x3c2bb8[_0x7bdb('0x39')],_0x3c2bb8['query']);_0x62e562['attributes']=_[_0x7bdb('0x3d')](_0x3c2bb8['model'],qs[_0x7bdb('0x3e')](_0x353b26['query'][_0x7bdb('0x3e')]));_0x62e562['attributes']=_0x62e562['attributes'][_0x7bdb('0x3f')]?_0x62e562[_0x7bdb('0x40')]:_0x3c2bb8[_0x7bdb('0x39')];if(!_0x353b26[_0x7bdb('0x3b')][_0x7bdb('0x41')](_0x7bdb('0x42'))){_0x62e562[_0x7bdb('0x28')]=qs['limit'](_0x353b26['query'][_0x7bdb('0x28')]);_0x62e562[_0x7bdb('0x27')]=qs[_0x7bdb('0x27')](_0x353b26[_0x7bdb('0x3b')][_0x7bdb('0x27')]);}_0x62e562[_0x7bdb('0x43')]=qs[_0x7bdb('0x44')](_0x353b26['query']['sort']);_0x62e562[_0x7bdb('0x45')]=qs[_0x7bdb('0x3c')](_[_0x7bdb('0x46')](_0x353b26[_0x7bdb('0x3b')],_0x3c2bb8['filters']),_0x59e269);if(_0x353b26[_0x7bdb('0x3b')]['filter']){_0x62e562[_0x7bdb('0x45')]=_[_0x7bdb('0x47')](_0x62e562[_0x7bdb('0x45')],{'$or':_[_0x7bdb('0x33')](_0x59e269,function(_0x6b10d4){if(_0x6b10d4[_0x7bdb('0x37')]!==_0x7bdb('0x48')){var _0x452ded={};_0x452ded[_0x6b10d4[_0x7bdb('0x31')]]={'$like':'%'+_0x353b26['query'][_0x7bdb('0x49')]+'%'};return _0x452ded;}})});}_0x62e562=_[_0x7bdb('0x47')]({},_0x62e562,_0x353b26['options']);var _0x7c784={'where':_0x62e562['where']};return db[_0x7bdb('0x34')][_0x7bdb('0x26')](_0x7c784)[_0x7bdb('0x1a')](function(_0x3a8415){_0x2bb28a[_0x7bdb('0x26')]=_0x3a8415;if(_0x353b26['query'][_0x7bdb('0x4a')]){_0x62e562[_0x7bdb('0x4b')]=[{'all':!![]}];}return db[_0x7bdb('0x34')][_0x7bdb('0x4c')](_0x62e562);})[_0x7bdb('0x1a')](function(_0x5021cd){_0x2bb28a[_0x7bdb('0x4d')]=_0x5021cd;return _0x2bb28a;})[_0x7bdb('0x1a')](respondWithFilteredResult(_0x3ddee4,_0x62e562))[_0x7bdb('0x23')](handleError(_0x3ddee4,null));};exports[_0x7bdb('0x4e')]=function(_0x259007,_0x25c534){var _0x1895b6={'raw':![],'where':{'id':_0x259007[_0x7bdb('0x4f')]['id']}},_0x176508={};_0x176508[_0x7bdb('0x39')]=_['keys'](db[_0x7bdb('0x34')]['rawAttributes']);_0x176508['query']=_[_0x7bdb('0x3a')](_0x259007[_0x7bdb('0x3b')]);_0x176508['filters']=_[_0x7bdb('0x3d')](_0x176508[_0x7bdb('0x39')],_0x176508['query']);_0x1895b6['attributes']=_['intersection'](_0x176508[_0x7bdb('0x39')],qs[_0x7bdb('0x3e')](_0x259007[_0x7bdb('0x3b')][_0x7bdb('0x3e')]));_0x1895b6[_0x7bdb('0x40')]=_0x1895b6[_0x7bdb('0x40')][_0x7bdb('0x3f')]?_0x1895b6[_0x7bdb('0x40')]:_0x176508[_0x7bdb('0x39')];if(_0x259007[_0x7bdb('0x3b')]['includeAll']){_0x1895b6[_0x7bdb('0x4b')]=[{'all':!![]}];}_0x1895b6=_['merge']({},_0x1895b6,_0x259007[_0x7bdb('0x50')]);return db[_0x7bdb('0x34')][_0x7bdb('0x51')](_0x1895b6)[_0x7bdb('0x1a')](handleEntityNotFound(_0x25c534,null))['then'](respondWithResult(_0x25c534,null))[_0x7bdb('0x23')](handleError(_0x25c534,null));};exports['create']=function(_0x533c3b,_0x1439c3){return db[_0x7bdb('0x34')]['create'](_0x533c3b['body'],{})['then'](respondWithResult(_0x1439c3,0xc9))[_0x7bdb('0x23')](handleError(_0x1439c3,null));};exports['update']=function(_0x517ebb,_0x12a101){if(_0x517ebb[_0x7bdb('0x52')]['id']){delete _0x517ebb[_0x7bdb('0x52')]['id'];}return db[_0x7bdb('0x34')]['find']({'where':{'id':_0x517ebb[_0x7bdb('0x4f')]['id']}})['then'](handleEntityNotFound(_0x12a101,null))[_0x7bdb('0x1a')](saveUpdates(_0x517ebb[_0x7bdb('0x52')],null))[_0x7bdb('0x1a')](respondWithResult(_0x12a101,null))[_0x7bdb('0x23')](handleError(_0x12a101,null));};exports[_0x7bdb('0x53')]=function(_0x9beb5c,_0x52d90e){return db[_0x7bdb('0x34')][_0x7bdb('0x51')]({'where':{'id':_0x9beb5c[_0x7bdb('0x4f')]['id']}})['then'](handleEntityNotFound(_0x52d90e,null))[_0x7bdb('0x1a')](removeEntity(_0x52d90e,null))[_0x7bdb('0x23')](handleError(_0x52d90e,null));};exports['getConfigurations']=function(_0x2b1887,_0x56e88f,_0x7ecc9f){var _0xc3a0cb={};var _0x4f3f8c={};var _0x478bbd;var _0x21a54f;return db[_0x7bdb('0x34')]['findOne']({'where':{'id':_0x2b1887[_0x7bdb('0x4f')]['id']}})['then'](handleEntityNotFound(_0x56e88f,null))[_0x7bdb('0x1a')](function(_0x48f043){if(_0x48f043){_0x478bbd=_0x48f043;_0x4f3f8c['model']=_[_0x7bdb('0x3a')](db[_0x7bdb('0x54')][_0x7bdb('0x35')]);_0x4f3f8c[_0x7bdb('0x3b')]=_[_0x7bdb('0x3a')](_0x2b1887[_0x7bdb('0x3b')]);_0x4f3f8c[_0x7bdb('0x3c')]=_[_0x7bdb('0x3d')](_0x4f3f8c[_0x7bdb('0x39')],_0x4f3f8c[_0x7bdb('0x3b')]);_0xc3a0cb[_0x7bdb('0x40')]=_[_0x7bdb('0x3d')](_0x4f3f8c['model'],qs[_0x7bdb('0x3e')](_0x2b1887[_0x7bdb('0x3b')]['fields']));_0xc3a0cb[_0x7bdb('0x40')]=_0xc3a0cb[_0x7bdb('0x40')][_0x7bdb('0x3f')]?_0xc3a0cb[_0x7bdb('0x40')]:_0x4f3f8c[_0x7bdb('0x39')];_0xc3a0cb['order']=qs[_0x7bdb('0x44')](_0x2b1887[_0x7bdb('0x3b')][_0x7bdb('0x44')]);_0xc3a0cb['where']=qs[_0x7bdb('0x3c')](_[_0x7bdb('0x46')](_0x2b1887[_0x7bdb('0x3b')],_0x4f3f8c[_0x7bdb('0x3c')]));if(_0x2b1887[_0x7bdb('0x3b')][_0x7bdb('0x49')]){_0xc3a0cb[_0x7bdb('0x45')]=_[_0x7bdb('0x47')](_0xc3a0cb[_0x7bdb('0x45')],{'$or':_['map'](_0xc3a0cb[_0x7bdb('0x40')],function(_0x2b7c7e){var _0x1cf8b1={};_0x1cf8b1[_0x2b7c7e]={'$like':'%'+_0x2b1887[_0x7bdb('0x3b')][_0x7bdb('0x49')]+'%'};return _0x1cf8b1;})});}_0xc3a0cb=_[_0x7bdb('0x47')]({},_0xc3a0cb,_0x2b1887[_0x7bdb('0x50')]);return _0x478bbd[_0x7bdb('0x55')](_0xc3a0cb);}})[_0x7bdb('0x1a')](function(_0x3be45e){if(_0x3be45e){_0x21a54f=_0x3be45e[_0x7bdb('0x3f')];if(!_0x2b1887[_0x7bdb('0x3b')][_0x7bdb('0x41')]('nolimit')){_0xc3a0cb[_0x7bdb('0x28')]=qs['limit'](_0x2b1887[_0x7bdb('0x3b')][_0x7bdb('0x28')]);_0xc3a0cb[_0x7bdb('0x27')]=qs['offset'](_0x2b1887[_0x7bdb('0x3b')][_0x7bdb('0x27')]);}return _0x478bbd['getConfigurations'](_0xc3a0cb);}})[_0x7bdb('0x1a')](function(_0x1f9024){if(_0x1f9024){return _0x1f9024?{'count':_0x21a54f,'rows':_0x1f9024}:null;}})['then'](respondWithResult(_0x56e88f,null))[_0x7bdb('0x23')](handleError(_0x56e88f,null));};exports[_0x7bdb('0x56')]=function(_0x579caa,_0x291fd3,_0x237688){if(_0x579caa['body']['id']){delete _0x579caa[_0x7bdb('0x52')]['id'];}return db[_0x7bdb('0x34')]['findOne']({'where':{'id':_0x579caa[_0x7bdb('0x4f')]['id']}})['then'](handleEntityNotFound(_0x291fd3,null))[_0x7bdb('0x1a')](function(_0x25136b){if(_0x25136b){_0x579caa[_0x7bdb('0x52')][_0x7bdb('0x57')]=_0x25136b['id'];_0x579caa[_0x7bdb('0x52')]['Subjects']=integrations['getSubjects'](_0x579caa['body'][_0x7bdb('0x58')],_0x579caa['body'][_0x7bdb('0x37')]);_0x579caa[_0x7bdb('0x52')][_0x7bdb('0x59')]=integrations['getDescriptions'](_0x579caa['body'][_0x7bdb('0x58')],_0x579caa[_0x7bdb('0x52')][_0x7bdb('0x37')]);return db[_0x7bdb('0x54')]['create'](_0x579caa[_0x7bdb('0x52')],{'include':[{'model':db[_0x7bdb('0x5a')],'as':_0x7bdb('0x5b')},{'model':db[_0x7bdb('0x5a')],'as':_0x7bdb('0x59')}]});}return null;})[_0x7bdb('0x1a')](respondWithResult(_0x291fd3,null))['catch'](handleError(_0x291fd3,null));};exports[_0x7bdb('0x5c')]=function(_0x552a8a,_0x6a50e7,_0x569d65){var _0x6a8f7e='';var _0x3725a2='';return db[_0x7bdb('0x34')][_0x7bdb('0x5d')]({'where':{'id':_0x552a8a[_0x7bdb('0x4f')]['id']},'attributes':['id','username','remoteUri',_0x7bdb('0x5e')]})[_0x7bdb('0x1a')](handleEntityNotFound(_0x6a50e7,null))['then'](function(_0x415ec5){if(_0x415ec5){_0x3725a2=_0x415ec5[_0x7bdb('0x5f')];_0x6a8f7e=_0x415ec5['remoteUri'];var _0x2dbb60=_0x415ec5[_0x7bdb('0x60')]['slice'](-0x1);if(_0x2dbb60==='/'){_0x6a8f7e=_0x6a8f7e[_0x7bdb('0x61')](0x0,_0x6a8f7e['lastIndexOf'](_0x2dbb60));}return rp({'method':'GET','uri':util[_0x7bdb('0x62')](_0x7bdb('0x63'),_0x6a8f7e,'/api/selector/owners'),'headers':{'Authorization':'Token\x20token='+_0x415ec5[_0x7bdb('0x5e')]},'json':!![]});}})['then'](function(_0x979dde){if(_0x979dde){var _0x52c913=_0x979dde[_0x7bdb('0x64')];var _0x1570c8=![];var _0x3ec67d=null;for(_0x3ec67d=0x0;_0x3ec67d<_0x52c913[_0x7bdb('0x3f')];_0x3ec67d++){if(_0x52c913[_0x3ec67d]['email']===_0x3725a2){_0x1570c8=!![];}}if(_0x1570c8){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x7bdb('0x65')});}}})[_0x7bdb('0x1a')](respondWithResult(_0x6a50e7,null))['catch'](function(_0x2be441){var _0x3096e0=_0x552a8a['query'][_0x7bdb('0x66')]?0x1f4:_0x2be441[_0x7bdb('0x67')]||0x1f4;logger[_0x7bdb('0x20')](_0x7bdb('0x68'),'getFields',_0x3096e0,JSON[_0x7bdb('0x1f')](_0x2be441));delete _0x2be441['name'];if(_0x3096e0===0x191){_0x3096e0=0x190;}_0x6a50e7[_0x7bdb('0x24')](_0x3096e0)[_0x7bdb('0x69')](_0x552a8a[_0x7bdb('0x3b')]['test']?{'message':_0x7bdb('0x6a'),'statusCode':_0x2be441[_0x7bdb('0x67')]}:_0x2be441);});};