4ffd5b41c18df32fcc763d44273237485d87f581
[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 _0x801e=['../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','end','stack','name','send','index','map','SugarcrmAccount','rawAttributes','fieldName','key','keys','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','sort','pick','filter','where','merge','type','includeAll','include','findAll','rows','catch','params','length','options','find','create','body','destroy','getConfigurations','findOne','SugarcrmConfiguration','order','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','SugarcrmField','getFields','assigned_user_id','description','date_start','duration_hours','parent_name','direction','username','password','remoteUri','slice','substring','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','Invalid\x20Login','Password\x20Expired','Calls','module_fields','remove','includes','label','endsWith','values','value','test','statusCode','error','Wrong\x20credentials','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x816b8d,_0x38a0c6){var _0x55e47c=function(_0x5c9769){while(--_0x5c9769){_0x816b8d['push'](_0x816b8d['shift']());}};_0x55e47c(++_0x38a0c6);}(_0x801e,0x15d));var _0xe801=function(_0x5c3a6b,_0x2a0d95){_0x5c3a6b=_0x5c3a6b-0x0;var _0x1cadef=_0x801e[_0x5c3a6b];return _0x1cadef;};'use strict';var emlformat=require(_0xe801('0x0'));var rimraf=require(_0xe801('0x1'));var zipdir=require(_0xe801('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe801('0x3'));var moment=require('moment');var BPromise=require(_0xe801('0x4'));var Mustache=require(_0xe801('0x5'));var util=require(_0xe801('0x6'));var path=require(_0xe801('0x7'));var sox=require(_0xe801('0x8'));var csv=require(_0xe801('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe801('0xa'));var _=require('lodash');var squel=require(_0xe801('0xb'));var crypto=require(_0xe801('0xc'));var jsforce=require(_0xe801('0xd'));var deskjs=require(_0xe801('0xe'));var toCsv=require(_0xe801('0x9'));var querystring=require(_0xe801('0xf'));var Papa=require('papaparse');var Redis=require(_0xe801('0x10'));var authService=require(_0xe801('0x11'));var qs=require(_0xe801('0x12'));var as=require(_0xe801('0x13'));var hardwareService=require(_0xe801('0x14'));var logger=require('../../config/logger')(_0xe801('0x15'));var utils=require('../../config/utils');var config=require(_0xe801('0x16'));var licenseUtil=require(_0xe801('0x17'));var db=require(_0xe801('0x18'))['db'];var integrations=require(_0xe801('0x19'));function respondWithStatusCode(_0x131757,_0x51847e){_0x51847e=_0x51847e||0xcc;return function(_0x266eff){if(_0x266eff){return _0x131757[_0xe801('0x1a')](_0x51847e);}return _0x131757[_0xe801('0x1b')](_0x51847e)['end']();};}function respondWithResult(_0x2f0879,_0x30418a){_0x30418a=_0x30418a||0xc8;return function(_0xa9bc48){if(_0xa9bc48){return _0x2f0879[_0xe801('0x1b')](_0x30418a)[_0xe801('0x1c')](_0xa9bc48);}};}function respondWithFilteredResult(_0x203256,_0x5a68fc){return function(_0x473935){if(_0x473935){var _0x45f49a=typeof _0x5a68fc[_0xe801('0x1d')]===_0xe801('0x1e')&&typeof _0x5a68fc[_0xe801('0x1f')]===_0xe801('0x1e');var _0x51bb06=_0x473935[_0xe801('0x20')];var _0x111ba9=_0x45f49a?0x0:_0x5a68fc[_0xe801('0x1d')];var _0x326519=_0x45f49a?_0x473935['count']:_0x5a68fc[_0xe801('0x1d')]+_0x5a68fc[_0xe801('0x1f')];var _0x1a5c29;if(_0x326519>=_0x51bb06){_0x326519=_0x51bb06;_0x1a5c29=0xc8;}else{_0x1a5c29=0xce;}_0x203256[_0xe801('0x1b')](_0x1a5c29);return _0x203256[_0xe801('0x21')](_0xe801('0x22'),_0x111ba9+'-'+_0x326519+'/'+_0x51bb06)['json'](_0x473935);}return null;};}function patchUpdates(_0x531510){return function(_0x48cf27){try{jsonpatch[_0xe801('0x23')](_0x48cf27,_0x531510,!![]);}catch(_0xb86fb6){return BPromise['reject'](_0xb86fb6);}return _0x48cf27[_0xe801('0x24')]();};}function saveUpdates(_0x5aca07,_0x33a2d4){return function(_0x57e3a4){if(_0x57e3a4){return _0x57e3a4[_0xe801('0x25')](_0x5aca07)[_0xe801('0x26')](function(_0x57dfa8){return _0x57dfa8;});}return null;};}function removeEntity(_0x47ad1b,_0x15d713){return function(_0x308f00){if(_0x308f00){return _0x308f00['destroy']()[_0xe801('0x26')](function(){_0x47ad1b[_0xe801('0x1b')](0xcc)[_0xe801('0x27')]();});}};}function handleEntityNotFound(_0x5ec908,_0x514c5e){return function(_0x3dbf64){if(!_0x3dbf64){_0x5ec908[_0xe801('0x1a')](0x194);}return _0x3dbf64;};}function handleError(_0x385a3c,_0x120134){_0x120134=_0x120134||0x1f4;return function(_0x3680f6){logger['error'](_0x3680f6[_0xe801('0x28')]);if(_0x3680f6['name']){delete _0x3680f6[_0xe801('0x29')];}_0x385a3c[_0xe801('0x1b')](_0x120134)[_0xe801('0x2a')](_0x3680f6);};}exports[_0xe801('0x2b')]=function(_0x4be325,_0x1b8a9a){var _0x4b12ea={},_0x21f0d5={},_0x547625={'count':0x0,'rows':[]};var _0x57d813=_[_0xe801('0x2c')](db[_0xe801('0x2d')][_0xe801('0x2e')],function(_0x4d2d1f){return{'name':_0x4d2d1f[_0xe801('0x2f')],'type':_0x4d2d1f['type'][_0xe801('0x30')]};});_0x21f0d5['model']=_[_0xe801('0x2c')](_0x57d813,_0xe801('0x29'));_0x21f0d5['query']=_[_0xe801('0x31')](_0x4be325[_0xe801('0x32')]);_0x21f0d5[_0xe801('0x33')]=_[_0xe801('0x34')](_0x21f0d5[_0xe801('0x35')],_0x21f0d5[_0xe801('0x32')]);_0x4b12ea[_0xe801('0x36')]=_[_0xe801('0x34')](_0x21f0d5[_0xe801('0x35')],qs[_0xe801('0x37')](_0x4be325[_0xe801('0x32')][_0xe801('0x37')]));_0x4b12ea[_0xe801('0x36')]=_0x4b12ea[_0xe801('0x36')]['length']?_0x4b12ea[_0xe801('0x36')]:_0x21f0d5[_0xe801('0x35')];if(!_0x4be325[_0xe801('0x32')][_0xe801('0x38')](_0xe801('0x39'))){_0x4b12ea['limit']=qs[_0xe801('0x1f')](_0x4be325['query'][_0xe801('0x1f')]);_0x4b12ea[_0xe801('0x1d')]=qs[_0xe801('0x1d')](_0x4be325[_0xe801('0x32')][_0xe801('0x1d')]);}_0x4b12ea['order']=qs[_0xe801('0x3a')](_0x4be325[_0xe801('0x32')][_0xe801('0x3a')]);_0x4b12ea['where']=qs['filters'](_[_0xe801('0x3b')](_0x4be325[_0xe801('0x32')],_0x21f0d5[_0xe801('0x33')]),_0x57d813);if(_0x4be325['query'][_0xe801('0x3c')]){_0x4b12ea[_0xe801('0x3d')]=_[_0xe801('0x3e')](_0x4b12ea['where'],{'$or':_[_0xe801('0x2c')](_0x57d813,function(_0x57a368){if(_0x57a368[_0xe801('0x3f')]!=='VIRTUAL'){var _0x475798={};_0x475798[_0x57a368[_0xe801('0x29')]]={'$like':'%'+_0x4be325[_0xe801('0x32')][_0xe801('0x3c')]+'%'};return _0x475798;}})});}_0x4b12ea=_['merge']({},_0x4b12ea,_0x4be325['options']);var _0x82d256={'where':_0x4b12ea['where']};return db[_0xe801('0x2d')]['count'](_0x82d256)['then'](function(_0x164763){_0x547625[_0xe801('0x20')]=_0x164763;if(_0x4be325[_0xe801('0x32')][_0xe801('0x40')]){_0x4b12ea[_0xe801('0x41')]=[{'all':!![]}];}return db[_0xe801('0x2d')][_0xe801('0x42')](_0x4b12ea);})['then'](function(_0x4fcaf6){_0x547625[_0xe801('0x43')]=_0x4fcaf6;return _0x547625;})['then'](respondWithFilteredResult(_0x1b8a9a,_0x4b12ea))[_0xe801('0x44')](handleError(_0x1b8a9a,null));};exports['show']=function(_0x33b9e8,_0x231095){var _0x17e56c={'raw':![],'where':{'id':_0x33b9e8[_0xe801('0x45')]['id']}},_0x22fe7f={};_0x22fe7f[_0xe801('0x35')]=_[_0xe801('0x31')](db[_0xe801('0x2d')][_0xe801('0x2e')]);_0x22fe7f[_0xe801('0x32')]=_[_0xe801('0x31')](_0x33b9e8[_0xe801('0x32')]);_0x22fe7f[_0xe801('0x33')]=_[_0xe801('0x34')](_0x22fe7f[_0xe801('0x35')],_0x22fe7f[_0xe801('0x32')]);_0x17e56c[_0xe801('0x36')]=_[_0xe801('0x34')](_0x22fe7f[_0xe801('0x35')],qs[_0xe801('0x37')](_0x33b9e8[_0xe801('0x32')][_0xe801('0x37')]));_0x17e56c[_0xe801('0x36')]=_0x17e56c['attributes'][_0xe801('0x46')]?_0x17e56c[_0xe801('0x36')]:_0x22fe7f[_0xe801('0x35')];if(_0x33b9e8[_0xe801('0x32')][_0xe801('0x40')]){_0x17e56c['include']=[{'all':!![]}];}_0x17e56c=_[_0xe801('0x3e')]({},_0x17e56c,_0x33b9e8[_0xe801('0x47')]);return db[_0xe801('0x2d')][_0xe801('0x48')](_0x17e56c)['then'](handleEntityNotFound(_0x231095,null))[_0xe801('0x26')](respondWithResult(_0x231095,null))['catch'](handleError(_0x231095,null));};exports['create']=function(_0x3a6ed9,_0x19db7d){return db[_0xe801('0x2d')][_0xe801('0x49')](_0x3a6ed9[_0xe801('0x4a')],{})[_0xe801('0x26')](respondWithResult(_0x19db7d,0xc9))[_0xe801('0x44')](handleError(_0x19db7d,null));};exports[_0xe801('0x25')]=function(_0x1d2a3e,_0x148442){if(_0x1d2a3e[_0xe801('0x4a')]['id']){delete _0x1d2a3e[_0xe801('0x4a')]['id'];}return db[_0xe801('0x2d')][_0xe801('0x48')]({'where':{'id':_0x1d2a3e['params']['id']}})[_0xe801('0x26')](handleEntityNotFound(_0x148442,null))['then'](saveUpdates(_0x1d2a3e[_0xe801('0x4a')],null))['then'](respondWithResult(_0x148442,null))[_0xe801('0x44')](handleError(_0x148442,null));};exports[_0xe801('0x4b')]=function(_0x51a25c,_0x321f35){return db[_0xe801('0x2d')]['find']({'where':{'id':_0x51a25c[_0xe801('0x45')]['id']}})[_0xe801('0x26')](handleEntityNotFound(_0x321f35,null))['then'](removeEntity(_0x321f35,null))['catch'](handleError(_0x321f35,null));};exports[_0xe801('0x4c')]=function(_0x4672ad,_0x3347a4,_0x1e4ded){var _0x362ca7={};var _0x4aac45={};var _0x1628ee;var _0x279e92;return db[_0xe801('0x2d')][_0xe801('0x4d')]({'where':{'id':_0x4672ad[_0xe801('0x45')]['id']}})[_0xe801('0x26')](handleEntityNotFound(_0x3347a4,null))[_0xe801('0x26')](function(_0x5123a5){if(_0x5123a5){_0x1628ee=_0x5123a5;_0x4aac45[_0xe801('0x35')]=_[_0xe801('0x31')](db[_0xe801('0x4e')][_0xe801('0x2e')]);_0x4aac45['query']=_[_0xe801('0x31')](_0x4672ad[_0xe801('0x32')]);_0x4aac45[_0xe801('0x33')]=_[_0xe801('0x34')](_0x4aac45['model'],_0x4aac45[_0xe801('0x32')]);_0x362ca7[_0xe801('0x36')]=_[_0xe801('0x34')](_0x4aac45['model'],qs[_0xe801('0x37')](_0x4672ad[_0xe801('0x32')][_0xe801('0x37')]));_0x362ca7[_0xe801('0x36')]=_0x362ca7[_0xe801('0x36')][_0xe801('0x46')]?_0x362ca7[_0xe801('0x36')]:_0x4aac45[_0xe801('0x35')];_0x362ca7[_0xe801('0x4f')]=qs[_0xe801('0x3a')](_0x4672ad[_0xe801('0x32')][_0xe801('0x3a')]);_0x362ca7[_0xe801('0x3d')]=qs['filters'](_[_0xe801('0x3b')](_0x4672ad[_0xe801('0x32')],_0x4aac45[_0xe801('0x33')]));if(_0x4672ad[_0xe801('0x32')]['filter']){_0x362ca7['where']=_[_0xe801('0x3e')](_0x362ca7[_0xe801('0x3d')],{'$or':_[_0xe801('0x2c')](_0x362ca7[_0xe801('0x36')],function(_0x3a553f){var _0x10077c={};_0x10077c[_0x3a553f]={'$like':'%'+_0x4672ad[_0xe801('0x32')][_0xe801('0x3c')]+'%'};return _0x10077c;})});}_0x362ca7=_['merge']({},_0x362ca7,_0x4672ad[_0xe801('0x47')]);return _0x1628ee[_0xe801('0x4c')](_0x362ca7);}})[_0xe801('0x26')](function(_0x374520){if(_0x374520){_0x279e92=_0x374520[_0xe801('0x46')];if(!_0x4672ad['query']['hasOwnProperty'](_0xe801('0x39'))){_0x362ca7[_0xe801('0x1f')]=qs[_0xe801('0x1f')](_0x4672ad[_0xe801('0x32')]['limit']);_0x362ca7['offset']=qs['offset'](_0x4672ad['query']['offset']);}return _0x1628ee[_0xe801('0x4c')](_0x362ca7);}})[_0xe801('0x26')](function(_0x9d635e){if(_0x9d635e){return _0x9d635e?{'count':_0x279e92,'rows':_0x9d635e}:null;}})[_0xe801('0x26')](respondWithResult(_0x3347a4,null))[_0xe801('0x44')](handleError(_0x3347a4,null));};exports[_0xe801('0x50')]=function(_0x317ca1,_0x536390,_0x3f5218){if(_0x317ca1[_0xe801('0x4a')]['id']){delete _0x317ca1[_0xe801('0x4a')]['id'];}return db[_0xe801('0x2d')][_0xe801('0x4d')]({'where':{'id':_0x317ca1[_0xe801('0x45')]['id']}})[_0xe801('0x26')](handleEntityNotFound(_0x536390,null))[_0xe801('0x26')](function(_0x352668){if(_0x352668){_0x317ca1['body'][_0xe801('0x51')]=_0x352668['id'];_0x317ca1[_0xe801('0x4a')][_0xe801('0x52')]=integrations[_0xe801('0x53')](_0x317ca1[_0xe801('0x4a')]['channel'],_0x317ca1[_0xe801('0x4a')][_0xe801('0x3f')]);_0x317ca1[_0xe801('0x4a')][_0xe801('0x54')]=integrations[_0xe801('0x55')](_0x317ca1[_0xe801('0x4a')][_0xe801('0x56')],_0x317ca1[_0xe801('0x4a')][_0xe801('0x3f')]);return db[_0xe801('0x4e')][_0xe801('0x49')](_0x317ca1[_0xe801('0x4a')],{'include':[{'model':db['SugarcrmField'],'as':_0xe801('0x52')},{'model':db[_0xe801('0x57')],'as':_0xe801('0x54')}]});}return null;})[_0xe801('0x26')](respondWithResult(_0x536390,null))[_0xe801('0x44')](handleError(_0x536390,null));};exports[_0xe801('0x58')]=function(_0x1fb222,_0xe3de4e,_0x3f8f3e){var _0x2ac71c='';var _0x5359a5=['id',_0xe801('0x29'),_0xe801('0x59'),'created_by',_0xe801('0x5a'),_0xe801('0x5b'),_0xe801('0x5c'),'duration_minutes','parent_id','parent_type',_0xe801('0x5d'),_0xe801('0x5e')];return db[_0xe801('0x2d')][_0xe801('0x4d')]({'where':{'id':_0x1fb222['params']['id']},'attributes':['id',_0xe801('0x5f'),_0xe801('0x60'),_0xe801('0x61')]})[_0xe801('0x26')](handleEntityNotFound(_0xe3de4e,null))['then'](function(_0x2a39c1){if(_0x2a39c1){_0x2ac71c=_0x2a39c1[_0xe801('0x61')];var _0x215501=_0x2ac71c[_0xe801('0x62')](-0x1);if(_0x215501==='/'){_0x2ac71c=_0x2ac71c[_0xe801('0x63')](0x0,_0x2ac71c[_0xe801('0x64')](_0x215501));}return rp({'method':_0xe801('0x65'),'uri':util[_0xe801('0x66')](_0xe801('0x67'),_0x2ac71c,_0xe801('0x68')),'json':!![],'form':{'method':_0xe801('0x69'),'input_type':'JSON','response_type':_0xe801('0x6a'),'rest_data':JSON[_0xe801('0x6b')]({'user_auth':{'user_name':_0x2a39c1[_0xe801('0x5f')],'password':_0x2a39c1[_0xe801('0x60')],'encryption':_0xe801('0x6c')},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0xe801('0x26')](function(_0x48017c){if(_0x48017c&&_0x48017c['name']!==_0xe801('0x6d')&&_0x48017c['name']!==_0xe801('0x6e')){return rp({'method':_0xe801('0x65'),'uri':util['format'](_0xe801('0x67'),_0x2ac71c,_0xe801('0x68')),'json':!![],'form':{'method':'get_module_fields','input_type':_0xe801('0x6a'),'response_type':'JSON','rest_data':JSON['stringify']({'session':_0x48017c['id'],'module_name':_0xe801('0x6f')})}})[_0xe801('0x26')](function(_0x276907){if(_0x276907){var _0x39f19e=_['values'](_0x276907[_0xe801('0x70')]);_[_0xe801('0x71')](_0x39f19e,function(_0x39d86f){return _0x5359a5[_0xe801('0x72')](_0x39d86f[_0xe801('0x29')]);});return{'count':_0x39f19e[_0xe801('0x46')],'rows':_['map'](_0x39f19e,function(_0x1b8ec3){return{'id':_0x1b8ec3[_0xe801('0x29')],'name':_0x1b8ec3[_0xe801('0x73')],'custom':_[_0xe801('0x74')](_0x1b8ec3[_0xe801('0x29')],'_c')?!![]:![],'options':_0x1b8ec3['options']?_['map'](_[_0xe801('0x75')](_0x1b8ec3[_0xe801('0x47')]),function(_0x1025b8){return{'name':_0x1025b8[_0xe801('0x76')],'value':_0x1025b8[_0xe801('0x29')]};}):[]};})};}})['then'](respondWithResult(_0xe3de4e,null))[_0xe801('0x44')](function(_0x1dff54){var _0x440f4d=_0x1fb222[_0xe801('0x32')][_0xe801('0x77')]?0x1f4:_0x1dff54[_0xe801('0x78')]||0x1f4;logger[_0xe801('0x79')]('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x440f4d,JSON[_0xe801('0x6b')](_0x1dff54));delete _0x1dff54[_0xe801('0x29')];if(_0x440f4d===0x191){_0x440f4d=0x190;}_0xe3de4e['status'](_0x440f4d)['send'](_0x1fb222[_0xe801('0x32')][_0xe801('0x77')]?{'message':_0xe801('0x7a'),'statusCode':_0x1dff54[_0xe801('0x78')]}:_0x1dff54);});}else{var _0x376a58=0x1f4;_0xe3de4e['status'](_0x376a58)[_0xe801('0x2a')]({'message':_0xe801('0x7a'),'statusCode':0x190});}});};