685837c1348a83c9b3b020d458228c833603ebda
[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 _0x773f=['slice','lastIndexOf','GET','format','%s%s','/api/selector/owners','Token\x20token=','users','email','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','end','offset','undefined','limit','count','status','set','reject','save','update','then','error','stack','name','send','index','map','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','FreshsalesAccount','includeAll','include','findAll','rows','catch','rawAttributes','options','create','body','find','params','destroy','getConfigurations','findOne','FreshsalesConfiguration','pick','addConfiguration','AccountId','channel','Descriptions','Subjects','username','remoteUri','apiKey'];(function(_0x5ec473,_0x98a6cc){var _0x5f2030=function(_0x2d00b3){while(--_0x2d00b3){_0x5ec473['push'](_0x5ec473['shift']());}};_0x5f2030(++_0x98a6cc);}(_0x773f,0x1a7));var _0xf773=function(_0x10df1e,_0xf56f85){_0x10df1e=_0x10df1e-0x0;var _0x3e24fb=_0x773f[_0x10df1e];return _0x3e24fb;};'use strict';var emlformat=require(_0xf773('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xf773('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf773('0x2'));var moment=require(_0xf773('0x3'));var BPromise=require(_0xf773('0x4'));var Mustache=require(_0xf773('0x5'));var util=require(_0xf773('0x6'));var path=require(_0xf773('0x7'));var sox=require(_0xf773('0x8'));var csv=require(_0xf773('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf773('0xa'));var _=require(_0xf773('0xb'));var squel=require(_0xf773('0xc'));var crypto=require(_0xf773('0xd'));var jsforce=require(_0xf773('0xe'));var deskjs=require(_0xf773('0xf'));var toCsv=require(_0xf773('0x9'));var querystring=require(_0xf773('0x10'));var Papa=require(_0xf773('0x11'));var Redis=require(_0xf773('0x12'));var authService=require(_0xf773('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xf773('0x14'))(_0xf773('0x15'));var utils=require(_0xf773('0x16'));var config=require(_0xf773('0x17'));var licenseUtil=require(_0xf773('0x18'));var db=require(_0xf773('0x19'))['db'];var integrations=require(_0xf773('0x1a'));function respondWithStatusCode(_0xc82764,_0x47457f){_0x47457f=_0x47457f||0xcc;return function(_0x35efa0){if(_0x35efa0){return _0xc82764['sendStatus'](_0x47457f);}return _0xc82764['status'](_0x47457f)[_0xf773('0x1b')]();};}function respondWithResult(_0x423de2,_0xcbac9f){_0xcbac9f=_0xcbac9f||0xc8;return function(_0x40fd33){if(_0x40fd33){return _0x423de2['status'](_0xcbac9f)['json'](_0x40fd33);}};}function respondWithFilteredResult(_0x41fa11,_0xe74f8a){return function(_0x2f7c48){if(_0x2f7c48){var _0x470405=typeof _0xe74f8a[_0xf773('0x1c')]===_0xf773('0x1d')&&typeof _0xe74f8a[_0xf773('0x1e')]===_0xf773('0x1d');var _0x1e9c9d=_0x2f7c48[_0xf773('0x1f')];var _0x20e723=_0x470405?0x0:_0xe74f8a[_0xf773('0x1c')];var _0x4ad051=_0x470405?_0x2f7c48[_0xf773('0x1f')]:_0xe74f8a[_0xf773('0x1c')]+_0xe74f8a['limit'];var _0x55cd50;if(_0x4ad051>=_0x1e9c9d){_0x4ad051=_0x1e9c9d;_0x55cd50=0xc8;}else{_0x55cd50=0xce;}_0x41fa11[_0xf773('0x20')](_0x55cd50);return _0x41fa11[_0xf773('0x21')]('Content-Range',_0x20e723+'-'+_0x4ad051+'/'+_0x1e9c9d)['json'](_0x2f7c48);}return null;};}function patchUpdates(_0x2e781e){return function(_0x21f6c2){try{jsonpatch['apply'](_0x21f6c2,_0x2e781e,!![]);}catch(_0xa4edd4){return BPromise[_0xf773('0x22')](_0xa4edd4);}return _0x21f6c2[_0xf773('0x23')]();};}function saveUpdates(_0x5a4781,_0x5202f8){return function(_0x56010d){if(_0x56010d){return _0x56010d[_0xf773('0x24')](_0x5a4781)[_0xf773('0x25')](function(_0x473498){return _0x473498;});}return null;};}function removeEntity(_0x303f81,_0x990cfe){return function(_0x4a19ca){if(_0x4a19ca){return _0x4a19ca['destroy']()[_0xf773('0x25')](function(){_0x303f81[_0xf773('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2e2bbc,_0x136b39){return function(_0x881496){if(!_0x881496){_0x2e2bbc['sendStatus'](0x194);}return _0x881496;};}function handleError(_0x3a48f1,_0x1ece6e){_0x1ece6e=_0x1ece6e||0x1f4;return function(_0x32f9d4){logger[_0xf773('0x26')](_0x32f9d4[_0xf773('0x27')]);if(_0x32f9d4[_0xf773('0x28')]){delete _0x32f9d4[_0xf773('0x28')];}_0x3a48f1[_0xf773('0x20')](_0x1ece6e)[_0xf773('0x29')](_0x32f9d4);};}exports[_0xf773('0x2a')]=function(_0x361ad9,_0x3cb448){var _0x1030c5={},_0x27b510={},_0x175c06={'count':0x0,'rows':[]};var _0x3a5230=_[_0xf773('0x2b')](db['FreshsalesAccount']['rawAttributes'],function(_0x5f58d4){return{'name':_0x5f58d4[_0xf773('0x2c')],'type':_0x5f58d4[_0xf773('0x2d')][_0xf773('0x2e')]};});_0x27b510[_0xf773('0x2f')]=_['map'](_0x3a5230,_0xf773('0x28'));_0x27b510[_0xf773('0x30')]=_[_0xf773('0x31')](_0x361ad9[_0xf773('0x30')]);_0x27b510[_0xf773('0x32')]=_[_0xf773('0x33')](_0x27b510[_0xf773('0x2f')],_0x27b510[_0xf773('0x30')]);_0x1030c5['attributes']=_[_0xf773('0x33')](_0x27b510[_0xf773('0x2f')],qs['fields'](_0x361ad9['query'][_0xf773('0x34')]));_0x1030c5[_0xf773('0x35')]=_0x1030c5['attributes'][_0xf773('0x36')]?_0x1030c5[_0xf773('0x35')]:_0x27b510[_0xf773('0x2f')];if(!_0x361ad9[_0xf773('0x30')][_0xf773('0x37')](_0xf773('0x38'))){_0x1030c5['limit']=qs[_0xf773('0x1e')](_0x361ad9['query'][_0xf773('0x1e')]);_0x1030c5[_0xf773('0x1c')]=qs[_0xf773('0x1c')](_0x361ad9[_0xf773('0x30')][_0xf773('0x1c')]);}_0x1030c5['order']=qs[_0xf773('0x39')](_0x361ad9[_0xf773('0x30')][_0xf773('0x39')]);_0x1030c5[_0xf773('0x3a')]=qs['filters'](_['pick'](_0x361ad9['query'],_0x27b510[_0xf773('0x32')]),_0x3a5230);if(_0x361ad9['query'][_0xf773('0x3b')]){_0x1030c5[_0xf773('0x3a')]=_[_0xf773('0x3c')](_0x1030c5[_0xf773('0x3a')],{'$or':_['map'](_0x3a5230,function(_0xf771a1){if(_0xf771a1['type']!==_0xf773('0x3d')){var _0x2783f3={};_0x2783f3[_0xf771a1[_0xf773('0x28')]]={'$like':'%'+_0x361ad9[_0xf773('0x30')][_0xf773('0x3b')]+'%'};return _0x2783f3;}})});}_0x1030c5=_[_0xf773('0x3c')]({},_0x1030c5,_0x361ad9['options']);var _0x52a820={'where':_0x1030c5['where']};return db[_0xf773('0x3e')][_0xf773('0x1f')](_0x52a820)[_0xf773('0x25')](function(_0x1c92e7){_0x175c06['count']=_0x1c92e7;if(_0x361ad9[_0xf773('0x30')][_0xf773('0x3f')]){_0x1030c5[_0xf773('0x40')]=[{'all':!![]}];}return db[_0xf773('0x3e')][_0xf773('0x41')](_0x1030c5);})['then'](function(_0x520500){_0x175c06[_0xf773('0x42')]=_0x520500;return _0x175c06;})[_0xf773('0x25')](respondWithFilteredResult(_0x3cb448,_0x1030c5))[_0xf773('0x43')](handleError(_0x3cb448,null));};exports['show']=function(_0x2b16f9,_0x2cde2e){var _0x3133b9={'raw':![],'where':{'id':_0x2b16f9['params']['id']}},_0x421af1={};_0x421af1[_0xf773('0x2f')]=_[_0xf773('0x31')](db['FreshsalesAccount'][_0xf773('0x44')]);_0x421af1['query']=_[_0xf773('0x31')](_0x2b16f9[_0xf773('0x30')]);_0x421af1[_0xf773('0x32')]=_[_0xf773('0x33')](_0x421af1[_0xf773('0x2f')],_0x421af1[_0xf773('0x30')]);_0x3133b9[_0xf773('0x35')]=_[_0xf773('0x33')](_0x421af1[_0xf773('0x2f')],qs[_0xf773('0x34')](_0x2b16f9[_0xf773('0x30')][_0xf773('0x34')]));_0x3133b9[_0xf773('0x35')]=_0x3133b9[_0xf773('0x35')][_0xf773('0x36')]?_0x3133b9['attributes']:_0x421af1[_0xf773('0x2f')];if(_0x2b16f9[_0xf773('0x30')][_0xf773('0x3f')]){_0x3133b9['include']=[{'all':!![]}];}_0x3133b9=_[_0xf773('0x3c')]({},_0x3133b9,_0x2b16f9[_0xf773('0x45')]);return db[_0xf773('0x3e')]['find'](_0x3133b9)['then'](handleEntityNotFound(_0x2cde2e,null))[_0xf773('0x25')](respondWithResult(_0x2cde2e,null))[_0xf773('0x43')](handleError(_0x2cde2e,null));};exports['create']=function(_0x8a59f5,_0x380de4){return db[_0xf773('0x3e')][_0xf773('0x46')](_0x8a59f5[_0xf773('0x47')],{})[_0xf773('0x25')](respondWithResult(_0x380de4,0xc9))[_0xf773('0x43')](handleError(_0x380de4,null));};exports[_0xf773('0x24')]=function(_0x3fc7e5,_0x4bc804){if(_0x3fc7e5[_0xf773('0x47')]['id']){delete _0x3fc7e5['body']['id'];}return db['FreshsalesAccount'][_0xf773('0x48')]({'where':{'id':_0x3fc7e5[_0xf773('0x49')]['id']}})[_0xf773('0x25')](handleEntityNotFound(_0x4bc804,null))[_0xf773('0x25')](saveUpdates(_0x3fc7e5['body'],null))[_0xf773('0x25')](respondWithResult(_0x4bc804,null))[_0xf773('0x43')](handleError(_0x4bc804,null));};exports[_0xf773('0x4a')]=function(_0x5b7038,_0x23f465){return db[_0xf773('0x3e')]['find']({'where':{'id':_0x5b7038[_0xf773('0x49')]['id']}})[_0xf773('0x25')](handleEntityNotFound(_0x23f465,null))[_0xf773('0x25')](removeEntity(_0x23f465,null))[_0xf773('0x43')](handleError(_0x23f465,null));};exports[_0xf773('0x4b')]=function(_0x407805,_0x4d8505,_0x5ea506){var _0xb1aa17={};var _0x33a2de={};var _0x4cc05b;var _0x14d4e6;return db[_0xf773('0x3e')][_0xf773('0x4c')]({'where':{'id':_0x407805[_0xf773('0x49')]['id']}})[_0xf773('0x25')](handleEntityNotFound(_0x4d8505,null))[_0xf773('0x25')](function(_0x3ac249){if(_0x3ac249){_0x4cc05b=_0x3ac249;_0x33a2de[_0xf773('0x2f')]=_[_0xf773('0x31')](db[_0xf773('0x4d')][_0xf773('0x44')]);_0x33a2de['query']=_['keys'](_0x407805[_0xf773('0x30')]);_0x33a2de[_0xf773('0x32')]=_[_0xf773('0x33')](_0x33a2de[_0xf773('0x2f')],_0x33a2de['query']);_0xb1aa17[_0xf773('0x35')]=_['intersection'](_0x33a2de['model'],qs[_0xf773('0x34')](_0x407805[_0xf773('0x30')][_0xf773('0x34')]));_0xb1aa17[_0xf773('0x35')]=_0xb1aa17[_0xf773('0x35')][_0xf773('0x36')]?_0xb1aa17[_0xf773('0x35')]:_0x33a2de[_0xf773('0x2f')];_0xb1aa17['order']=qs['sort'](_0x407805[_0xf773('0x30')]['sort']);_0xb1aa17[_0xf773('0x3a')]=qs[_0xf773('0x32')](_[_0xf773('0x4e')](_0x407805[_0xf773('0x30')],_0x33a2de[_0xf773('0x32')]));if(_0x407805[_0xf773('0x30')][_0xf773('0x3b')]){_0xb1aa17[_0xf773('0x3a')]=_[_0xf773('0x3c')](_0xb1aa17[_0xf773('0x3a')],{'$or':_[_0xf773('0x2b')](_0xb1aa17[_0xf773('0x35')],function(_0x51a46c){var _0x32c975={};_0x32c975[_0x51a46c]={'$like':'%'+_0x407805[_0xf773('0x30')][_0xf773('0x3b')]+'%'};return _0x32c975;})});}_0xb1aa17=_[_0xf773('0x3c')]({},_0xb1aa17,_0x407805[_0xf773('0x45')]);return _0x4cc05b[_0xf773('0x4b')](_0xb1aa17);}})[_0xf773('0x25')](function(_0x4b133b){if(_0x4b133b){_0x14d4e6=_0x4b133b[_0xf773('0x36')];if(!_0x407805['query'][_0xf773('0x37')](_0xf773('0x38'))){_0xb1aa17[_0xf773('0x1e')]=qs[_0xf773('0x1e')](_0x407805[_0xf773('0x30')]['limit']);_0xb1aa17[_0xf773('0x1c')]=qs[_0xf773('0x1c')](_0x407805[_0xf773('0x30')][_0xf773('0x1c')]);}return _0x4cc05b[_0xf773('0x4b')](_0xb1aa17);}})['then'](function(_0x1a60d8){if(_0x1a60d8){return _0x1a60d8?{'count':_0x14d4e6,'rows':_0x1a60d8}:null;}})['then'](respondWithResult(_0x4d8505,null))[_0xf773('0x43')](handleError(_0x4d8505,null));};exports[_0xf773('0x4f')]=function(_0x1c28e1,_0x2674f1,_0x5d73ce){if(_0x1c28e1[_0xf773('0x47')]['id']){delete _0x1c28e1[_0xf773('0x47')]['id'];}return db[_0xf773('0x3e')][_0xf773('0x4c')]({'where':{'id':_0x1c28e1['params']['id']}})[_0xf773('0x25')](handleEntityNotFound(_0x2674f1,null))[_0xf773('0x25')](function(_0x382426){if(_0x382426){_0x1c28e1['body'][_0xf773('0x50')]=_0x382426['id'];_0x1c28e1[_0xf773('0x47')]['Subjects']=integrations['getSubjects'](_0x1c28e1[_0xf773('0x47')][_0xf773('0x51')],_0x1c28e1[_0xf773('0x47')]['type']);_0x1c28e1['body'][_0xf773('0x52')]=integrations['getDescriptions'](_0x1c28e1[_0xf773('0x47')]['channel'],_0x1c28e1[_0xf773('0x47')][_0xf773('0x2d')]);return db[_0xf773('0x4d')][_0xf773('0x46')](_0x1c28e1['body'],{'include':[{'model':db['FreshsalesField'],'as':_0xf773('0x53')},{'model':db['FreshsalesField'],'as':_0xf773('0x52')}]});}return null;})[_0xf773('0x25')](respondWithResult(_0x2674f1,null))[_0xf773('0x43')](handleError(_0x2674f1,null));};exports['getFields']=function(_0x12c5c4,_0x4197e7,_0x17c31d){var _0x14efa0='';var _0x4c1eca='';return db[_0xf773('0x3e')][_0xf773('0x4c')]({'where':{'id':_0x12c5c4[_0xf773('0x49')]['id']},'attributes':['id',_0xf773('0x54'),_0xf773('0x55'),_0xf773('0x56')]})[_0xf773('0x25')](handleEntityNotFound(_0x4197e7,null))[_0xf773('0x25')](function(_0x2c0508){if(_0x2c0508){_0x4c1eca=_0x2c0508[_0xf773('0x54')];_0x14efa0=_0x2c0508[_0xf773('0x55')];var _0x23f744=_0x2c0508['remoteUri'][_0xf773('0x57')](-0x1);if(_0x23f744==='/'){_0x14efa0=_0x14efa0['substring'](0x0,_0x14efa0[_0xf773('0x58')](_0x23f744));}return rp({'method':_0xf773('0x59'),'uri':util[_0xf773('0x5a')](_0xf773('0x5b'),_0x14efa0,_0xf773('0x5c')),'headers':{'Authorization':_0xf773('0x5d')+_0x2c0508[_0xf773('0x56')]},'json':!![]});}})[_0xf773('0x25')](function(_0x4bc571){if(_0x4bc571){var _0x1452ab=_0x4bc571[_0xf773('0x5e')];var _0x55e7fb=![];var _0x43c876=null;for(_0x43c876=0x0;_0x43c876<_0x1452ab[_0xf773('0x36')];_0x43c876++){if(_0x1452ab[_0x43c876][_0xf773('0x5f')]===_0x4c1eca){_0x55e7fb=!![];}}if(_0x55e7fb){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})[_0xf773('0x25')](respondWithResult(_0x4197e7,null))['catch'](function(_0x3f942b){var _0xbd3173=_0x12c5c4['query'][_0xf773('0x60')]?0x1f4:_0x3f942b[_0xf773('0x61')]||0x1f4;logger[_0xf773('0x26')](_0xf773('0x62'),_0xf773('0x63'),_0xbd3173,JSON[_0xf773('0x64')](_0x3f942b));delete _0x3f942b[_0xf773('0x28')];if(_0xbd3173===0x191){_0xbd3173=0x190;}_0x4197e7['status'](_0xbd3173)[_0xf773('0x29')](_0x12c5c4['query'][_0xf773('0x60')]?{'message':_0xf773('0x65'),'statusCode':_0x3f942b[_0xf773('0x61')]}:_0x3f942b);});};