5120dd920e2c302b9b15c4f10237c17ff9ec735c
[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 _0x7c3d=['SugarcrmAccount','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','pick','filter','merge','type','VIRTUAL','options','then','include','findAll','rows','catch','show','includeAll','find','create','body','params','destroy','findOne','SugarcrmConfiguration','sort','getConfigurations','addConfiguration','Subjects','getSubjects','channel','SugarcrmField','Descriptions','getFields','assigned_user_id','date_start','duration_hours','parent_type','parent_name','direction','username','password','remoteUri','slice','lastIndexOf','format','login','JSON','stringify','PLAIN','POST','%s%s','/service/v4_1/rest.php','Calls','values','module_fields','remove','includes','label','endsWith','value','statusCode','error','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','limit','count','offset','Content-Range','json','apply','reject','save','update','stack','name','send','index','map'];(function(_0x1035c1,_0x2d8583){var _0x308d67=function(_0x58ddb6){while(--_0x58ddb6){_0x1035c1['push'](_0x1035c1['shift']());}};_0x308d67(++_0x2d8583);}(_0x7c3d,0x13d));var _0xd7c3=function(_0x3ca75e,_0x3c827e){_0x3ca75e=_0x3ca75e-0x0;var _0x3ca1d1=_0x7c3d[_0x3ca75e];return _0x3ca1d1;};'use strict';var emlformat=require(_0xd7c3('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd7c3('0x1'));var jsonpatch=require(_0xd7c3('0x2'));var rp=require(_0xd7c3('0x3'));var moment=require(_0xd7c3('0x4'));var BPromise=require(_0xd7c3('0x5'));var Mustache=require('mustache');var util=require(_0xd7c3('0x6'));var path=require(_0xd7c3('0x7'));var sox=require(_0xd7c3('0x8'));var csv=require('to-csv');var ejs=require(_0xd7c3('0x9'));var fs=require('fs');var fs_extra=require(_0xd7c3('0xa'));var _=require(_0xd7c3('0xb'));var squel=require(_0xd7c3('0xc'));var crypto=require(_0xd7c3('0xd'));var jsforce=require(_0xd7c3('0xe'));var deskjs=require(_0xd7c3('0xf'));var toCsv=require(_0xd7c3('0x10'));var querystring=require(_0xd7c3('0x11'));var Papa=require(_0xd7c3('0x12'));var Redis=require(_0xd7c3('0x13'));var authService=require(_0xd7c3('0x14'));var qs=require(_0xd7c3('0x15'));var as=require(_0xd7c3('0x16'));var hardwareService=require(_0xd7c3('0x17'));var logger=require('../../config/logger')(_0xd7c3('0x18'));var utils=require(_0xd7c3('0x19'));var config=require(_0xd7c3('0x1a'));var licenseUtil=require(_0xd7c3('0x1b'));var db=require(_0xd7c3('0x1c'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x234874,_0x7c681f){_0x7c681f=_0x7c681f||0xcc;return function(_0x4cc8f9){if(_0x4cc8f9){return _0x234874[_0xd7c3('0x1d')](_0x7c681f);}return _0x234874['status'](_0x7c681f)[_0xd7c3('0x1e')]();};}function respondWithResult(_0x505b02,_0x3ec6fb){_0x3ec6fb=_0x3ec6fb||0xc8;return function(_0x410c37){if(_0x410c37){return _0x505b02[_0xd7c3('0x1f')](_0x3ec6fb)['json'](_0x410c37);}};}function respondWithFilteredResult(_0x549656,_0x2d841a){return function(_0x2c2494){if(_0x2c2494){var _0x321aeb=typeof _0x2d841a['offset']==='undefined'&&typeof _0x2d841a[_0xd7c3('0x20')]==='undefined';var _0x238d66=_0x2c2494[_0xd7c3('0x21')];var _0x72bf64=_0x321aeb?0x0:_0x2d841a[_0xd7c3('0x22')];var _0x4c32eb=_0x321aeb?_0x2c2494['count']:_0x2d841a['offset']+_0x2d841a[_0xd7c3('0x20')];var _0x1e2522;if(_0x4c32eb>=_0x238d66){_0x4c32eb=_0x238d66;_0x1e2522=0xc8;}else{_0x1e2522=0xce;}_0x549656[_0xd7c3('0x1f')](_0x1e2522);return _0x549656['set'](_0xd7c3('0x23'),_0x72bf64+'-'+_0x4c32eb+'/'+_0x238d66)[_0xd7c3('0x24')](_0x2c2494);}return null;};}function patchUpdates(_0x500576){return function(_0x514d3f){try{jsonpatch[_0xd7c3('0x25')](_0x514d3f,_0x500576,!![]);}catch(_0x268ac2){return BPromise[_0xd7c3('0x26')](_0x268ac2);}return _0x514d3f[_0xd7c3('0x27')]();};}function saveUpdates(_0x2de2ce,_0x43bc7f){return function(_0x465e1f){if(_0x465e1f){return _0x465e1f[_0xd7c3('0x28')](_0x2de2ce)['then'](function(_0x5c08f4){return _0x5c08f4;});}return null;};}function removeEntity(_0x4489f0,_0x3cc91e){return function(_0x359309){if(_0x359309){return _0x359309['destroy']()['then'](function(){_0x4489f0[_0xd7c3('0x1f')](0xcc)[_0xd7c3('0x1e')]();});}};}function handleEntityNotFound(_0x50d0f4,_0x46187a){return function(_0x567a2e){if(!_0x567a2e){_0x50d0f4['sendStatus'](0x194);}return _0x567a2e;};}function handleError(_0x4a9ce0,_0x272678){_0x272678=_0x272678||0x1f4;return function(_0x4246b6){logger['error'](_0x4246b6[_0xd7c3('0x29')]);if(_0x4246b6[_0xd7c3('0x2a')]){delete _0x4246b6[_0xd7c3('0x2a')];}_0x4a9ce0[_0xd7c3('0x1f')](_0x272678)[_0xd7c3('0x2b')](_0x4246b6);};}exports[_0xd7c3('0x2c')]=function(_0x152cf4,_0x391849){var _0x2644e8={},_0x93107d={},_0x38c930={'count':0x0,'rows':[]};var _0x179f6a=_[_0xd7c3('0x2d')](db[_0xd7c3('0x2e')][_0xd7c3('0x2f')],function(_0x2bfb37){return{'name':_0x2bfb37[_0xd7c3('0x30')],'type':_0x2bfb37['type'][_0xd7c3('0x31')]};});_0x93107d[_0xd7c3('0x32')]=_[_0xd7c3('0x2d')](_0x179f6a,_0xd7c3('0x2a'));_0x93107d['query']=_[_0xd7c3('0x33')](_0x152cf4[_0xd7c3('0x34')]);_0x93107d[_0xd7c3('0x35')]=_[_0xd7c3('0x36')](_0x93107d[_0xd7c3('0x32')],_0x93107d[_0xd7c3('0x34')]);_0x2644e8[_0xd7c3('0x37')]=_['intersection'](_0x93107d[_0xd7c3('0x32')],qs[_0xd7c3('0x38')](_0x152cf4['query'][_0xd7c3('0x38')]));_0x2644e8['attributes']=_0x2644e8[_0xd7c3('0x37')][_0xd7c3('0x39')]?_0x2644e8['attributes']:_0x93107d[_0xd7c3('0x32')];if(!_0x152cf4[_0xd7c3('0x34')][_0xd7c3('0x3a')](_0xd7c3('0x3b'))){_0x2644e8[_0xd7c3('0x20')]=qs[_0xd7c3('0x20')](_0x152cf4[_0xd7c3('0x34')][_0xd7c3('0x20')]);_0x2644e8[_0xd7c3('0x22')]=qs[_0xd7c3('0x22')](_0x152cf4[_0xd7c3('0x34')][_0xd7c3('0x22')]);}_0x2644e8[_0xd7c3('0x3c')]=qs['sort'](_0x152cf4[_0xd7c3('0x34')]['sort']);_0x2644e8[_0xd7c3('0x3d')]=qs[_0xd7c3('0x35')](_[_0xd7c3('0x3e')](_0x152cf4[_0xd7c3('0x34')],_0x93107d[_0xd7c3('0x35')]),_0x179f6a);if(_0x152cf4[_0xd7c3('0x34')][_0xd7c3('0x3f')]){_0x2644e8[_0xd7c3('0x3d')]=_[_0xd7c3('0x40')](_0x2644e8[_0xd7c3('0x3d')],{'$or':_[_0xd7c3('0x2d')](_0x179f6a,function(_0x54ee9b){if(_0x54ee9b[_0xd7c3('0x41')]!==_0xd7c3('0x42')){var _0x1b44d7={};_0x1b44d7[_0x54ee9b[_0xd7c3('0x2a')]]={'$like':'%'+_0x152cf4['query'][_0xd7c3('0x3f')]+'%'};return _0x1b44d7;}})});}_0x2644e8=_['merge']({},_0x2644e8,_0x152cf4[_0xd7c3('0x43')]);var _0x556912={'where':_0x2644e8[_0xd7c3('0x3d')]};return db[_0xd7c3('0x2e')][_0xd7c3('0x21')](_0x556912)[_0xd7c3('0x44')](function(_0x23d1a1){_0x38c930[_0xd7c3('0x21')]=_0x23d1a1;if(_0x152cf4['query']['includeAll']){_0x2644e8[_0xd7c3('0x45')]=[{'all':!![]}];}return db[_0xd7c3('0x2e')][_0xd7c3('0x46')](_0x2644e8);})[_0xd7c3('0x44')](function(_0x2c6fbd){_0x38c930[_0xd7c3('0x47')]=_0x2c6fbd;return _0x38c930;})[_0xd7c3('0x44')](respondWithFilteredResult(_0x391849,_0x2644e8))[_0xd7c3('0x48')](handleError(_0x391849,null));};exports[_0xd7c3('0x49')]=function(_0x2022ae,_0x42fb07){var _0x4b7446={'raw':![],'where':{'id':_0x2022ae['params']['id']}},_0x3719b5={};_0x3719b5[_0xd7c3('0x32')]=_[_0xd7c3('0x33')](db[_0xd7c3('0x2e')][_0xd7c3('0x2f')]);_0x3719b5[_0xd7c3('0x34')]=_[_0xd7c3('0x33')](_0x2022ae[_0xd7c3('0x34')]);_0x3719b5[_0xd7c3('0x35')]=_[_0xd7c3('0x36')](_0x3719b5[_0xd7c3('0x32')],_0x3719b5[_0xd7c3('0x34')]);_0x4b7446[_0xd7c3('0x37')]=_[_0xd7c3('0x36')](_0x3719b5[_0xd7c3('0x32')],qs[_0xd7c3('0x38')](_0x2022ae[_0xd7c3('0x34')]['fields']));_0x4b7446[_0xd7c3('0x37')]=_0x4b7446[_0xd7c3('0x37')]['length']?_0x4b7446[_0xd7c3('0x37')]:_0x3719b5['model'];if(_0x2022ae[_0xd7c3('0x34')][_0xd7c3('0x4a')]){_0x4b7446[_0xd7c3('0x45')]=[{'all':!![]}];}_0x4b7446=_[_0xd7c3('0x40')]({},_0x4b7446,_0x2022ae[_0xd7c3('0x43')]);return db[_0xd7c3('0x2e')][_0xd7c3('0x4b')](_0x4b7446)[_0xd7c3('0x44')](handleEntityNotFound(_0x42fb07,null))[_0xd7c3('0x44')](respondWithResult(_0x42fb07,null))[_0xd7c3('0x48')](handleError(_0x42fb07,null));};exports[_0xd7c3('0x4c')]=function(_0x85938c,_0x558adf){return db[_0xd7c3('0x2e')][_0xd7c3('0x4c')](_0x85938c['body'],{})[_0xd7c3('0x44')](respondWithResult(_0x558adf,0xc9))[_0xd7c3('0x48')](handleError(_0x558adf,null));};exports[_0xd7c3('0x28')]=function(_0x38bdf9,_0x2d9bcf){if(_0x38bdf9['body']['id']){delete _0x38bdf9[_0xd7c3('0x4d')]['id'];}return db[_0xd7c3('0x2e')][_0xd7c3('0x4b')]({'where':{'id':_0x38bdf9[_0xd7c3('0x4e')]['id']}})['then'](handleEntityNotFound(_0x2d9bcf,null))[_0xd7c3('0x44')](saveUpdates(_0x38bdf9[_0xd7c3('0x4d')],null))[_0xd7c3('0x44')](respondWithResult(_0x2d9bcf,null))[_0xd7c3('0x48')](handleError(_0x2d9bcf,null));};exports[_0xd7c3('0x4f')]=function(_0x45a5d5,_0xd4316){return db[_0xd7c3('0x2e')][_0xd7c3('0x4b')]({'where':{'id':_0x45a5d5[_0xd7c3('0x4e')]['id']}})[_0xd7c3('0x44')](handleEntityNotFound(_0xd4316,null))[_0xd7c3('0x44')](removeEntity(_0xd4316,null))[_0xd7c3('0x48')](handleError(_0xd4316,null));};exports['getConfigurations']=function(_0x5a8b78,_0x1c7ecc,_0x135ae1){var _0x26c836={};var _0xec75a3={};var _0x2f5b84;var _0xd60cbd;return db[_0xd7c3('0x2e')][_0xd7c3('0x50')]({'where':{'id':_0x5a8b78[_0xd7c3('0x4e')]['id']}})[_0xd7c3('0x44')](handleEntityNotFound(_0x1c7ecc,null))['then'](function(_0x328278){if(_0x328278){_0x2f5b84=_0x328278;_0xec75a3[_0xd7c3('0x32')]=_['keys'](db[_0xd7c3('0x51')]['rawAttributes']);_0xec75a3[_0xd7c3('0x34')]=_['keys'](_0x5a8b78[_0xd7c3('0x34')]);_0xec75a3[_0xd7c3('0x35')]=_[_0xd7c3('0x36')](_0xec75a3[_0xd7c3('0x32')],_0xec75a3[_0xd7c3('0x34')]);_0x26c836[_0xd7c3('0x37')]=_['intersection'](_0xec75a3['model'],qs['fields'](_0x5a8b78[_0xd7c3('0x34')][_0xd7c3('0x38')]));_0x26c836[_0xd7c3('0x37')]=_0x26c836[_0xd7c3('0x37')][_0xd7c3('0x39')]?_0x26c836['attributes']:_0xec75a3['model'];_0x26c836['order']=qs['sort'](_0x5a8b78[_0xd7c3('0x34')][_0xd7c3('0x52')]);_0x26c836[_0xd7c3('0x3d')]=qs['filters'](_[_0xd7c3('0x3e')](_0x5a8b78['query'],_0xec75a3[_0xd7c3('0x35')]));if(_0x5a8b78[_0xd7c3('0x34')][_0xd7c3('0x3f')]){_0x26c836[_0xd7c3('0x3d')]=_[_0xd7c3('0x40')](_0x26c836[_0xd7c3('0x3d')],{'$or':_['map'](_0x26c836[_0xd7c3('0x37')],function(_0x3d1be5){var _0x53568b={};_0x53568b[_0x3d1be5]={'$like':'%'+_0x5a8b78[_0xd7c3('0x34')]['filter']+'%'};return _0x53568b;})});}_0x26c836=_[_0xd7c3('0x40')]({},_0x26c836,_0x5a8b78[_0xd7c3('0x43')]);return _0x2f5b84[_0xd7c3('0x53')](_0x26c836);}})[_0xd7c3('0x44')](function(_0x334990){if(_0x334990){_0xd60cbd=_0x334990[_0xd7c3('0x39')];if(!_0x5a8b78[_0xd7c3('0x34')]['hasOwnProperty'](_0xd7c3('0x3b'))){_0x26c836[_0xd7c3('0x20')]=qs[_0xd7c3('0x20')](_0x5a8b78['query'][_0xd7c3('0x20')]);_0x26c836[_0xd7c3('0x22')]=qs[_0xd7c3('0x22')](_0x5a8b78['query']['offset']);}return _0x2f5b84[_0xd7c3('0x53')](_0x26c836);}})[_0xd7c3('0x44')](function(_0x3caac2){if(_0x3caac2){return _0x3caac2?{'count':_0xd60cbd,'rows':_0x3caac2}:null;}})[_0xd7c3('0x44')](respondWithResult(_0x1c7ecc,null))[_0xd7c3('0x48')](handleError(_0x1c7ecc,null));};exports[_0xd7c3('0x54')]=function(_0x3efeba,_0x1d6042,_0x18b3d6){if(_0x3efeba['body']['id']){delete _0x3efeba[_0xd7c3('0x4d')]['id'];}return db['SugarcrmAccount'][_0xd7c3('0x50')]({'where':{'id':_0x3efeba[_0xd7c3('0x4e')]['id']}})[_0xd7c3('0x44')](handleEntityNotFound(_0x1d6042,null))[_0xd7c3('0x44')](function(_0x571e64){if(_0x571e64){_0x3efeba[_0xd7c3('0x4d')]['AccountId']=_0x571e64['id'];_0x3efeba[_0xd7c3('0x4d')][_0xd7c3('0x55')]=integrations[_0xd7c3('0x56')](_0x3efeba['body']['channel'],_0x3efeba[_0xd7c3('0x4d')][_0xd7c3('0x41')]);_0x3efeba[_0xd7c3('0x4d')]['Descriptions']=integrations['getDescriptions'](_0x3efeba[_0xd7c3('0x4d')][_0xd7c3('0x57')],_0x3efeba[_0xd7c3('0x4d')]['type']);return db[_0xd7c3('0x51')][_0xd7c3('0x4c')](_0x3efeba[_0xd7c3('0x4d')],{'include':[{'model':db['SugarcrmField'],'as':_0xd7c3('0x55')},{'model':db[_0xd7c3('0x58')],'as':_0xd7c3('0x59')}]});}return null;})[_0xd7c3('0x44')](respondWithResult(_0x1d6042,null))[_0xd7c3('0x48')](handleError(_0x1d6042,null));};exports[_0xd7c3('0x5a')]=function(_0x5c1e3a,_0x2f0100,_0x271550){var _0x381470='';var _0x21b33a=['id',_0xd7c3('0x2a'),_0xd7c3('0x5b'),'created_by','description',_0xd7c3('0x5c'),_0xd7c3('0x5d'),'duration_minutes','parent_id',_0xd7c3('0x5e'),_0xd7c3('0x5f'),_0xd7c3('0x60')];return db[_0xd7c3('0x2e')][_0xd7c3('0x50')]({'where':{'id':_0x5c1e3a[_0xd7c3('0x4e')]['id']},'attributes':['id',_0xd7c3('0x61'),_0xd7c3('0x62'),_0xd7c3('0x63')]})['then'](handleEntityNotFound(_0x2f0100,null))[_0xd7c3('0x44')](function(_0x477879){if(_0x477879){_0x381470=_0x477879[_0xd7c3('0x63')];var _0x41e245=_0x381470[_0xd7c3('0x64')](-0x1);if(_0x41e245==='/'){_0x381470=_0x381470['substring'](0x0,_0x381470[_0xd7c3('0x65')](_0x41e245));}return rp({'method':'POST','uri':util[_0xd7c3('0x66')]('%s%s',_0x381470,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0xd7c3('0x67'),'input_type':_0xd7c3('0x68'),'response_type':_0xd7c3('0x68'),'rest_data':JSON[_0xd7c3('0x69')]({'user_auth':{'user_name':_0x477879['username'],'password':_0x477879[_0xd7c3('0x62')],'encryption':_0xd7c3('0x6a')},'application':'xCALLY\x20Motion\x20Integration'})}});}})['then'](function(_0x9aa7cd){if(_0x9aa7cd&&_0x9aa7cd[_0xd7c3('0x2a')]!=='Invalid\x20Login'&&_0x9aa7cd['name']!=='Password\x20Expired'){return rp({'method':_0xd7c3('0x6b'),'uri':util[_0xd7c3('0x66')](_0xd7c3('0x6c'),_0x381470,_0xd7c3('0x6d')),'json':!![],'form':{'method':'get_module_fields','input_type':_0xd7c3('0x68'),'response_type':'JSON','rest_data':JSON['stringify']({'session':_0x9aa7cd['id'],'module_name':_0xd7c3('0x6e')})}})['then'](function(_0x36172a){if(_0x36172a){var _0x5a0063=_[_0xd7c3('0x6f')](_0x36172a[_0xd7c3('0x70')]);_[_0xd7c3('0x71')](_0x5a0063,function(_0x514603){return _0x21b33a[_0xd7c3('0x72')](_0x514603[_0xd7c3('0x2a')]);});return{'count':_0x5a0063[_0xd7c3('0x39')],'rows':_['map'](_0x5a0063,function(_0x1299a1){return{'id':_0x1299a1[_0xd7c3('0x2a')],'name':_0x1299a1[_0xd7c3('0x73')],'custom':_[_0xd7c3('0x74')](_0x1299a1[_0xd7c3('0x2a')],'_c')?!![]:![],'options':_0x1299a1[_0xd7c3('0x43')]?_[_0xd7c3('0x2d')](_[_0xd7c3('0x6f')](_0x1299a1[_0xd7c3('0x43')]),function(_0x54595b){return{'name':_0x54595b[_0xd7c3('0x75')],'value':_0x54595b['name']};}):[]};})};}})[_0xd7c3('0x44')](respondWithResult(_0x2f0100,null))[_0xd7c3('0x48')](function(_0x1157ec){var _0x575c19=_0x5c1e3a[_0xd7c3('0x34')]['test']?0x1f4:_0x1157ec[_0xd7c3('0x76')]||0x1f4;logger[_0xd7c3('0x77')]('getFields,\x20%s,\x20%s,\x20%s',_0xd7c3('0x5a'),_0x575c19,JSON[_0xd7c3('0x69')](_0x1157ec));delete _0x1157ec[_0xd7c3('0x2a')];if(_0x575c19===0x191){_0x575c19=0x190;}_0x2f0100[_0xd7c3('0x1f')](_0x575c19)['send'](_0x5c1e3a[_0xd7c3('0x34')]['test']?{'message':_0xd7c3('0x78'),'statusCode':_0x1157ec[_0xd7c3('0x76')]}:_0x1157ec);});}else{var _0x530ed1=0x1f4;_0x2f0100['status'](_0x530ed1)['send']({'message':'Wrong\x20credentials','statusCode':0x190});}});};