b5348d2040334e33f2cf61fed194ee26e2d502f2
[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 _0x67d4=['crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','index','map','FreshsalesAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','filter','where','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','include','find','create','body','getConfigurations','findOne','FreshsalesConfiguration','nolimit','addConfiguration','AccountId','Subjects','getDescriptions','channel','FreshsalesField','Descriptions','username','remoteUri','slice','lastIndexOf','GET','/api/selector/owners','apiKey','email','Requested\x20Resource\x20not\x20Found','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','test','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x52dff8,_0x924832){var _0x5f1c49=function(_0x59352a){while(--_0x59352a){_0x52dff8['push'](_0x52dff8['shift']());}};_0x5f1c49(++_0x924832);}(_0x67d4,0xc4));var _0x467d=function(_0x26a3d2,_0x1b3987){_0x26a3d2=_0x26a3d2-0x0;var _0x2130d8=_0x67d4[_0x26a3d2];return _0x2130d8;};'use strict';var emlformat=require(_0x467d('0x0'));var rimraf=require(_0x467d('0x1'));var zipdir=require(_0x467d('0x2'));var jsonpatch=require(_0x467d('0x3'));var rp=require(_0x467d('0x4'));var moment=require(_0x467d('0x5'));var BPromise=require(_0x467d('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x467d('0x7'));var sox=require(_0x467d('0x8'));var csv=require(_0x467d('0x9'));var ejs=require(_0x467d('0xa'));var fs=require('fs');var fs_extra=require(_0x467d('0xb'));var _=require(_0x467d('0xc'));var squel=require(_0x467d('0xd'));var crypto=require(_0x467d('0xe'));var jsforce=require(_0x467d('0xf'));var deskjs=require(_0x467d('0x10'));var toCsv=require(_0x467d('0x9'));var querystring=require('querystring');var Papa=require(_0x467d('0x11'));var Redis=require(_0x467d('0x12'));var authService=require(_0x467d('0x13'));var qs=require(_0x467d('0x14'));var as=require(_0x467d('0x15'));var hardwareService=require(_0x467d('0x16'));var logger=require('../../config/logger')(_0x467d('0x17'));var utils=require(_0x467d('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x467d('0x19'));var db=require(_0x467d('0x1a'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x390e0f,_0x45b19d){_0x45b19d=_0x45b19d||0xcc;return function(_0x27dc40){if(_0x27dc40){return _0x390e0f[_0x467d('0x1b')](_0x45b19d);}return _0x390e0f['status'](_0x45b19d)[_0x467d('0x1c')]();};}function respondWithResult(_0x39e3ef,_0x52d6d6){_0x52d6d6=_0x52d6d6||0xc8;return function(_0x851929){if(_0x851929){return _0x39e3ef[_0x467d('0x1d')](_0x52d6d6)[_0x467d('0x1e')](_0x851929);}};}function respondWithFilteredResult(_0x5b2303,_0x2c7a91){return function(_0x3ba539){if(_0x3ba539){var _0x4ed966=typeof _0x2c7a91[_0x467d('0x1f')]==='undefined'&&typeof _0x2c7a91[_0x467d('0x20')]===_0x467d('0x21');var _0x52480e=_0x3ba539[_0x467d('0x22')];var _0x25b672=_0x4ed966?0x0:_0x2c7a91[_0x467d('0x1f')];var _0x1e6062=_0x4ed966?_0x3ba539[_0x467d('0x22')]:_0x2c7a91[_0x467d('0x1f')]+_0x2c7a91[_0x467d('0x20')];var _0x53b532;if(_0x1e6062>=_0x52480e){_0x1e6062=_0x52480e;_0x53b532=0xc8;}else{_0x53b532=0xce;}_0x5b2303[_0x467d('0x1d')](_0x53b532);return _0x5b2303[_0x467d('0x23')](_0x467d('0x24'),_0x25b672+'-'+_0x1e6062+'/'+_0x52480e)[_0x467d('0x1e')](_0x3ba539);}return null;};}function patchUpdates(_0x2a17ed){return function(_0x1c5f4f){try{jsonpatch[_0x467d('0x25')](_0x1c5f4f,_0x2a17ed,!![]);}catch(_0x2db5c7){return BPromise[_0x467d('0x26')](_0x2db5c7);}return _0x1c5f4f[_0x467d('0x27')]();};}function saveUpdates(_0x2c6bb1,_0x202144){return function(_0x597e71){if(_0x597e71){return _0x597e71[_0x467d('0x28')](_0x2c6bb1)[_0x467d('0x29')](function(_0x24dbfb){return _0x24dbfb;});}return null;};}function removeEntity(_0x13fa65,_0x2830ea){return function(_0x2a992){if(_0x2a992){return _0x2a992[_0x467d('0x2a')]()['then'](function(){_0x13fa65[_0x467d('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x32a5ee,_0xf8f03){return function(_0x2c2002){if(!_0x2c2002){_0x32a5ee[_0x467d('0x1b')](0x194);}return _0x2c2002;};}function handleError(_0x2acb69,_0x4351d7){_0x4351d7=_0x4351d7||0x1f4;return function(_0x3cac81){logger['error'](_0x3cac81[_0x467d('0x2b')]);if(_0x3cac81[_0x467d('0x2c')]){delete _0x3cac81[_0x467d('0x2c')];}_0x2acb69[_0x467d('0x1d')](_0x4351d7)[_0x467d('0x2d')](_0x3cac81);};}exports[_0x467d('0x2e')]=function(_0xd9bfed,_0x42aa78){var _0x56aa03={},_0x287ac2={},_0x14c86e={'count':0x0,'rows':[]};var _0x298d91=_[_0x467d('0x2f')](db[_0x467d('0x30')][_0x467d('0x31')],function(_0x45fbe4){return{'name':_0x45fbe4[_0x467d('0x32')],'type':_0x45fbe4[_0x467d('0x33')][_0x467d('0x34')]};});_0x287ac2[_0x467d('0x35')]=_['map'](_0x298d91,_0x467d('0x2c'));_0x287ac2[_0x467d('0x36')]=_[_0x467d('0x37')](_0xd9bfed[_0x467d('0x36')]);_0x287ac2[_0x467d('0x38')]=_[_0x467d('0x39')](_0x287ac2[_0x467d('0x35')],_0x287ac2[_0x467d('0x36')]);_0x56aa03[_0x467d('0x3a')]=_[_0x467d('0x39')](_0x287ac2['model'],qs['fields'](_0xd9bfed[_0x467d('0x36')][_0x467d('0x3b')]));_0x56aa03['attributes']=_0x56aa03['attributes'][_0x467d('0x3c')]?_0x56aa03['attributes']:_0x287ac2[_0x467d('0x35')];if(!_0xd9bfed[_0x467d('0x36')][_0x467d('0x3d')]('nolimit')){_0x56aa03[_0x467d('0x20')]=qs['limit'](_0xd9bfed[_0x467d('0x36')][_0x467d('0x20')]);_0x56aa03['offset']=qs[_0x467d('0x1f')](_0xd9bfed['query'][_0x467d('0x1f')]);}_0x56aa03[_0x467d('0x3e')]=qs[_0x467d('0x3f')](_0xd9bfed[_0x467d('0x36')][_0x467d('0x3f')]);_0x56aa03['where']=qs['filters'](_['pick'](_0xd9bfed['query'],_0x287ac2[_0x467d('0x38')]),_0x298d91);if(_0xd9bfed[_0x467d('0x36')][_0x467d('0x40')]){_0x56aa03[_0x467d('0x41')]=_[_0x467d('0x42')](_0x56aa03[_0x467d('0x41')],{'$or':_['map'](_0x298d91,function(_0x12c297){if(_0x12c297[_0x467d('0x33')]!==_0x467d('0x43')){var _0x39f203={};_0x39f203[_0x12c297[_0x467d('0x2c')]]={'$like':'%'+_0xd9bfed[_0x467d('0x36')][_0x467d('0x40')]+'%'};return _0x39f203;}})});}_0x56aa03=_[_0x467d('0x42')]({},_0x56aa03,_0xd9bfed[_0x467d('0x44')]);var _0x242aae={'where':_0x56aa03[_0x467d('0x41')]};return db[_0x467d('0x30')][_0x467d('0x22')](_0x242aae)[_0x467d('0x29')](function(_0x547669){_0x14c86e[_0x467d('0x22')]=_0x547669;if(_0xd9bfed[_0x467d('0x36')][_0x467d('0x45')]){_0x56aa03['include']=[{'all':!![]}];}return db[_0x467d('0x30')][_0x467d('0x46')](_0x56aa03);})[_0x467d('0x29')](function(_0x9fb66b){_0x14c86e[_0x467d('0x47')]=_0x9fb66b;return _0x14c86e;})['then'](respondWithFilteredResult(_0x42aa78,_0x56aa03))[_0x467d('0x48')](handleError(_0x42aa78,null));};exports[_0x467d('0x49')]=function(_0x1e4151,_0xdf1394){var _0x379e31={'raw':![],'where':{'id':_0x1e4151[_0x467d('0x4a')]['id']}},_0x1e0e86={};_0x1e0e86['model']=_[_0x467d('0x37')](db['FreshsalesAccount'][_0x467d('0x31')]);_0x1e0e86[_0x467d('0x36')]=_['keys'](_0x1e4151['query']);_0x1e0e86[_0x467d('0x38')]=_[_0x467d('0x39')](_0x1e0e86['model'],_0x1e0e86['query']);_0x379e31[_0x467d('0x3a')]=_[_0x467d('0x39')](_0x1e0e86[_0x467d('0x35')],qs[_0x467d('0x3b')](_0x1e4151[_0x467d('0x36')][_0x467d('0x3b')]));_0x379e31[_0x467d('0x3a')]=_0x379e31[_0x467d('0x3a')][_0x467d('0x3c')]?_0x379e31[_0x467d('0x3a')]:_0x1e0e86[_0x467d('0x35')];if(_0x1e4151[_0x467d('0x36')][_0x467d('0x45')]){_0x379e31[_0x467d('0x4b')]=[{'all':!![]}];}_0x379e31=_[_0x467d('0x42')]({},_0x379e31,_0x1e4151[_0x467d('0x44')]);return db['FreshsalesAccount'][_0x467d('0x4c')](_0x379e31)['then'](handleEntityNotFound(_0xdf1394,null))[_0x467d('0x29')](respondWithResult(_0xdf1394,null))[_0x467d('0x48')](handleError(_0xdf1394,null));};exports[_0x467d('0x4d')]=function(_0xe07926,_0xabf521){return db[_0x467d('0x30')][_0x467d('0x4d')](_0xe07926[_0x467d('0x4e')],{})[_0x467d('0x29')](respondWithResult(_0xabf521,0xc9))[_0x467d('0x48')](handleError(_0xabf521,null));};exports[_0x467d('0x28')]=function(_0x1141f5,_0x5afa1e){if(_0x1141f5[_0x467d('0x4e')]['id']){delete _0x1141f5[_0x467d('0x4e')]['id'];}return db['FreshsalesAccount'][_0x467d('0x4c')]({'where':{'id':_0x1141f5[_0x467d('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5afa1e,null))[_0x467d('0x29')](saveUpdates(_0x1141f5[_0x467d('0x4e')],null))[_0x467d('0x29')](respondWithResult(_0x5afa1e,null))[_0x467d('0x48')](handleError(_0x5afa1e,null));};exports['destroy']=function(_0x22274c,_0x2d9522){return db[_0x467d('0x30')]['find']({'where':{'id':_0x22274c[_0x467d('0x4a')]['id']}})[_0x467d('0x29')](handleEntityNotFound(_0x2d9522,null))['then'](removeEntity(_0x2d9522,null))[_0x467d('0x48')](handleError(_0x2d9522,null));};exports[_0x467d('0x4f')]=function(_0x362fef,_0xf0e6f6,_0x4522f1){var _0x9afcaf={};var _0x43ff6f={};var _0x48fb33;var _0x38edb6;return db[_0x467d('0x30')][_0x467d('0x50')]({'where':{'id':_0x362fef[_0x467d('0x4a')]['id']}})[_0x467d('0x29')](handleEntityNotFound(_0xf0e6f6,null))['then'](function(_0x2ef6b0){if(_0x2ef6b0){_0x48fb33=_0x2ef6b0;_0x43ff6f[_0x467d('0x35')]=_['keys'](db[_0x467d('0x51')]['rawAttributes']);_0x43ff6f[_0x467d('0x36')]=_['keys'](_0x362fef['query']);_0x43ff6f[_0x467d('0x38')]=_[_0x467d('0x39')](_0x43ff6f['model'],_0x43ff6f[_0x467d('0x36')]);_0x9afcaf[_0x467d('0x3a')]=_[_0x467d('0x39')](_0x43ff6f[_0x467d('0x35')],qs['fields'](_0x362fef[_0x467d('0x36')][_0x467d('0x3b')]));_0x9afcaf[_0x467d('0x3a')]=_0x9afcaf[_0x467d('0x3a')][_0x467d('0x3c')]?_0x9afcaf[_0x467d('0x3a')]:_0x43ff6f[_0x467d('0x35')];_0x9afcaf[_0x467d('0x3e')]=qs[_0x467d('0x3f')](_0x362fef[_0x467d('0x36')][_0x467d('0x3f')]);_0x9afcaf[_0x467d('0x41')]=qs[_0x467d('0x38')](_['pick'](_0x362fef[_0x467d('0x36')],_0x43ff6f['filters']));if(_0x362fef[_0x467d('0x36')]['filter']){_0x9afcaf['where']=_[_0x467d('0x42')](_0x9afcaf[_0x467d('0x41')],{'$or':_[_0x467d('0x2f')](_0x9afcaf[_0x467d('0x3a')],function(_0x4dee1e){var _0x3b299f={};_0x3b299f[_0x4dee1e]={'$like':'%'+_0x362fef['query'][_0x467d('0x40')]+'%'};return _0x3b299f;})});}_0x9afcaf=_[_0x467d('0x42')]({},_0x9afcaf,_0x362fef[_0x467d('0x44')]);return _0x48fb33['getConfigurations'](_0x9afcaf);}})[_0x467d('0x29')](function(_0x5df343){if(_0x5df343){_0x38edb6=_0x5df343['length'];if(!_0x362fef['query'][_0x467d('0x3d')](_0x467d('0x52'))){_0x9afcaf[_0x467d('0x20')]=qs[_0x467d('0x20')](_0x362fef[_0x467d('0x36')][_0x467d('0x20')]);_0x9afcaf['offset']=qs[_0x467d('0x1f')](_0x362fef['query'][_0x467d('0x1f')]);}return _0x48fb33[_0x467d('0x4f')](_0x9afcaf);}})['then'](function(_0x4e069d){if(_0x4e069d){return _0x4e069d?{'count':_0x38edb6,'rows':_0x4e069d}:null;}})[_0x467d('0x29')](respondWithResult(_0xf0e6f6,null))[_0x467d('0x48')](handleError(_0xf0e6f6,null));};exports[_0x467d('0x53')]=function(_0x45c7be,_0x303ac9,_0xaee928){if(_0x45c7be['body']['id']){delete _0x45c7be[_0x467d('0x4e')]['id'];}return db[_0x467d('0x30')]['findOne']({'where':{'id':_0x45c7be[_0x467d('0x4a')]['id']}})[_0x467d('0x29')](handleEntityNotFound(_0x303ac9,null))[_0x467d('0x29')](function(_0x18353f){if(_0x18353f){_0x45c7be['body'][_0x467d('0x54')]=_0x18353f['id'];_0x45c7be[_0x467d('0x4e')][_0x467d('0x55')]=integrations['getSubjects'](_0x45c7be[_0x467d('0x4e')]['channel'],_0x45c7be[_0x467d('0x4e')]['type']);_0x45c7be[_0x467d('0x4e')]['Descriptions']=integrations[_0x467d('0x56')](_0x45c7be['body'][_0x467d('0x57')],_0x45c7be['body'][_0x467d('0x33')]);return db[_0x467d('0x51')][_0x467d('0x4d')](_0x45c7be[_0x467d('0x4e')],{'include':[{'model':db[_0x467d('0x58')],'as':_0x467d('0x55')},{'model':db[_0x467d('0x58')],'as':_0x467d('0x59')}]});}return null;})[_0x467d('0x29')](respondWithResult(_0x303ac9,null))[_0x467d('0x48')](handleError(_0x303ac9,null));};exports['getFields']=function(_0x32318d,_0x5a5dca,_0x394470){var _0x558a3e='';var _0x28c31b='';return db[_0x467d('0x30')][_0x467d('0x50')]({'where':{'id':_0x32318d[_0x467d('0x4a')]['id']},'attributes':['id',_0x467d('0x5a'),_0x467d('0x5b'),'apiKey']})['then'](handleEntityNotFound(_0x5a5dca,null))[_0x467d('0x29')](function(_0x357adc){if(_0x357adc){_0x28c31b=_0x357adc[_0x467d('0x5a')];_0x558a3e=_0x357adc[_0x467d('0x5b')];var _0x43b08c=_0x357adc['remoteUri'][_0x467d('0x5c')](-0x1);if(_0x43b08c==='/'){_0x558a3e=_0x558a3e['substring'](0x0,_0x558a3e[_0x467d('0x5d')](_0x43b08c));}return rp({'method':_0x467d('0x5e'),'uri':util['format']('%s%s',_0x558a3e,_0x467d('0x5f')),'headers':{'Authorization':'Token\x20token='+_0x357adc[_0x467d('0x60')]},'json':!![]});}})[_0x467d('0x29')](function(_0x5f2b56){if(_0x5f2b56){var _0x65b28f=_0x5f2b56['users'];var _0x28d97a=![];var _0x787674=null;for(_0x787674=0x0;_0x787674<_0x65b28f['length'];_0x787674++){if(_0x65b28f[_0x787674][_0x467d('0x61')]===_0x28c31b){_0x28d97a=!![];}}if(_0x28d97a){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x467d('0x62')});}}})['then'](respondWithResult(_0x5a5dca,null))[_0x467d('0x48')](function(_0x344768){var _0x112a3b=_0x32318d[_0x467d('0x36')]['test']?0x1f4:_0x344768[_0x467d('0x63')]||0x1f4;logger[_0x467d('0x64')](_0x467d('0x65'),_0x467d('0x66'),_0x112a3b,JSON[_0x467d('0x67')](_0x344768));delete _0x344768[_0x467d('0x2c')];if(_0x112a3b===0x191){_0x112a3b=0x190;}_0x5a5dca['status'](_0x112a3b)[_0x467d('0x2d')](_0x32318d[_0x467d('0x36')][_0x467d('0x68')]?{'message':'Wrong\x20credentials','statusCode':_0x344768[_0x467d('0x63')]}:_0x344768);});};