fee8167b36cc4926e63e075a8f96561717d173d0
[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 _0x4874=['sort','pick','filter','where','merge','includeAll','include','rows','show','params','options','find','create','body','catch','getConfigurations','findOne','FreshsalesConfiguration','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','FreshsalesField','getFields','username','remoteUri','apiKey','slice','substring','lastIndexOf','GET','format','%s%s','/api/selector/owners','Token\x20token=','users','email','stringify','test','statusCode','eml-format','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','fs-extra','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','undefined','limit','count','set','Content-Range','update','destroy','then','end','error','name','send','index','map','FreshsalesAccount','rawAttributes','type','key','keys','query','filters','model','attributes','intersection','fields','length','nolimit','order'];(function(_0x49c057,_0xc808ed){var _0xd8f0e6=function(_0x5b9042){while(--_0x5b9042){_0x49c057['push'](_0x49c057['shift']());}};_0xd8f0e6(++_0xc808ed);}(_0x4874,0x1b7));var _0x4487=function(_0xbf8ebe,_0x3b69a5){_0xbf8ebe=_0xbf8ebe-0x0;var _0x1e25e8=_0x4874[_0xbf8ebe];return _0x1e25e8;};'use strict';var emlformat=require(_0x4487('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x4487('0x1'));var rp=require(_0x4487('0x2'));var moment=require(_0x4487('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x4487('0x4'));var util=require(_0x4487('0x5'));var path=require(_0x4487('0x6'));var sox=require(_0x4487('0x7'));var csv=require('to-csv');var ejs=require(_0x4487('0x8'));var fs=require('fs');var fs_extra=require(_0x4487('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x4487('0xa'));var deskjs=require(_0x4487('0xb'));var toCsv=require(_0x4487('0xc'));var querystring=require(_0x4487('0xd'));var Papa=require(_0x4487('0xe'));var Redis=require(_0x4487('0xf'));var authService=require(_0x4487('0x10'));var qs=require(_0x4487('0x11'));var as=require(_0x4487('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4487('0x13'))(_0x4487('0x14'));var utils=require(_0x4487('0x15'));var config=require(_0x4487('0x16'));var licenseUtil=require(_0x4487('0x17'));var db=require(_0x4487('0x18'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x51510d,_0x2d4cfd){_0x2d4cfd=_0x2d4cfd||0xcc;return function(_0x185bc9){if(_0x185bc9){return _0x51510d['sendStatus'](_0x2d4cfd);}return _0x51510d[_0x4487('0x19')](_0x2d4cfd)['end']();};}function respondWithResult(_0x5bec4e,_0x477805){_0x477805=_0x477805||0xc8;return function(_0x1e3ceb){if(_0x1e3ceb){return _0x5bec4e['status'](_0x477805)[_0x4487('0x1a')](_0x1e3ceb);}};}function respondWithFilteredResult(_0xcbb129,_0x357352){return function(_0x1d5079){if(_0x1d5079){var _0x1d9d20=typeof _0x357352[_0x4487('0x1b')]===_0x4487('0x1c')&&typeof _0x357352[_0x4487('0x1d')]==='undefined';var _0x58a75e=_0x1d5079['count'];var _0x37ce3c=_0x1d9d20?0x0:_0x357352['offset'];var _0x3e9213=_0x1d9d20?_0x1d5079[_0x4487('0x1e')]:_0x357352['offset']+_0x357352[_0x4487('0x1d')];var _0x202345;if(_0x3e9213>=_0x58a75e){_0x3e9213=_0x58a75e;_0x202345=0xc8;}else{_0x202345=0xce;}_0xcbb129[_0x4487('0x19')](_0x202345);return _0xcbb129[_0x4487('0x1f')](_0x4487('0x20'),_0x37ce3c+'-'+_0x3e9213+'/'+_0x58a75e)[_0x4487('0x1a')](_0x1d5079);}return null;};}function patchUpdates(_0x217d69){return function(_0x5dc18c){try{jsonpatch['apply'](_0x5dc18c,_0x217d69,!![]);}catch(_0x297068){return BPromise['reject'](_0x297068);}return _0x5dc18c['save']();};}function saveUpdates(_0x134d55,_0x4e671e){return function(_0x3d4909){if(_0x3d4909){return _0x3d4909[_0x4487('0x21')](_0x134d55)['then'](function(_0x293d7c){return _0x293d7c;});}return null;};}function removeEntity(_0x3a9184,_0x44465c){return function(_0x162dd6){if(_0x162dd6){return _0x162dd6[_0x4487('0x22')]()[_0x4487('0x23')](function(){_0x3a9184['status'](0xcc)[_0x4487('0x24')]();});}};}function handleEntityNotFound(_0x82b78a,_0x500229){return function(_0x7136e8){if(!_0x7136e8){_0x82b78a['sendStatus'](0x194);}return _0x7136e8;};}function handleError(_0x409408,_0x43b17c){_0x43b17c=_0x43b17c||0x1f4;return function(_0x3b1a0f){logger[_0x4487('0x25')](_0x3b1a0f['stack']);if(_0x3b1a0f[_0x4487('0x26')]){delete _0x3b1a0f[_0x4487('0x26')];}_0x409408[_0x4487('0x19')](_0x43b17c)[_0x4487('0x27')](_0x3b1a0f);};}exports[_0x4487('0x28')]=function(_0x58fa05,_0x4cfc7b){var _0x5a8209={},_0x966fc9={},_0x488eef={'count':0x0,'rows':[]};var _0x1b5c0a=_[_0x4487('0x29')](db[_0x4487('0x2a')][_0x4487('0x2b')],function(_0x57beb9){return{'name':_0x57beb9['fieldName'],'type':_0x57beb9[_0x4487('0x2c')][_0x4487('0x2d')]};});_0x966fc9['model']=_[_0x4487('0x29')](_0x1b5c0a,_0x4487('0x26'));_0x966fc9['query']=_[_0x4487('0x2e')](_0x58fa05[_0x4487('0x2f')]);_0x966fc9[_0x4487('0x30')]=_['intersection'](_0x966fc9[_0x4487('0x31')],_0x966fc9['query']);_0x5a8209[_0x4487('0x32')]=_[_0x4487('0x33')](_0x966fc9['model'],qs[_0x4487('0x34')](_0x58fa05[_0x4487('0x2f')][_0x4487('0x34')]));_0x5a8209[_0x4487('0x32')]=_0x5a8209[_0x4487('0x32')][_0x4487('0x35')]?_0x5a8209[_0x4487('0x32')]:_0x966fc9[_0x4487('0x31')];if(!_0x58fa05[_0x4487('0x2f')]['hasOwnProperty'](_0x4487('0x36'))){_0x5a8209[_0x4487('0x1d')]=qs[_0x4487('0x1d')](_0x58fa05[_0x4487('0x2f')]['limit']);_0x5a8209['offset']=qs[_0x4487('0x1b')](_0x58fa05['query']['offset']);}_0x5a8209[_0x4487('0x37')]=qs[_0x4487('0x38')](_0x58fa05[_0x4487('0x2f')][_0x4487('0x38')]);_0x5a8209['where']=qs['filters'](_[_0x4487('0x39')](_0x58fa05[_0x4487('0x2f')],_0x966fc9['filters']),_0x1b5c0a);if(_0x58fa05[_0x4487('0x2f')][_0x4487('0x3a')]){_0x5a8209[_0x4487('0x3b')]=_[_0x4487('0x3c')](_0x5a8209['where'],{'$or':_[_0x4487('0x29')](_0x1b5c0a,function(_0x475484){if(_0x475484['type']!=='VIRTUAL'){var _0x403740={};_0x403740[_0x475484[_0x4487('0x26')]]={'$like':'%'+_0x58fa05[_0x4487('0x2f')][_0x4487('0x3a')]+'%'};return _0x403740;}})});}_0x5a8209=_[_0x4487('0x3c')]({},_0x5a8209,_0x58fa05['options']);var _0x4e90dc={'where':_0x5a8209['where']};return db[_0x4487('0x2a')][_0x4487('0x1e')](_0x4e90dc)[_0x4487('0x23')](function(_0x24bda7){_0x488eef['count']=_0x24bda7;if(_0x58fa05[_0x4487('0x2f')][_0x4487('0x3d')]){_0x5a8209[_0x4487('0x3e')]=[{'all':!![]}];}return db['FreshsalesAccount']['findAll'](_0x5a8209);})[_0x4487('0x23')](function(_0x54533d){_0x488eef[_0x4487('0x3f')]=_0x54533d;return _0x488eef;})[_0x4487('0x23')](respondWithFilteredResult(_0x4cfc7b,_0x5a8209))['catch'](handleError(_0x4cfc7b,null));};exports[_0x4487('0x40')]=function(_0x2fcd6,_0x580a2a){var _0x5aa4f0={'raw':![],'where':{'id':_0x2fcd6[_0x4487('0x41')]['id']}},_0x517590={};_0x517590[_0x4487('0x31')]=_['keys'](db[_0x4487('0x2a')][_0x4487('0x2b')]);_0x517590[_0x4487('0x2f')]=_[_0x4487('0x2e')](_0x2fcd6[_0x4487('0x2f')]);_0x517590[_0x4487('0x30')]=_['intersection'](_0x517590[_0x4487('0x31')],_0x517590[_0x4487('0x2f')]);_0x5aa4f0[_0x4487('0x32')]=_['intersection'](_0x517590['model'],qs['fields'](_0x2fcd6[_0x4487('0x2f')][_0x4487('0x34')]));_0x5aa4f0[_0x4487('0x32')]=_0x5aa4f0['attributes'][_0x4487('0x35')]?_0x5aa4f0[_0x4487('0x32')]:_0x517590['model'];if(_0x2fcd6[_0x4487('0x2f')]['includeAll']){_0x5aa4f0[_0x4487('0x3e')]=[{'all':!![]}];}_0x5aa4f0=_[_0x4487('0x3c')]({},_0x5aa4f0,_0x2fcd6[_0x4487('0x42')]);return db[_0x4487('0x2a')][_0x4487('0x43')](_0x5aa4f0)['then'](handleEntityNotFound(_0x580a2a,null))[_0x4487('0x23')](respondWithResult(_0x580a2a,null))['catch'](handleError(_0x580a2a,null));};exports[_0x4487('0x44')]=function(_0x176210,_0x1a0057){return db[_0x4487('0x2a')]['create'](_0x176210['body'],{})[_0x4487('0x23')](respondWithResult(_0x1a0057,0xc9))['catch'](handleError(_0x1a0057,null));};exports[_0x4487('0x21')]=function(_0x2fcfe7,_0x21bad5){if(_0x2fcfe7['body']['id']){delete _0x2fcfe7[_0x4487('0x45')]['id'];}return db['FreshsalesAccount'][_0x4487('0x43')]({'where':{'id':_0x2fcfe7['params']['id']}})['then'](handleEntityNotFound(_0x21bad5,null))[_0x4487('0x23')](saveUpdates(_0x2fcfe7['body'],null))[_0x4487('0x23')](respondWithResult(_0x21bad5,null))[_0x4487('0x46')](handleError(_0x21bad5,null));};exports[_0x4487('0x22')]=function(_0x30ffc0,_0x2c7389){return db[_0x4487('0x2a')]['find']({'where':{'id':_0x30ffc0[_0x4487('0x41')]['id']}})[_0x4487('0x23')](handleEntityNotFound(_0x2c7389,null))[_0x4487('0x23')](removeEntity(_0x2c7389,null))[_0x4487('0x46')](handleError(_0x2c7389,null));};exports[_0x4487('0x47')]=function(_0xf31395,_0x686eba,_0x49f92b){var _0x42f949={};var _0xc0c548={};var _0x46374f;var _0x1a317f;return db[_0x4487('0x2a')][_0x4487('0x48')]({'where':{'id':_0xf31395[_0x4487('0x41')]['id']}})[_0x4487('0x23')](handleEntityNotFound(_0x686eba,null))['then'](function(_0x1c637a){if(_0x1c637a){_0x46374f=_0x1c637a;_0xc0c548[_0x4487('0x31')]=_[_0x4487('0x2e')](db[_0x4487('0x49')][_0x4487('0x2b')]);_0xc0c548[_0x4487('0x2f')]=_[_0x4487('0x2e')](_0xf31395[_0x4487('0x2f')]);_0xc0c548[_0x4487('0x30')]=_[_0x4487('0x33')](_0xc0c548[_0x4487('0x31')],_0xc0c548[_0x4487('0x2f')]);_0x42f949['attributes']=_[_0x4487('0x33')](_0xc0c548[_0x4487('0x31')],qs['fields'](_0xf31395[_0x4487('0x2f')][_0x4487('0x34')]));_0x42f949[_0x4487('0x32')]=_0x42f949[_0x4487('0x32')][_0x4487('0x35')]?_0x42f949[_0x4487('0x32')]:_0xc0c548[_0x4487('0x31')];_0x42f949[_0x4487('0x37')]=qs['sort'](_0xf31395[_0x4487('0x2f')][_0x4487('0x38')]);_0x42f949['where']=qs['filters'](_[_0x4487('0x39')](_0xf31395[_0x4487('0x2f')],_0xc0c548['filters']));if(_0xf31395[_0x4487('0x2f')][_0x4487('0x3a')]){_0x42f949['where']=_[_0x4487('0x3c')](_0x42f949[_0x4487('0x3b')],{'$or':_[_0x4487('0x29')](_0x42f949[_0x4487('0x32')],function(_0x28705f){var _0x47a41d={};_0x47a41d[_0x28705f]={'$like':'%'+_0xf31395['query'][_0x4487('0x3a')]+'%'};return _0x47a41d;})});}_0x42f949=_[_0x4487('0x3c')]({},_0x42f949,_0xf31395['options']);return _0x46374f[_0x4487('0x47')](_0x42f949);}})[_0x4487('0x23')](function(_0x56c230){if(_0x56c230){_0x1a317f=_0x56c230[_0x4487('0x35')];if(!_0xf31395['query'][_0x4487('0x4a')]('nolimit')){_0x42f949[_0x4487('0x1d')]=qs[_0x4487('0x1d')](_0xf31395[_0x4487('0x2f')]['limit']);_0x42f949['offset']=qs[_0x4487('0x1b')](_0xf31395[_0x4487('0x2f')][_0x4487('0x1b')]);}return _0x46374f['getConfigurations'](_0x42f949);}})[_0x4487('0x23')](function(_0x555b6e){if(_0x555b6e){return _0x555b6e?{'count':_0x1a317f,'rows':_0x555b6e}:null;}})[_0x4487('0x23')](respondWithResult(_0x686eba,null))[_0x4487('0x46')](handleError(_0x686eba,null));};exports[_0x4487('0x4b')]=function(_0x5dcee0,_0x2485c9,_0x78152f){if(_0x5dcee0[_0x4487('0x45')]['id']){delete _0x5dcee0['body']['id'];}return db[_0x4487('0x2a')][_0x4487('0x48')]({'where':{'id':_0x5dcee0[_0x4487('0x41')]['id']}})[_0x4487('0x23')](handleEntityNotFound(_0x2485c9,null))[_0x4487('0x23')](function(_0x25ba9e){if(_0x25ba9e){_0x5dcee0['body'][_0x4487('0x4c')]=_0x25ba9e['id'];_0x5dcee0[_0x4487('0x45')][_0x4487('0x4d')]=integrations[_0x4487('0x4e')](_0x5dcee0[_0x4487('0x45')]['channel'],_0x5dcee0[_0x4487('0x45')][_0x4487('0x2c')]);_0x5dcee0[_0x4487('0x45')][_0x4487('0x4f')]=integrations[_0x4487('0x50')](_0x5dcee0['body']['channel'],_0x5dcee0[_0x4487('0x45')][_0x4487('0x2c')]);return db['FreshsalesConfiguration'][_0x4487('0x44')](_0x5dcee0[_0x4487('0x45')],{'include':[{'model':db[_0x4487('0x51')],'as':_0x4487('0x4d')},{'model':db[_0x4487('0x51')],'as':'Descriptions'}]});}return null;})[_0x4487('0x23')](respondWithResult(_0x2485c9,null))[_0x4487('0x46')](handleError(_0x2485c9,null));};exports[_0x4487('0x52')]=function(_0x357397,_0x319093,_0x73a6b1){var _0xccaefc='';var _0x3a8c37='';return db[_0x4487('0x2a')][_0x4487('0x48')]({'where':{'id':_0x357397[_0x4487('0x41')]['id']},'attributes':['id',_0x4487('0x53'),_0x4487('0x54'),_0x4487('0x55')]})[_0x4487('0x23')](handleEntityNotFound(_0x319093,null))[_0x4487('0x23')](function(_0x33f452){if(_0x33f452){_0x3a8c37=_0x33f452[_0x4487('0x53')];_0xccaefc=_0x33f452[_0x4487('0x54')];var _0x3b9938=_0x33f452[_0x4487('0x54')][_0x4487('0x56')](-0x1);if(_0x3b9938==='/'){_0xccaefc=_0xccaefc[_0x4487('0x57')](0x0,_0xccaefc[_0x4487('0x58')](_0x3b9938));}return rp({'method':_0x4487('0x59'),'uri':util[_0x4487('0x5a')](_0x4487('0x5b'),_0xccaefc,_0x4487('0x5c')),'headers':{'Authorization':_0x4487('0x5d')+_0x33f452[_0x4487('0x55')]},'json':!![]});}})['then'](function(_0xdba44){if(_0xdba44){var _0x36d1c2=_0xdba44[_0x4487('0x5e')];var _0x1a45d9=![];var _0x10c22a=null;for(_0x10c22a=0x0;_0x10c22a<_0x36d1c2[_0x4487('0x35')];_0x10c22a++){if(_0x36d1c2[_0x10c22a][_0x4487('0x5f')]===_0x3a8c37){_0x1a45d9=!![];}}if(_0x1a45d9){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})[_0x4487('0x23')](respondWithResult(_0x319093,null))[_0x4487('0x46')](function(_0x2e6466){var _0x5253f8=_0x357397[_0x4487('0x2f')]['test']?0x1f4:_0x2e6466['statusCode']||0x1f4;logger[_0x4487('0x25')]('getFields,\x20%s,\x20%s,\x20%s',_0x4487('0x52'),_0x5253f8,JSON[_0x4487('0x60')](_0x2e6466));delete _0x2e6466[_0x4487('0x26')];if(_0x5253f8===0x191){_0x5253f8=0x190;}_0x319093[_0x4487('0x19')](_0x5253f8)[_0x4487('0x27')](_0x357397[_0x4487('0x2f')][_0x4487('0x61')]?{'message':'Wrong\x20credentials','statusCode':_0x2e6466[_0x4487('0x62')]}:_0x2e6466);});};