ae5e80c1af65a7ebb2229f0c208a6594a963aed0
[motion2.git] / server / api / intSugarcrmAccount / intSugarcrmAccount.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 _0x9a77=['includes','endsWith','values','error','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','../../components/integrations/configuration','status','end','json','undefined','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','sendStatus','stack','name','send','index','map','SugarcrmAccount','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','rawAttributes','options','find','catch','create','body','getConfigurations','findOne','SugarcrmConfiguration','addConfiguration','AccountId','Subjects','channel','Descriptions','SugarcrmField','getFields','assigned_user_id','created_by','description','date_start','parent_id','parent_type','parent_name','direction','username','password','remoteUri','slice','substring','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','xCALLY\x20Motion\x20Integration','get_module_fields','Calls','module_fields','remove'];(function(_0x4bbef1,_0x562299){var _0x3c7fa1=function(_0x576a29){while(--_0x576a29){_0x4bbef1['push'](_0x4bbef1['shift']());}};_0x3c7fa1(++_0x562299);}(_0x9a77,0x100));var _0x79a7=function(_0x4ec9dc,_0xacf234){_0x4ec9dc=_0x4ec9dc-0x0;var _0x205907=_0x9a77[_0x4ec9dc];return _0x205907;};'use strict';var emlformat=require(_0x79a7('0x0'));var rimraf=require(_0x79a7('0x1'));var zipdir=require(_0x79a7('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x79a7('0x3'));var moment=require(_0x79a7('0x4'));var BPromise=require(_0x79a7('0x5'));var Mustache=require(_0x79a7('0x6'));var util=require(_0x79a7('0x7'));var path=require('path');var sox=require(_0x79a7('0x8'));var csv=require('to-csv');var ejs=require(_0x79a7('0x9'));var fs=require('fs');var fs_extra=require(_0x79a7('0xa'));var _=require(_0x79a7('0xb'));var squel=require(_0x79a7('0xc'));var crypto=require(_0x79a7('0xd'));var jsforce=require(_0x79a7('0xe'));var deskjs=require(_0x79a7('0xf'));var toCsv=require(_0x79a7('0x10'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x79a7('0x11'));var qs=require(_0x79a7('0x12'));var as=require(_0x79a7('0x13'));var hardwareService=require(_0x79a7('0x14'));var logger=require(_0x79a7('0x15'))(_0x79a7('0x16'));var utils=require(_0x79a7('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x79a7('0x18'))['db'];var integrations=require(_0x79a7('0x19'));function respondWithStatusCode(_0x3a44b0,_0x4150a4){_0x4150a4=_0x4150a4||0xcc;return function(_0x2bd136){if(_0x2bd136){return _0x3a44b0['sendStatus'](_0x4150a4);}return _0x3a44b0[_0x79a7('0x1a')](_0x4150a4)[_0x79a7('0x1b')]();};}function respondWithResult(_0x4e33e1,_0x4321b7){_0x4321b7=_0x4321b7||0xc8;return function(_0x112120){if(_0x112120){return _0x4e33e1[_0x79a7('0x1a')](_0x4321b7)[_0x79a7('0x1c')](_0x112120);}};}function respondWithFilteredResult(_0x2ce426,_0x4b6f84){return function(_0xcbd613){if(_0xcbd613){var _0x3dd29f=typeof _0x4b6f84['offset']==='undefined'&&typeof _0x4b6f84['limit']===_0x79a7('0x1d');var _0x2bed16=_0xcbd613[_0x79a7('0x1e')];var _0x3fc507=_0x3dd29f?0x0:_0x4b6f84[_0x79a7('0x1f')];var _0x1e7ca1=_0x3dd29f?_0xcbd613[_0x79a7('0x1e')]:_0x4b6f84['offset']+_0x4b6f84[_0x79a7('0x20')];var _0x2667c7;if(_0x1e7ca1>=_0x2bed16){_0x1e7ca1=_0x2bed16;_0x2667c7=0xc8;}else{_0x2667c7=0xce;}_0x2ce426[_0x79a7('0x1a')](_0x2667c7);return _0x2ce426['set'](_0x79a7('0x21'),_0x3fc507+'-'+_0x1e7ca1+'/'+_0x2bed16)[_0x79a7('0x1c')](_0xcbd613);}return null;};}function patchUpdates(_0x98aea8){return function(_0x4d86bb){try{jsonpatch[_0x79a7('0x22')](_0x4d86bb,_0x98aea8,!![]);}catch(_0x52349c){return BPromise[_0x79a7('0x23')](_0x52349c);}return _0x4d86bb[_0x79a7('0x24')]();};}function saveUpdates(_0x2a8d97,_0x1f9981){return function(_0x28821e){if(_0x28821e){return _0x28821e[_0x79a7('0x25')](_0x2a8d97)[_0x79a7('0x26')](function(_0x37506a){return _0x37506a;});}return null;};}function removeEntity(_0xd8a48c,_0x51bb1a){return function(_0x2a989a){if(_0x2a989a){return _0x2a989a[_0x79a7('0x27')]()[_0x79a7('0x26')](function(){_0xd8a48c[_0x79a7('0x1a')](0xcc)[_0x79a7('0x1b')]();});}};}function handleEntityNotFound(_0x294bc0,_0x2f6bc2){return function(_0x2375ca){if(!_0x2375ca){_0x294bc0[_0x79a7('0x28')](0x194);}return _0x2375ca;};}function handleError(_0x4aaa45,_0x4e1c50){_0x4e1c50=_0x4e1c50||0x1f4;return function(_0xde444){logger['error'](_0xde444[_0x79a7('0x29')]);if(_0xde444[_0x79a7('0x2a')]){delete _0xde444[_0x79a7('0x2a')];}_0x4aaa45[_0x79a7('0x1a')](_0x4e1c50)[_0x79a7('0x2b')](_0xde444);};}exports[_0x79a7('0x2c')]=function(_0x966111,_0x4ff9af){var _0x30781b={},_0x6e3815={},_0x57edaf={'count':0x0,'rows':[]};var _0x2957a5=_[_0x79a7('0x2d')](db[_0x79a7('0x2e')]['rawAttributes'],function(_0x3e2e5e){return{'name':_0x3e2e5e[_0x79a7('0x2f')],'type':_0x3e2e5e[_0x79a7('0x30')][_0x79a7('0x31')]};});_0x6e3815[_0x79a7('0x32')]=_[_0x79a7('0x2d')](_0x2957a5,_0x79a7('0x2a'));_0x6e3815[_0x79a7('0x33')]=_[_0x79a7('0x34')](_0x966111[_0x79a7('0x33')]);_0x6e3815[_0x79a7('0x35')]=_[_0x79a7('0x36')](_0x6e3815[_0x79a7('0x32')],_0x6e3815[_0x79a7('0x33')]);_0x30781b[_0x79a7('0x37')]=_['intersection'](_0x6e3815[_0x79a7('0x32')],qs['fields'](_0x966111[_0x79a7('0x33')][_0x79a7('0x38')]));_0x30781b[_0x79a7('0x37')]=_0x30781b[_0x79a7('0x37')][_0x79a7('0x39')]?_0x30781b[_0x79a7('0x37')]:_0x6e3815['model'];if(!_0x966111[_0x79a7('0x33')][_0x79a7('0x3a')](_0x79a7('0x3b'))){_0x30781b[_0x79a7('0x20')]=qs[_0x79a7('0x20')](_0x966111[_0x79a7('0x33')][_0x79a7('0x20')]);_0x30781b[_0x79a7('0x1f')]=qs[_0x79a7('0x1f')](_0x966111['query'][_0x79a7('0x1f')]);}_0x30781b[_0x79a7('0x3c')]=qs[_0x79a7('0x3d')](_0x966111[_0x79a7('0x33')][_0x79a7('0x3d')]);_0x30781b[_0x79a7('0x3e')]=qs[_0x79a7('0x35')](_[_0x79a7('0x3f')](_0x966111['query'],_0x6e3815['filters']),_0x2957a5);if(_0x966111[_0x79a7('0x33')][_0x79a7('0x40')]){_0x30781b[_0x79a7('0x3e')]=_[_0x79a7('0x41')](_0x30781b[_0x79a7('0x3e')],{'$or':_['map'](_0x2957a5,function(_0x121b1e){if(_0x121b1e[_0x79a7('0x30')]!==_0x79a7('0x42')){var _0x30af16={};_0x30af16[_0x121b1e[_0x79a7('0x2a')]]={'$like':'%'+_0x966111[_0x79a7('0x33')][_0x79a7('0x40')]+'%'};return _0x30af16;}})});}_0x30781b=_[_0x79a7('0x41')]({},_0x30781b,_0x966111['options']);var _0x43b71c={'where':_0x30781b['where']};return db[_0x79a7('0x2e')][_0x79a7('0x1e')](_0x43b71c)['then'](function(_0x27506c){_0x57edaf[_0x79a7('0x1e')]=_0x27506c;if(_0x966111[_0x79a7('0x33')][_0x79a7('0x43')]){_0x30781b[_0x79a7('0x44')]=[{'all':!![]}];}return db[_0x79a7('0x2e')][_0x79a7('0x45')](_0x30781b);})[_0x79a7('0x26')](function(_0x59e573){_0x57edaf[_0x79a7('0x46')]=_0x59e573;return _0x57edaf;})['then'](respondWithFilteredResult(_0x4ff9af,_0x30781b))['catch'](handleError(_0x4ff9af,null));};exports[_0x79a7('0x47')]=function(_0x3cce8a,_0x5371cf){var _0x48e60a={'raw':![],'where':{'id':_0x3cce8a[_0x79a7('0x48')]['id']}},_0x422d44={};_0x422d44[_0x79a7('0x32')]=_[_0x79a7('0x34')](db[_0x79a7('0x2e')][_0x79a7('0x49')]);_0x422d44[_0x79a7('0x33')]=_['keys'](_0x3cce8a['query']);_0x422d44['filters']=_[_0x79a7('0x36')](_0x422d44[_0x79a7('0x32')],_0x422d44[_0x79a7('0x33')]);_0x48e60a[_0x79a7('0x37')]=_[_0x79a7('0x36')](_0x422d44['model'],qs[_0x79a7('0x38')](_0x3cce8a[_0x79a7('0x33')]['fields']));_0x48e60a[_0x79a7('0x37')]=_0x48e60a['attributes'][_0x79a7('0x39')]?_0x48e60a['attributes']:_0x422d44['model'];if(_0x3cce8a[_0x79a7('0x33')][_0x79a7('0x43')]){_0x48e60a['include']=[{'all':!![]}];}_0x48e60a=_[_0x79a7('0x41')]({},_0x48e60a,_0x3cce8a[_0x79a7('0x4a')]);return db[_0x79a7('0x2e')][_0x79a7('0x4b')](_0x48e60a)[_0x79a7('0x26')](handleEntityNotFound(_0x5371cf,null))[_0x79a7('0x26')](respondWithResult(_0x5371cf,null))[_0x79a7('0x4c')](handleError(_0x5371cf,null));};exports[_0x79a7('0x4d')]=function(_0x24b70f,_0x577a9a){return db[_0x79a7('0x2e')]['create'](_0x24b70f[_0x79a7('0x4e')],{})['then'](respondWithResult(_0x577a9a,0xc9))['catch'](handleError(_0x577a9a,null));};exports[_0x79a7('0x25')]=function(_0x2386b6,_0x42dfe0){if(_0x2386b6[_0x79a7('0x4e')]['id']){delete _0x2386b6['body']['id'];}return db[_0x79a7('0x2e')]['find']({'where':{'id':_0x2386b6['params']['id']}})[_0x79a7('0x26')](handleEntityNotFound(_0x42dfe0,null))[_0x79a7('0x26')](saveUpdates(_0x2386b6[_0x79a7('0x4e')],null))[_0x79a7('0x26')](respondWithResult(_0x42dfe0,null))[_0x79a7('0x4c')](handleError(_0x42dfe0,null));};exports[_0x79a7('0x27')]=function(_0x4aca67,_0x1c0b58){return db[_0x79a7('0x2e')][_0x79a7('0x4b')]({'where':{'id':_0x4aca67[_0x79a7('0x48')]['id']}})[_0x79a7('0x26')](handleEntityNotFound(_0x1c0b58,null))[_0x79a7('0x26')](removeEntity(_0x1c0b58,null))['catch'](handleError(_0x1c0b58,null));};exports[_0x79a7('0x4f')]=function(_0x464f61,_0x3bb44b,_0x455078){var _0x389282={};var _0x1f010d={};var _0x1b9983;var _0x103b44;return db['SugarcrmAccount'][_0x79a7('0x50')]({'where':{'id':_0x464f61['params']['id']}})[_0x79a7('0x26')](handleEntityNotFound(_0x3bb44b,null))[_0x79a7('0x26')](function(_0x3f9ff8){if(_0x3f9ff8){_0x1b9983=_0x3f9ff8;_0x1f010d[_0x79a7('0x32')]=_[_0x79a7('0x34')](db[_0x79a7('0x51')]['rawAttributes']);_0x1f010d[_0x79a7('0x33')]=_['keys'](_0x464f61[_0x79a7('0x33')]);_0x1f010d[_0x79a7('0x35')]=_[_0x79a7('0x36')](_0x1f010d['model'],_0x1f010d[_0x79a7('0x33')]);_0x389282[_0x79a7('0x37')]=_['intersection'](_0x1f010d[_0x79a7('0x32')],qs['fields'](_0x464f61[_0x79a7('0x33')][_0x79a7('0x38')]));_0x389282[_0x79a7('0x37')]=_0x389282['attributes']['length']?_0x389282[_0x79a7('0x37')]:_0x1f010d[_0x79a7('0x32')];_0x389282[_0x79a7('0x3c')]=qs[_0x79a7('0x3d')](_0x464f61[_0x79a7('0x33')][_0x79a7('0x3d')]);_0x389282[_0x79a7('0x3e')]=qs[_0x79a7('0x35')](_[_0x79a7('0x3f')](_0x464f61[_0x79a7('0x33')],_0x1f010d[_0x79a7('0x35')]));if(_0x464f61[_0x79a7('0x33')][_0x79a7('0x40')]){_0x389282[_0x79a7('0x3e')]=_[_0x79a7('0x41')](_0x389282[_0x79a7('0x3e')],{'$or':_[_0x79a7('0x2d')](_0x389282[_0x79a7('0x37')],function(_0x25ad04){var _0xebb617={};_0xebb617[_0x25ad04]={'$like':'%'+_0x464f61[_0x79a7('0x33')]['filter']+'%'};return _0xebb617;})});}_0x389282=_[_0x79a7('0x41')]({},_0x389282,_0x464f61[_0x79a7('0x4a')]);return _0x1b9983[_0x79a7('0x4f')](_0x389282);}})['then'](function(_0x2d3535){if(_0x2d3535){_0x103b44=_0x2d3535['length'];if(!_0x464f61[_0x79a7('0x33')][_0x79a7('0x3a')](_0x79a7('0x3b'))){_0x389282[_0x79a7('0x20')]=qs[_0x79a7('0x20')](_0x464f61[_0x79a7('0x33')]['limit']);_0x389282[_0x79a7('0x1f')]=qs['offset'](_0x464f61[_0x79a7('0x33')][_0x79a7('0x1f')]);}return _0x1b9983[_0x79a7('0x4f')](_0x389282);}})[_0x79a7('0x26')](function(_0x2d498a){if(_0x2d498a){return _0x2d498a?{'count':_0x103b44,'rows':_0x2d498a}:null;}})[_0x79a7('0x26')](respondWithResult(_0x3bb44b,null))[_0x79a7('0x4c')](handleError(_0x3bb44b,null));};exports[_0x79a7('0x52')]=function(_0x722262,_0x1685a1,_0x36f816){if(_0x722262[_0x79a7('0x4e')]['id']){delete _0x722262[_0x79a7('0x4e')]['id'];}return db['SugarcrmAccount'][_0x79a7('0x50')]({'where':{'id':_0x722262['params']['id']}})[_0x79a7('0x26')](handleEntityNotFound(_0x1685a1,null))[_0x79a7('0x26')](function(_0x172585){if(_0x172585){_0x722262[_0x79a7('0x4e')][_0x79a7('0x53')]=_0x172585['id'];_0x722262[_0x79a7('0x4e')][_0x79a7('0x54')]=integrations['getSubjects'](_0x722262[_0x79a7('0x4e')][_0x79a7('0x55')],_0x722262[_0x79a7('0x4e')]['type']);_0x722262[_0x79a7('0x4e')][_0x79a7('0x56')]=integrations['getDescriptions'](_0x722262['body'][_0x79a7('0x55')],_0x722262[_0x79a7('0x4e')]['type']);return db[_0x79a7('0x51')][_0x79a7('0x4d')](_0x722262[_0x79a7('0x4e')],{'include':[{'model':db[_0x79a7('0x57')],'as':_0x79a7('0x54')},{'model':db[_0x79a7('0x57')],'as':_0x79a7('0x56')}]});}return null;})[_0x79a7('0x26')](respondWithResult(_0x1685a1,null))['catch'](handleError(_0x1685a1,null));};exports[_0x79a7('0x58')]=function(_0x36b18e,_0x285048,_0x3ee47b){var _0x4ddc37='';var _0x2fdfed=['id',_0x79a7('0x2a'),_0x79a7('0x59'),_0x79a7('0x5a'),_0x79a7('0x5b'),_0x79a7('0x5c'),'duration_hours','duration_minutes',_0x79a7('0x5d'),_0x79a7('0x5e'),_0x79a7('0x5f'),_0x79a7('0x60')];return db[_0x79a7('0x2e')][_0x79a7('0x50')]({'where':{'id':_0x36b18e[_0x79a7('0x48')]['id']},'attributes':['id',_0x79a7('0x61'),_0x79a7('0x62'),_0x79a7('0x63')]})[_0x79a7('0x26')](handleEntityNotFound(_0x285048,null))['then'](function(_0x3facc1){if(_0x3facc1){_0x4ddc37=_0x3facc1[_0x79a7('0x63')];var _0x191fd2=_0x4ddc37[_0x79a7('0x64')](-0x1);if(_0x191fd2==='/'){_0x4ddc37=_0x4ddc37[_0x79a7('0x65')](0x0,_0x4ddc37[_0x79a7('0x66')](_0x191fd2));}return rp({'method':_0x79a7('0x67'),'uri':util[_0x79a7('0x68')](_0x79a7('0x69'),_0x4ddc37,_0x79a7('0x6a')),'json':!![],'form':{'method':_0x79a7('0x6b'),'input_type':_0x79a7('0x6c'),'response_type':'JSON','rest_data':JSON[_0x79a7('0x6d')]({'user_auth':{'user_name':_0x3facc1[_0x79a7('0x61')],'password':_0x3facc1[_0x79a7('0x62')],'encryption':_0x79a7('0x6e')},'application':_0x79a7('0x6f')})}});}})[_0x79a7('0x26')](function(_0x5138be){if(_0x5138be&&_0x5138be[_0x79a7('0x2a')]!=='Invalid\x20Login'&&_0x5138be['name']!=='Password\x20Expired'){return rp({'method':_0x79a7('0x67'),'uri':util[_0x79a7('0x68')](_0x79a7('0x69'),_0x4ddc37,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0x79a7('0x70'),'input_type':_0x79a7('0x6c'),'response_type':_0x79a7('0x6c'),'rest_data':JSON[_0x79a7('0x6d')]({'session':_0x5138be['id'],'module_name':_0x79a7('0x71')})}})[_0x79a7('0x26')](function(_0x1f7b24){if(_0x1f7b24){var _0x2e5bd0=_['values'](_0x1f7b24[_0x79a7('0x72')]);_[_0x79a7('0x73')](_0x2e5bd0,function(_0x269422){return _0x2fdfed[_0x79a7('0x74')](_0x269422[_0x79a7('0x2a')]);});return{'count':_0x2e5bd0[_0x79a7('0x39')],'rows':_['map'](_0x2e5bd0,function(_0x1ff57f){return{'id':_0x1ff57f[_0x79a7('0x2a')],'name':_0x1ff57f['label'],'custom':_[_0x79a7('0x75')](_0x1ff57f[_0x79a7('0x2a')],'_c')?!![]:![],'options':_0x1ff57f[_0x79a7('0x4a')]?_[_0x79a7('0x2d')](_[_0x79a7('0x76')](_0x1ff57f[_0x79a7('0x4a')]),function(_0x5eca28){return{'name':_0x5eca28['value'],'value':_0x5eca28[_0x79a7('0x2a')]};}):[]};})};}})[_0x79a7('0x26')](respondWithResult(_0x285048,null))[_0x79a7('0x4c')](function(_0x522a39){var _0x398ce6=_0x36b18e[_0x79a7('0x33')]['test']?0x1f4:_0x522a39['statusCode']||0x1f4;logger[_0x79a7('0x77')](_0x79a7('0x78'),_0x79a7('0x58'),_0x398ce6,JSON[_0x79a7('0x6d')](_0x522a39));delete _0x522a39['name'];if(_0x398ce6===0x191){_0x398ce6=0x190;}_0x285048[_0x79a7('0x1a')](_0x398ce6)['send'](_0x36b18e[_0x79a7('0x33')][_0x79a7('0x79')]?{'message':_0x79a7('0x7a'),'statusCode':_0x522a39[_0x79a7('0x7b')]}:_0x522a39);});}else{var _0x3b59e6=0x1f4;_0x285048[_0x79a7('0x1a')](_0x3b59e6)['send']({'message':_0x79a7('0x7a'),'statusCode':0x190});}});};