bcbe61a5d8ad716add5828d2a98a5f519e759b93
[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 _0xe28c=['filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','type','VIRTUAL','filter','merge','options','FreshsalesAccount','includeAll','include','findAll','rows','catch','show','params','length','create','body','find','findOne','FreshsalesConfiguration','pick','getConfigurations','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshsalesField','getFields','username','remoteUri','apiKey','slice','lastIndexOf','GET','format','%s%s','/api/selector/owners','Token\x20token=','users','email','Requested\x20Resource\x20not\x20Found','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','request-promise','moment','bluebird','util','path','to-csv','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','reject','save','update','then','destroy','error','name','send','index','map','rawAttributes','fieldName','key','model','query','keys'];(function(_0x4ace4a,_0x11e417){var _0x387588=function(_0x3bd797){while(--_0x3bd797){_0x4ace4a['push'](_0x4ace4a['shift']());}};_0x387588(++_0x11e417);}(_0xe28c,0x1e5));var _0xce28=function(_0x4a60b0,_0x432b5c){_0x4a60b0=_0x4a60b0-0x0;var _0x3d2e72=_0xe28c[_0x4a60b0];return _0x3d2e72;};'use strict';var emlformat=require(_0xce28('0x0'));var rimraf=require(_0xce28('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xce28('0x2'));var moment=require(_0xce28('0x3'));var BPromise=require(_0xce28('0x4'));var Mustache=require('mustache');var util=require(_0xce28('0x5'));var path=require(_0xce28('0x6'));var sox=require('sox');var csv=require(_0xce28('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xce28('0x8'));var crypto=require('crypto');var jsforce=require(_0xce28('0x9'));var deskjs=require(_0xce28('0xa'));var toCsv=require(_0xce28('0x7'));var querystring=require(_0xce28('0xb'));var Papa=require(_0xce28('0xc'));var Redis=require(_0xce28('0xd'));var authService=require(_0xce28('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0xce28('0xf'));var hardwareService=require(_0xce28('0x10'));var logger=require(_0xce28('0x11'))(_0xce28('0x12'));var utils=require(_0xce28('0x13'));var config=require(_0xce28('0x14'));var licenseUtil=require(_0xce28('0x15'));var db=require(_0xce28('0x16'))['db'];var integrations=require(_0xce28('0x17'));function respondWithStatusCode(_0xf03cec,_0x372391){_0x372391=_0x372391||0xcc;return function(_0x4b83d0){if(_0x4b83d0){return _0xf03cec[_0xce28('0x18')](_0x372391);}return _0xf03cec[_0xce28('0x19')](_0x372391)[_0xce28('0x1a')]();};}function respondWithResult(_0x23b1c4,_0x3642df){_0x3642df=_0x3642df||0xc8;return function(_0x5e3e4b){if(_0x5e3e4b){return _0x23b1c4[_0xce28('0x19')](_0x3642df)[_0xce28('0x1b')](_0x5e3e4b);}};}function respondWithFilteredResult(_0x3ee2ae,_0x1ade3f){return function(_0x23ea35){if(_0x23ea35){var _0x48f3e3=typeof _0x1ade3f[_0xce28('0x1c')]==='undefined'&&typeof _0x1ade3f[_0xce28('0x1d')]===_0xce28('0x1e');var _0xa49a6f=_0x23ea35[_0xce28('0x1f')];var _0x35cb9d=_0x48f3e3?0x0:_0x1ade3f[_0xce28('0x1c')];var _0x12de9d=_0x48f3e3?_0x23ea35['count']:_0x1ade3f['offset']+_0x1ade3f[_0xce28('0x1d')];var _0x2f81ce;if(_0x12de9d>=_0xa49a6f){_0x12de9d=_0xa49a6f;_0x2f81ce=0xc8;}else{_0x2f81ce=0xce;}_0x3ee2ae[_0xce28('0x19')](_0x2f81ce);return _0x3ee2ae[_0xce28('0x20')](_0xce28('0x21'),_0x35cb9d+'-'+_0x12de9d+'/'+_0xa49a6f)[_0xce28('0x1b')](_0x23ea35);}return null;};}function patchUpdates(_0x3a8e45){return function(_0x5a8dac){try{jsonpatch['apply'](_0x5a8dac,_0x3a8e45,!![]);}catch(_0x4a1400){return BPromise[_0xce28('0x22')](_0x4a1400);}return _0x5a8dac[_0xce28('0x23')]();};}function saveUpdates(_0x5b7b74,_0x5ed23e){return function(_0x4f7fe6){if(_0x4f7fe6){return _0x4f7fe6[_0xce28('0x24')](_0x5b7b74)[_0xce28('0x25')](function(_0x372776){return _0x372776;});}return null;};}function removeEntity(_0x59f18c,_0x731cfd){return function(_0x4e25f9){if(_0x4e25f9){return _0x4e25f9[_0xce28('0x26')]()[_0xce28('0x25')](function(){_0x59f18c[_0xce28('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2232dd,_0x195f00){return function(_0x5c80f9){if(!_0x5c80f9){_0x2232dd[_0xce28('0x18')](0x194);}return _0x5c80f9;};}function handleError(_0x9b1d1,_0x513dca){_0x513dca=_0x513dca||0x1f4;return function(_0x5b1496){logger[_0xce28('0x27')](_0x5b1496['stack']);if(_0x5b1496[_0xce28('0x28')]){delete _0x5b1496[_0xce28('0x28')];}_0x9b1d1['status'](_0x513dca)[_0xce28('0x29')](_0x5b1496);};}exports[_0xce28('0x2a')]=function(_0x5e650a,_0x35316c){var _0x526246={},_0x3299fb={},_0x5044a1={'count':0x0,'rows':[]};var _0x3f1d45=_[_0xce28('0x2b')](db['FreshsalesAccount'][_0xce28('0x2c')],function(_0x1605ff){return{'name':_0x1605ff[_0xce28('0x2d')],'type':_0x1605ff['type'][_0xce28('0x2e')]};});_0x3299fb[_0xce28('0x2f')]=_[_0xce28('0x2b')](_0x3f1d45,_0xce28('0x28'));_0x3299fb[_0xce28('0x30')]=_[_0xce28('0x31')](_0x5e650a[_0xce28('0x30')]);_0x3299fb[_0xce28('0x32')]=_['intersection'](_0x3299fb[_0xce28('0x2f')],_0x3299fb[_0xce28('0x30')]);_0x526246['attributes']=_[_0xce28('0x33')](_0x3299fb[_0xce28('0x2f')],qs[_0xce28('0x34')](_0x5e650a['query'][_0xce28('0x34')]));_0x526246[_0xce28('0x35')]=_0x526246[_0xce28('0x35')]['length']?_0x526246[_0xce28('0x35')]:_0x3299fb[_0xce28('0x2f')];if(!_0x5e650a[_0xce28('0x30')][_0xce28('0x36')](_0xce28('0x37'))){_0x526246[_0xce28('0x1d')]=qs[_0xce28('0x1d')](_0x5e650a[_0xce28('0x30')][_0xce28('0x1d')]);_0x526246[_0xce28('0x1c')]=qs[_0xce28('0x1c')](_0x5e650a[_0xce28('0x30')]['offset']);}_0x526246[_0xce28('0x38')]=qs[_0xce28('0x39')](_0x5e650a[_0xce28('0x30')][_0xce28('0x39')]);_0x526246['where']=qs[_0xce28('0x32')](_['pick'](_0x5e650a[_0xce28('0x30')],_0x3299fb[_0xce28('0x32')]),_0x3f1d45);if(_0x5e650a['query']['filter']){_0x526246['where']=_['merge'](_0x526246[_0xce28('0x3a')],{'$or':_[_0xce28('0x2b')](_0x3f1d45,function(_0x21f000){if(_0x21f000[_0xce28('0x3b')]!==_0xce28('0x3c')){var _0x3f65a2={};_0x3f65a2[_0x21f000[_0xce28('0x28')]]={'$like':'%'+_0x5e650a[_0xce28('0x30')][_0xce28('0x3d')]+'%'};return _0x3f65a2;}})});}_0x526246=_[_0xce28('0x3e')]({},_0x526246,_0x5e650a[_0xce28('0x3f')]);var _0x5e502a={'where':_0x526246[_0xce28('0x3a')]};return db[_0xce28('0x40')]['count'](_0x5e502a)[_0xce28('0x25')](function(_0x5f47a){_0x5044a1['count']=_0x5f47a;if(_0x5e650a[_0xce28('0x30')][_0xce28('0x41')]){_0x526246[_0xce28('0x42')]=[{'all':!![]}];}return db[_0xce28('0x40')][_0xce28('0x43')](_0x526246);})['then'](function(_0x27b57c){_0x5044a1[_0xce28('0x44')]=_0x27b57c;return _0x5044a1;})[_0xce28('0x25')](respondWithFilteredResult(_0x35316c,_0x526246))[_0xce28('0x45')](handleError(_0x35316c,null));};exports[_0xce28('0x46')]=function(_0x1f3d20,_0x34b5ea){var _0x41337d={'raw':![],'where':{'id':_0x1f3d20[_0xce28('0x47')]['id']}},_0x425469={};_0x425469[_0xce28('0x2f')]=_['keys'](db['FreshsalesAccount'][_0xce28('0x2c')]);_0x425469[_0xce28('0x30')]=_[_0xce28('0x31')](_0x1f3d20[_0xce28('0x30')]);_0x425469[_0xce28('0x32')]=_[_0xce28('0x33')](_0x425469[_0xce28('0x2f')],_0x425469[_0xce28('0x30')]);_0x41337d['attributes']=_[_0xce28('0x33')](_0x425469[_0xce28('0x2f')],qs[_0xce28('0x34')](_0x1f3d20[_0xce28('0x30')][_0xce28('0x34')]));_0x41337d[_0xce28('0x35')]=_0x41337d[_0xce28('0x35')][_0xce28('0x48')]?_0x41337d[_0xce28('0x35')]:_0x425469['model'];if(_0x1f3d20[_0xce28('0x30')]['includeAll']){_0x41337d[_0xce28('0x42')]=[{'all':!![]}];}_0x41337d=_['merge']({},_0x41337d,_0x1f3d20[_0xce28('0x3f')]);return db[_0xce28('0x40')]['find'](_0x41337d)[_0xce28('0x25')](handleEntityNotFound(_0x34b5ea,null))[_0xce28('0x25')](respondWithResult(_0x34b5ea,null))[_0xce28('0x45')](handleError(_0x34b5ea,null));};exports['create']=function(_0x1a7cf7,_0x1de423){return db[_0xce28('0x40')][_0xce28('0x49')](_0x1a7cf7[_0xce28('0x4a')],{})[_0xce28('0x25')](respondWithResult(_0x1de423,0xc9))['catch'](handleError(_0x1de423,null));};exports[_0xce28('0x24')]=function(_0x232785,_0x5e7180){if(_0x232785[_0xce28('0x4a')]['id']){delete _0x232785[_0xce28('0x4a')]['id'];}return db[_0xce28('0x40')][_0xce28('0x4b')]({'where':{'id':_0x232785[_0xce28('0x47')]['id']}})[_0xce28('0x25')](handleEntityNotFound(_0x5e7180,null))[_0xce28('0x25')](saveUpdates(_0x232785['body'],null))[_0xce28('0x25')](respondWithResult(_0x5e7180,null))[_0xce28('0x45')](handleError(_0x5e7180,null));};exports[_0xce28('0x26')]=function(_0x133a83,_0x1e5b33){return db[_0xce28('0x40')]['find']({'where':{'id':_0x133a83[_0xce28('0x47')]['id']}})[_0xce28('0x25')](handleEntityNotFound(_0x1e5b33,null))['then'](removeEntity(_0x1e5b33,null))[_0xce28('0x45')](handleError(_0x1e5b33,null));};exports['getConfigurations']=function(_0x1a33cb,_0x3b63bf,_0xf0f8fa){var _0x619ff1={};var _0x5bcc59={};var _0x2aec08;var _0x446d92;return db['FreshsalesAccount'][_0xce28('0x4c')]({'where':{'id':_0x1a33cb[_0xce28('0x47')]['id']}})[_0xce28('0x25')](handleEntityNotFound(_0x3b63bf,null))[_0xce28('0x25')](function(_0x2cac8a){if(_0x2cac8a){_0x2aec08=_0x2cac8a;_0x5bcc59[_0xce28('0x2f')]=_[_0xce28('0x31')](db[_0xce28('0x4d')][_0xce28('0x2c')]);_0x5bcc59[_0xce28('0x30')]=_[_0xce28('0x31')](_0x1a33cb[_0xce28('0x30')]);_0x5bcc59['filters']=_[_0xce28('0x33')](_0x5bcc59[_0xce28('0x2f')],_0x5bcc59[_0xce28('0x30')]);_0x619ff1[_0xce28('0x35')]=_[_0xce28('0x33')](_0x5bcc59[_0xce28('0x2f')],qs[_0xce28('0x34')](_0x1a33cb[_0xce28('0x30')][_0xce28('0x34')]));_0x619ff1[_0xce28('0x35')]=_0x619ff1['attributes'][_0xce28('0x48')]?_0x619ff1[_0xce28('0x35')]:_0x5bcc59['model'];_0x619ff1[_0xce28('0x38')]=qs[_0xce28('0x39')](_0x1a33cb[_0xce28('0x30')][_0xce28('0x39')]);_0x619ff1[_0xce28('0x3a')]=qs[_0xce28('0x32')](_[_0xce28('0x4e')](_0x1a33cb[_0xce28('0x30')],_0x5bcc59['filters']));if(_0x1a33cb[_0xce28('0x30')]['filter']){_0x619ff1[_0xce28('0x3a')]=_['merge'](_0x619ff1[_0xce28('0x3a')],{'$or':_[_0xce28('0x2b')](_0x619ff1[_0xce28('0x35')],function(_0x34182c){var _0x57f6b3={};_0x57f6b3[_0x34182c]={'$like':'%'+_0x1a33cb[_0xce28('0x30')][_0xce28('0x3d')]+'%'};return _0x57f6b3;})});}_0x619ff1=_['merge']({},_0x619ff1,_0x1a33cb['options']);return _0x2aec08['getConfigurations'](_0x619ff1);}})['then'](function(_0x37478e){if(_0x37478e){_0x446d92=_0x37478e['length'];if(!_0x1a33cb[_0xce28('0x30')][_0xce28('0x36')](_0xce28('0x37'))){_0x619ff1[_0xce28('0x1d')]=qs[_0xce28('0x1d')](_0x1a33cb[_0xce28('0x30')]['limit']);_0x619ff1['offset']=qs['offset'](_0x1a33cb[_0xce28('0x30')][_0xce28('0x1c')]);}return _0x2aec08[_0xce28('0x4f')](_0x619ff1);}})[_0xce28('0x25')](function(_0x3dabf9){if(_0x3dabf9){return _0x3dabf9?{'count':_0x446d92,'rows':_0x3dabf9}:null;}})[_0xce28('0x25')](respondWithResult(_0x3b63bf,null))[_0xce28('0x45')](handleError(_0x3b63bf,null));};exports[_0xce28('0x50')]=function(_0x23a0de,_0x46c97f,_0x38658c){if(_0x23a0de[_0xce28('0x4a')]['id']){delete _0x23a0de[_0xce28('0x4a')]['id'];}return db[_0xce28('0x40')][_0xce28('0x4c')]({'where':{'id':_0x23a0de[_0xce28('0x47')]['id']}})['then'](handleEntityNotFound(_0x46c97f,null))[_0xce28('0x25')](function(_0x48474e){if(_0x48474e){_0x23a0de['body'][_0xce28('0x51')]=_0x48474e['id'];_0x23a0de[_0xce28('0x4a')][_0xce28('0x52')]=integrations[_0xce28('0x53')](_0x23a0de[_0xce28('0x4a')][_0xce28('0x54')],_0x23a0de[_0xce28('0x4a')]['type']);_0x23a0de[_0xce28('0x4a')][_0xce28('0x55')]=integrations[_0xce28('0x56')](_0x23a0de[_0xce28('0x4a')]['channel'],_0x23a0de[_0xce28('0x4a')][_0xce28('0x3b')]);return db['FreshsalesConfiguration'][_0xce28('0x49')](_0x23a0de[_0xce28('0x4a')],{'include':[{'model':db[_0xce28('0x57')],'as':_0xce28('0x52')},{'model':db[_0xce28('0x57')],'as':_0xce28('0x55')}]});}return null;})[_0xce28('0x25')](respondWithResult(_0x46c97f,null))['catch'](handleError(_0x46c97f,null));};exports[_0xce28('0x58')]=function(_0x3219bd,_0x563208,_0x2acf73){var _0x1594ac='';var _0x44ac8c='';return db[_0xce28('0x40')][_0xce28('0x4c')]({'where':{'id':_0x3219bd['params']['id']},'attributes':['id',_0xce28('0x59'),_0xce28('0x5a'),_0xce28('0x5b')]})[_0xce28('0x25')](handleEntityNotFound(_0x563208,null))[_0xce28('0x25')](function(_0x38742f){if(_0x38742f){_0x44ac8c=_0x38742f[_0xce28('0x59')];_0x1594ac=_0x38742f[_0xce28('0x5a')];var _0xffcfe5=_0x38742f[_0xce28('0x5a')][_0xce28('0x5c')](-0x1);if(_0xffcfe5==='/'){_0x1594ac=_0x1594ac['substring'](0x0,_0x1594ac[_0xce28('0x5d')](_0xffcfe5));}return rp({'method':_0xce28('0x5e'),'uri':util[_0xce28('0x5f')](_0xce28('0x60'),_0x1594ac,_0xce28('0x61')),'headers':{'Authorization':_0xce28('0x62')+_0x38742f[_0xce28('0x5b')]},'json':!![]});}})[_0xce28('0x25')](function(_0x245c1e){if(_0x245c1e){var _0x5c4f5d=_0x245c1e[_0xce28('0x63')];var _0x517519=![];var _0x475688=null;for(_0x475688=0x0;_0x475688<_0x5c4f5d[_0xce28('0x48')];_0x475688++){if(_0x5c4f5d[_0x475688][_0xce28('0x64')]===_0x44ac8c){_0x517519=!![];}}if(_0x517519){return!![];}else{throw new Error({'statusCode':0x194,'message':_0xce28('0x65')});}}})[_0xce28('0x25')](respondWithResult(_0x563208,null))[_0xce28('0x45')](function(_0x34a5fb){var _0x45292b=_0x3219bd[_0xce28('0x30')][_0xce28('0x66')]?0x1f4:_0x34a5fb[_0xce28('0x67')]||0x1f4;logger[_0xce28('0x27')](_0xce28('0x68'),_0xce28('0x58'),_0x45292b,JSON[_0xce28('0x69')](_0x34a5fb));delete _0x34a5fb[_0xce28('0x28')];if(_0x45292b===0x191){_0x45292b=0x190;}_0x563208[_0xce28('0x19')](_0x45292b)['send'](_0x3219bd[_0xce28('0x30')][_0xce28('0x66')]?{'message':_0xce28('0x6a'),'statusCode':_0x34a5fb['statusCode']}:_0x34a5fb);});};