8ceb108e205b0e019bdf205c374c93ed43ba7dc9
[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 _0x2393=['set','Content-Range','reject','save','update','then','destroy','error','name','index','map','fieldName','type','query','keys','filters','intersection','model','attributes','length','hasOwnProperty','sort','where','VIRTUAL','filter','options','include','FreshsalesAccount','findAll','rows','show','params','rawAttributes','fields','includeAll','merge','catch','create','body','find','getConfigurations','order','pick','nolimit','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshsalesConfiguration','FreshsalesField','getFields','apiKey','username','remoteUri','slice','GET','%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','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../components/integrations/configuration','sendStatus','end','status','offset','limit','undefined','count'];(function(_0xd63f4d,_0x1e607b){var _0x208442=function(_0x36eaec){while(--_0x36eaec){_0xd63f4d['push'](_0xd63f4d['shift']());}};_0x208442(++_0x1e607b);}(_0x2393,0x181));var _0x3239=function(_0x5f4c7e,_0xde2e8b){_0x5f4c7e=_0x5f4c7e-0x0;var _0x28052b=_0x2393[_0x5f4c7e];return _0x28052b;};'use strict';var emlformat=require(_0x3239('0x0'));var rimraf=require(_0x3239('0x1'));var zipdir=require(_0x3239('0x2'));var jsonpatch=require(_0x3239('0x3'));var rp=require(_0x3239('0x4'));var moment=require(_0x3239('0x5'));var BPromise=require(_0x3239('0x6'));var Mustache=require(_0x3239('0x7'));var util=require(_0x3239('0x8'));var path=require(_0x3239('0x9'));var sox=require(_0x3239('0xa'));var csv=require(_0x3239('0xb'));var ejs=require(_0x3239('0xc'));var fs=require('fs');var fs_extra=require(_0x3239('0xd'));var _=require(_0x3239('0xe'));var squel=require('squel');var crypto=require(_0x3239('0xf'));var jsforce=require(_0x3239('0x10'));var deskjs=require(_0x3239('0x11'));var toCsv=require(_0x3239('0xb'));var querystring=require(_0x3239('0x12'));var Papa=require(_0x3239('0x13'));var Redis=require(_0x3239('0x14'));var authService=require('../../components/auth/service');var qs=require(_0x3239('0x15'));var as=require(_0x3239('0x16'));var hardwareService=require(_0x3239('0x17'));var logger=require('../../config/logger')(_0x3239('0x18'));var utils=require(_0x3239('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x3239('0x1a'));var db=require('../../mysqldb')['db'];var integrations=require(_0x3239('0x1b'));function respondWithStatusCode(_0x358828,_0x23bce7){_0x23bce7=_0x23bce7||0xcc;return function(_0x460f1d){if(_0x460f1d){return _0x358828[_0x3239('0x1c')](_0x23bce7);}return _0x358828['status'](_0x23bce7)[_0x3239('0x1d')]();};}function respondWithResult(_0xe233d,_0x5345f9){_0x5345f9=_0x5345f9||0xc8;return function(_0x21044c){if(_0x21044c){return _0xe233d[_0x3239('0x1e')](_0x5345f9)['json'](_0x21044c);}};}function respondWithFilteredResult(_0x38debf,_0x5d4d07){return function(_0x1344b1){if(_0x1344b1){var _0x1ffce7=typeof _0x5d4d07[_0x3239('0x1f')]==='undefined'&&typeof _0x5d4d07[_0x3239('0x20')]===_0x3239('0x21');var _0x5ed278=_0x1344b1[_0x3239('0x22')];var _0x2243ff=_0x1ffce7?0x0:_0x5d4d07[_0x3239('0x1f')];var _0x20e627=_0x1ffce7?_0x1344b1[_0x3239('0x22')]:_0x5d4d07[_0x3239('0x1f')]+_0x5d4d07[_0x3239('0x20')];var _0x44b286;if(_0x20e627>=_0x5ed278){_0x20e627=_0x5ed278;_0x44b286=0xc8;}else{_0x44b286=0xce;}_0x38debf[_0x3239('0x1e')](_0x44b286);return _0x38debf[_0x3239('0x23')](_0x3239('0x24'),_0x2243ff+'-'+_0x20e627+'/'+_0x5ed278)['json'](_0x1344b1);}return null;};}function patchUpdates(_0x58b597){return function(_0x53a7ee){try{jsonpatch['apply'](_0x53a7ee,_0x58b597,!![]);}catch(_0xd30091){return BPromise[_0x3239('0x25')](_0xd30091);}return _0x53a7ee[_0x3239('0x26')]();};}function saveUpdates(_0x5e04bb,_0x19dd98){return function(_0x5cc774){if(_0x5cc774){return _0x5cc774[_0x3239('0x27')](_0x5e04bb)[_0x3239('0x28')](function(_0x15fa65){return _0x15fa65;});}return null;};}function removeEntity(_0x4142b6,_0x8ee8d9){return function(_0x36899b){if(_0x36899b){return _0x36899b[_0x3239('0x29')]()[_0x3239('0x28')](function(){_0x4142b6['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x18ade9,_0x487b5a){return function(_0x438505){if(!_0x438505){_0x18ade9['sendStatus'](0x194);}return _0x438505;};}function handleError(_0x4d5e7e,_0x332541){_0x332541=_0x332541||0x1f4;return function(_0x97c3ae){logger[_0x3239('0x2a')](_0x97c3ae['stack']);if(_0x97c3ae[_0x3239('0x2b')]){delete _0x97c3ae[_0x3239('0x2b')];}_0x4d5e7e[_0x3239('0x1e')](_0x332541)['send'](_0x97c3ae);};}exports[_0x3239('0x2c')]=function(_0x27b43a,_0x494b13){var _0x46e56f={},_0x526afa={},_0x3f2e80={'count':0x0,'rows':[]};var _0x2b600b=_[_0x3239('0x2d')](db['FreshsalesAccount']['rawAttributes'],function(_0x38ed0a){return{'name':_0x38ed0a[_0x3239('0x2e')],'type':_0x38ed0a[_0x3239('0x2f')]['key']};});_0x526afa['model']=_['map'](_0x2b600b,_0x3239('0x2b'));_0x526afa[_0x3239('0x30')]=_[_0x3239('0x31')](_0x27b43a['query']);_0x526afa[_0x3239('0x32')]=_[_0x3239('0x33')](_0x526afa[_0x3239('0x34')],_0x526afa[_0x3239('0x30')]);_0x46e56f[_0x3239('0x35')]=_['intersection'](_0x526afa['model'],qs['fields'](_0x27b43a[_0x3239('0x30')]['fields']));_0x46e56f[_0x3239('0x35')]=_0x46e56f[_0x3239('0x35')][_0x3239('0x36')]?_0x46e56f[_0x3239('0x35')]:_0x526afa[_0x3239('0x34')];if(!_0x27b43a['query'][_0x3239('0x37')]('nolimit')){_0x46e56f[_0x3239('0x20')]=qs['limit'](_0x27b43a[_0x3239('0x30')][_0x3239('0x20')]);_0x46e56f[_0x3239('0x1f')]=qs[_0x3239('0x1f')](_0x27b43a[_0x3239('0x30')]['offset']);}_0x46e56f['order']=qs['sort'](_0x27b43a[_0x3239('0x30')][_0x3239('0x38')]);_0x46e56f[_0x3239('0x39')]=qs[_0x3239('0x32')](_['pick'](_0x27b43a[_0x3239('0x30')],_0x526afa[_0x3239('0x32')]),_0x2b600b);if(_0x27b43a[_0x3239('0x30')]['filter']){_0x46e56f[_0x3239('0x39')]=_['merge'](_0x46e56f[_0x3239('0x39')],{'$or':_[_0x3239('0x2d')](_0x2b600b,function(_0x4973b0){if(_0x4973b0['type']!==_0x3239('0x3a')){var _0x3ff242={};_0x3ff242[_0x4973b0[_0x3239('0x2b')]]={'$like':'%'+_0x27b43a[_0x3239('0x30')][_0x3239('0x3b')]+'%'};return _0x3ff242;}})});}_0x46e56f=_['merge']({},_0x46e56f,_0x27b43a[_0x3239('0x3c')]);var _0x589456={'where':_0x46e56f[_0x3239('0x39')]};return db['FreshsalesAccount']['count'](_0x589456)[_0x3239('0x28')](function(_0x804f5c){_0x3f2e80[_0x3239('0x22')]=_0x804f5c;if(_0x27b43a[_0x3239('0x30')]['includeAll']){_0x46e56f[_0x3239('0x3d')]=[{'all':!![]}];}return db[_0x3239('0x3e')][_0x3239('0x3f')](_0x46e56f);})[_0x3239('0x28')](function(_0x4c480d){_0x3f2e80[_0x3239('0x40')]=_0x4c480d;return _0x3f2e80;})[_0x3239('0x28')](respondWithFilteredResult(_0x494b13,_0x46e56f))['catch'](handleError(_0x494b13,null));};exports[_0x3239('0x41')]=function(_0x1e82d1,_0x236ab3){var _0x56c29e={'raw':![],'where':{'id':_0x1e82d1[_0x3239('0x42')]['id']}},_0x407d5d={};_0x407d5d[_0x3239('0x34')]=_[_0x3239('0x31')](db['FreshsalesAccount'][_0x3239('0x43')]);_0x407d5d[_0x3239('0x30')]=_['keys'](_0x1e82d1['query']);_0x407d5d[_0x3239('0x32')]=_[_0x3239('0x33')](_0x407d5d[_0x3239('0x34')],_0x407d5d[_0x3239('0x30')]);_0x56c29e[_0x3239('0x35')]=_['intersection'](_0x407d5d[_0x3239('0x34')],qs[_0x3239('0x44')](_0x1e82d1['query'][_0x3239('0x44')]));_0x56c29e['attributes']=_0x56c29e[_0x3239('0x35')][_0x3239('0x36')]?_0x56c29e[_0x3239('0x35')]:_0x407d5d[_0x3239('0x34')];if(_0x1e82d1[_0x3239('0x30')][_0x3239('0x45')]){_0x56c29e[_0x3239('0x3d')]=[{'all':!![]}];}_0x56c29e=_[_0x3239('0x46')]({},_0x56c29e,_0x1e82d1['options']);return db['FreshsalesAccount']['find'](_0x56c29e)[_0x3239('0x28')](handleEntityNotFound(_0x236ab3,null))['then'](respondWithResult(_0x236ab3,null))[_0x3239('0x47')](handleError(_0x236ab3,null));};exports[_0x3239('0x48')]=function(_0xbc8238,_0x4230df){return db['FreshsalesAccount'][_0x3239('0x48')](_0xbc8238[_0x3239('0x49')],{})[_0x3239('0x28')](respondWithResult(_0x4230df,0xc9))['catch'](handleError(_0x4230df,null));};exports[_0x3239('0x27')]=function(_0x190a9b,_0x36e38f){if(_0x190a9b[_0x3239('0x49')]['id']){delete _0x190a9b['body']['id'];}return db[_0x3239('0x3e')][_0x3239('0x4a')]({'where':{'id':_0x190a9b[_0x3239('0x42')]['id']}})[_0x3239('0x28')](handleEntityNotFound(_0x36e38f,null))[_0x3239('0x28')](saveUpdates(_0x190a9b[_0x3239('0x49')],null))[_0x3239('0x28')](respondWithResult(_0x36e38f,null))['catch'](handleError(_0x36e38f,null));};exports[_0x3239('0x29')]=function(_0x2c85de,_0x2297f3){return db[_0x3239('0x3e')][_0x3239('0x4a')]({'where':{'id':_0x2c85de[_0x3239('0x42')]['id']}})[_0x3239('0x28')](handleEntityNotFound(_0x2297f3,null))['then'](removeEntity(_0x2297f3,null))[_0x3239('0x47')](handleError(_0x2297f3,null));};exports[_0x3239('0x4b')]=function(_0x48c9c9,_0x5bf7d1,_0x54dcc9){var _0x5ae52d={};var _0x110574={};var _0x107d9f;var _0x47c0a2;return db[_0x3239('0x3e')]['findOne']({'where':{'id':_0x48c9c9[_0x3239('0x42')]['id']}})[_0x3239('0x28')](handleEntityNotFound(_0x5bf7d1,null))['then'](function(_0x3fd847){if(_0x3fd847){_0x107d9f=_0x3fd847;_0x110574['model']=_[_0x3239('0x31')](db['FreshsalesConfiguration']['rawAttributes']);_0x110574[_0x3239('0x30')]=_['keys'](_0x48c9c9[_0x3239('0x30')]);_0x110574[_0x3239('0x32')]=_['intersection'](_0x110574[_0x3239('0x34')],_0x110574[_0x3239('0x30')]);_0x5ae52d[_0x3239('0x35')]=_[_0x3239('0x33')](_0x110574['model'],qs[_0x3239('0x44')](_0x48c9c9['query'][_0x3239('0x44')]));_0x5ae52d[_0x3239('0x35')]=_0x5ae52d[_0x3239('0x35')][_0x3239('0x36')]?_0x5ae52d[_0x3239('0x35')]:_0x110574[_0x3239('0x34')];_0x5ae52d[_0x3239('0x4c')]=qs[_0x3239('0x38')](_0x48c9c9[_0x3239('0x30')][_0x3239('0x38')]);_0x5ae52d['where']=qs[_0x3239('0x32')](_[_0x3239('0x4d')](_0x48c9c9['query'],_0x110574[_0x3239('0x32')]));if(_0x48c9c9[_0x3239('0x30')][_0x3239('0x3b')]){_0x5ae52d['where']=_[_0x3239('0x46')](_0x5ae52d[_0x3239('0x39')],{'$or':_['map'](_0x5ae52d[_0x3239('0x35')],function(_0x5345ad){var _0x185d01={};_0x185d01[_0x5345ad]={'$like':'%'+_0x48c9c9[_0x3239('0x30')][_0x3239('0x3b')]+'%'};return _0x185d01;})});}_0x5ae52d=_['merge']({},_0x5ae52d,_0x48c9c9[_0x3239('0x3c')]);return _0x107d9f[_0x3239('0x4b')](_0x5ae52d);}})[_0x3239('0x28')](function(_0x37898d){if(_0x37898d){_0x47c0a2=_0x37898d[_0x3239('0x36')];if(!_0x48c9c9[_0x3239('0x30')]['hasOwnProperty'](_0x3239('0x4e'))){_0x5ae52d['limit']=qs[_0x3239('0x20')](_0x48c9c9[_0x3239('0x30')][_0x3239('0x20')]);_0x5ae52d[_0x3239('0x1f')]=qs[_0x3239('0x1f')](_0x48c9c9[_0x3239('0x30')]['offset']);}return _0x107d9f[_0x3239('0x4b')](_0x5ae52d);}})[_0x3239('0x28')](function(_0x5b4d1b){if(_0x5b4d1b){return _0x5b4d1b?{'count':_0x47c0a2,'rows':_0x5b4d1b}:null;}})['then'](respondWithResult(_0x5bf7d1,null))[_0x3239('0x47')](handleError(_0x5bf7d1,null));};exports['addConfiguration']=function(_0xc8ed3f,_0x3eb00a,_0x4de6bf){if(_0xc8ed3f[_0x3239('0x49')]['id']){delete _0xc8ed3f[_0x3239('0x49')]['id'];}return db['FreshsalesAccount'][_0x3239('0x4f')]({'where':{'id':_0xc8ed3f[_0x3239('0x42')]['id']}})['then'](handleEntityNotFound(_0x3eb00a,null))['then'](function(_0x23f581){if(_0x23f581){_0xc8ed3f[_0x3239('0x49')][_0x3239('0x50')]=_0x23f581['id'];_0xc8ed3f[_0x3239('0x49')][_0x3239('0x51')]=integrations[_0x3239('0x52')](_0xc8ed3f[_0x3239('0x49')][_0x3239('0x53')],_0xc8ed3f[_0x3239('0x49')][_0x3239('0x2f')]);_0xc8ed3f[_0x3239('0x49')][_0x3239('0x54')]=integrations[_0x3239('0x55')](_0xc8ed3f[_0x3239('0x49')][_0x3239('0x53')],_0xc8ed3f[_0x3239('0x49')][_0x3239('0x2f')]);return db[_0x3239('0x56')][_0x3239('0x48')](_0xc8ed3f['body'],{'include':[{'model':db[_0x3239('0x57')],'as':_0x3239('0x51')},{'model':db['FreshsalesField'],'as':_0x3239('0x54')}]});}return null;})[_0x3239('0x28')](respondWithResult(_0x3eb00a,null))[_0x3239('0x47')](handleError(_0x3eb00a,null));};exports[_0x3239('0x58')]=function(_0x13f229,_0x5ac11c,_0x894be9){var _0x2ce7d3='';var _0x3c4539='';return db[_0x3239('0x3e')]['findOne']({'where':{'id':_0x13f229[_0x3239('0x42')]['id']},'attributes':['id','username','remoteUri',_0x3239('0x59')]})[_0x3239('0x28')](handleEntityNotFound(_0x5ac11c,null))['then'](function(_0x2d96c2){if(_0x2d96c2){_0x3c4539=_0x2d96c2[_0x3239('0x5a')];_0x2ce7d3=_0x2d96c2['remoteUri'];var _0x27cf42=_0x2d96c2[_0x3239('0x5b')][_0x3239('0x5c')](-0x1);if(_0x27cf42==='/'){_0x2ce7d3=_0x2ce7d3['substring'](0x0,_0x2ce7d3['lastIndexOf'](_0x27cf42));}return rp({'method':_0x3239('0x5d'),'uri':util['format'](_0x3239('0x5e'),_0x2ce7d3,_0x3239('0x5f')),'headers':{'Authorization':_0x3239('0x60')+_0x2d96c2['apiKey']},'json':!![]});}})[_0x3239('0x28')](function(_0x389192){if(_0x389192){var _0x42e342=_0x389192[_0x3239('0x61')];var _0x1c2ab3=![];var _0xc13b2e=null;for(_0xc13b2e=0x0;_0xc13b2e<_0x42e342[_0x3239('0x36')];_0xc13b2e++){if(_0x42e342[_0xc13b2e][_0x3239('0x62')]===_0x3c4539){_0x1c2ab3=!![];}}if(_0x1c2ab3){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x3239('0x63')});}}})[_0x3239('0x28')](respondWithResult(_0x5ac11c,null))[_0x3239('0x47')](function(_0x232560){var _0x5b1941=_0x13f229[_0x3239('0x30')][_0x3239('0x64')]?0x1f4:_0x232560[_0x3239('0x65')]||0x1f4;logger[_0x3239('0x2a')](_0x3239('0x66'),_0x3239('0x58'),_0x5b1941,JSON[_0x3239('0x67')](_0x232560));delete _0x232560['name'];if(_0x5b1941===0x191){_0x5b1941=0x190;}_0x5ac11c[_0x3239('0x1e')](_0x5b1941)['send'](_0x13f229[_0x3239('0x30')]['test']?{'message':_0x3239('0x68'),'statusCode':_0x232560['statusCode']}:_0x232560);});};