aec330bd63d556334d04924c662d2092418b1ebe
[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 _0xa91b=['sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','request','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','reject','save','then','destroy','stack','name','send','index','map','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','sort','where','filter','merge','SugarcrmAccount','includeAll','findAll','rows','show','params','include','options','find','create','body','update','getConfigurations','findOne','SugarcrmConfiguration','rawAttributes','order','pick','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','SugarcrmField','Descriptions','getFields','assigned_user_id','created_by','description','date_start','duration_hours','parent_id','parent_name','password','remoteUri','slice','lastIndexOf','POST','format','login','JSON','username','PLAIN','xCALLY\x20Motion\x20Integration','Password\x20Expired','%s%s','/service/v4_1/rest.php','get_module_fields','Calls','values','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path'];(function(_0x153da6,_0xc9bfde){var _0xf01a0d=function(_0x409ed5){while(--_0x409ed5){_0x153da6['push'](_0x153da6['shift']());}};_0xf01a0d(++_0xc9bfde);}(_0xa91b,0xfc));var _0xba91=function(_0x1fac38,_0x370031){_0x1fac38=_0x1fac38-0x0;var _0x24884a=_0xa91b[_0x1fac38];return _0x24884a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xba91('0x0'));var zipdir=require(_0xba91('0x1'));var jsonpatch=require(_0xba91('0x2'));var rp=require(_0xba91('0x3'));var moment=require('moment');var BPromise=require(_0xba91('0x4'));var Mustache=require(_0xba91('0x5'));var util=require(_0xba91('0x6'));var path=require(_0xba91('0x7'));var sox=require(_0xba91('0x8'));var csv=require(_0xba91('0x9'));var ejs=require(_0xba91('0xa'));var fs=require('fs');var fs_extra=require(_0xba91('0xb'));var _=require(_0xba91('0xc'));var squel=require(_0xba91('0xd'));var crypto=require(_0xba91('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xba91('0x9'));var querystring=require(_0xba91('0xf'));var Papa=require(_0xba91('0x10'));var Redis=require(_0xba91('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xba91('0x12'));var as=require(_0xba91('0x13'));var hardwareService=require(_0xba91('0x14'));var logger=require(_0xba91('0x15'))(_0xba91('0x16'));var utils=require('../../config/utils');var config=require(_0xba91('0x17'));var licenseUtil=require(_0xba91('0x18'));var db=require(_0xba91('0x19'))['db'];var integrations=require(_0xba91('0x1a'));var jayson=require(_0xba91('0x1b'));var client=jayson[_0xba91('0x1c')][_0xba91('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x28d859,_0x344456,_0x3f4166,_0x431bb0){return new BPromise(function(_0x3d3465,_0x5afc2c){var _0x581c54=_0x431bb0||client;return _0x581c54[_0xba91('0x1e')](_0x28d859,_0x3f4166)['then'](function(_0x5acffc){logger['info'](_0xba91('0x1f'),_0x344456,_0xba91('0x20'));logger[_0xba91('0x21')]('SugarcrmAccount,\x20%s,\x20%s,\x20%s',_0x344456,_0xba91('0x20'),JSON[_0xba91('0x22')](_0x5acffc));if(_0x5acffc[_0xba91('0x23')]){if(_0x5acffc['error']['code']===0x1f4){logger[_0xba91('0x23')](_0xba91('0x1f'),_0x344456,_0x5acffc[_0xba91('0x23')][_0xba91('0x24')]);return _0x5afc2c(_0x5acffc[_0xba91('0x23')]['message']);}logger[_0xba91('0x23')]('SugarcrmAccount,\x20%s,\x20%s',_0x344456,_0x5acffc[_0xba91('0x23')][_0xba91('0x24')]);return _0x3d3465(_0x5acffc[_0xba91('0x23')][_0xba91('0x24')]);}else{logger['info']('SugarcrmAccount,\x20%s,\x20%s',_0x344456,_0xba91('0x20'));_0x3d3465(_0x5acffc[_0xba91('0x25')][_0xba91('0x24')]);}})[_0xba91('0x26')](function(_0x4d4514){logger[_0xba91('0x23')](_0xba91('0x1f'),_0x344456,_0x4d4514);_0x5afc2c(_0x4d4514);});});}function respondWithStatusCode(_0x25424a,_0x308496){_0x308496=_0x308496||0xcc;return function(_0x5ebe4e){if(_0x5ebe4e){return _0x25424a[_0xba91('0x27')](_0x308496);}return _0x25424a[_0xba91('0x28')](_0x308496)[_0xba91('0x29')]();};}function respondWithResult(_0x258122,_0x4c2292){_0x4c2292=_0x4c2292||0xc8;return function(_0x1b9c13){if(_0x1b9c13){return _0x258122['status'](_0x4c2292)['json'](_0x1b9c13);}};}function respondWithFilteredResult(_0x1d036e,_0x296120){return function(_0x39c0d7){if(_0x39c0d7){var _0x587a58=_0x39c0d7[_0xba91('0x2a')],_0x3dc230=_0x296120['offset'],_0x1ce2a5=_0x296120[_0xba91('0x2b')]+_0x296120[_0xba91('0x2c')],_0x1deb2c;if(_0x1ce2a5>=_0x587a58){_0x1ce2a5=_0x587a58;_0x1deb2c=0xc8;}else{_0x1deb2c=0xce;}_0x1d036e[_0xba91('0x28')](_0x1deb2c);return _0x1d036e[_0xba91('0x2d')](_0xba91('0x2e'),_0x3dc230+'-'+_0x1ce2a5+'/'+_0x587a58)[_0xba91('0x2f')](_0x39c0d7);}return null;};}function patchUpdates(_0x45fc8a){return function(_0x20ea81){try{jsonpatch[_0xba91('0x30')](_0x20ea81,_0x45fc8a,!![]);}catch(_0x53cbe6){return BPromise[_0xba91('0x31')](_0x53cbe6);}return _0x20ea81[_0xba91('0x32')]();};}function saveUpdates(_0x15b417,_0x1bb0a5){return function(_0x7e3c56){if(_0x7e3c56){return _0x7e3c56['update'](_0x15b417)[_0xba91('0x33')](function(_0x586fc5){return _0x586fc5;});}return null;};}function removeEntity(_0x1372fb,_0x37517b){return function(_0x5b05a4){if(_0x5b05a4){return _0x5b05a4[_0xba91('0x34')]()[_0xba91('0x33')](function(){_0x1372fb[_0xba91('0x28')](0xcc)[_0xba91('0x29')]();});}};}function handleEntityNotFound(_0x40225c,_0x53309b){return function(_0x1d494d){if(!_0x1d494d){_0x40225c['sendStatus'](0x194);}return _0x1d494d;};}function handleError(_0xe8b0a1,_0x29dbe2){_0x29dbe2=_0x29dbe2||0x1f4;return function(_0x4ff871){logger[_0xba91('0x23')](_0x4ff871[_0xba91('0x35')]);if(_0x4ff871['name']){delete _0x4ff871[_0xba91('0x36')];}_0xe8b0a1[_0xba91('0x28')](_0x29dbe2)[_0xba91('0x37')](_0x4ff871);};}exports[_0xba91('0x38')]=function(_0x53b3ff,_0x2b2a64){var _0x21e358={},_0x2349b2={},_0x2a826e={'count':0x0,'rows':[]};var _0x3c5d3a=_[_0xba91('0x39')](db['SugarcrmAccount']['rawAttributes'],function(_0x167f0a){return{'name':_0x167f0a[_0xba91('0x3a')],'type':_0x167f0a[_0xba91('0x3b')][_0xba91('0x3c')]};});_0x2349b2[_0xba91('0x3d')]=_[_0xba91('0x39')](_0x3c5d3a,_0xba91('0x36'));_0x2349b2[_0xba91('0x3e')]=_[_0xba91('0x3f')](_0x53b3ff[_0xba91('0x3e')]);_0x2349b2[_0xba91('0x40')]=_[_0xba91('0x41')](_0x2349b2[_0xba91('0x3d')],_0x2349b2[_0xba91('0x3e')]);_0x21e358['attributes']=_[_0xba91('0x41')](_0x2349b2[_0xba91('0x3d')],qs['fields'](_0x53b3ff[_0xba91('0x3e')][_0xba91('0x42')]));_0x21e358[_0xba91('0x43')]=_0x21e358['attributes'][_0xba91('0x44')]?_0x21e358[_0xba91('0x43')]:_0x2349b2[_0xba91('0x3d')];if(!_0x53b3ff[_0xba91('0x3e')][_0xba91('0x45')]('nolimit')){_0x21e358['limit']=qs[_0xba91('0x2c')](_0x53b3ff[_0xba91('0x3e')][_0xba91('0x2c')]);_0x21e358[_0xba91('0x2b')]=qs['offset'](_0x53b3ff[_0xba91('0x3e')]['offset']);}_0x21e358['order']=qs[_0xba91('0x46')](_0x53b3ff[_0xba91('0x3e')][_0xba91('0x46')]);_0x21e358[_0xba91('0x47')]=qs['filters'](_['pick'](_0x53b3ff[_0xba91('0x3e')],_0x2349b2[_0xba91('0x40')]),_0x3c5d3a);if(_0x53b3ff[_0xba91('0x3e')][_0xba91('0x48')]){_0x21e358[_0xba91('0x47')]=_['merge'](_0x21e358[_0xba91('0x47')],{'$or':_[_0xba91('0x39')](_0x3c5d3a,function(_0x321db7){if(_0x321db7[_0xba91('0x3b')]!=='VIRTUAL'){var _0x27ef75={};_0x27ef75[_0x321db7[_0xba91('0x36')]]={'$like':'%'+_0x53b3ff[_0xba91('0x3e')][_0xba91('0x48')]+'%'};return _0x27ef75;}})});}_0x21e358=_[_0xba91('0x49')]({},_0x21e358,_0x53b3ff['options']);var _0x62fffd={'where':_0x21e358[_0xba91('0x47')]};return db[_0xba91('0x4a')]['count'](_0x62fffd)[_0xba91('0x33')](function(_0xc3cd6a){_0x2a826e[_0xba91('0x2a')]=_0xc3cd6a;if(_0x53b3ff[_0xba91('0x3e')][_0xba91('0x4b')]){_0x21e358['include']=[{'all':!![]}];}return db[_0xba91('0x4a')][_0xba91('0x4c')](_0x21e358);})[_0xba91('0x33')](function(_0x5234e1){_0x2a826e[_0xba91('0x4d')]=_0x5234e1;return _0x2a826e;})[_0xba91('0x33')](respondWithFilteredResult(_0x2b2a64,_0x21e358))[_0xba91('0x26')](handleError(_0x2b2a64,null));};exports[_0xba91('0x4e')]=function(_0x3f9f3d,_0x49c68f){var _0x1b7777={'raw':![],'where':{'id':_0x3f9f3d[_0xba91('0x4f')]['id']}},_0x2f103f={};_0x2f103f[_0xba91('0x3d')]=_[_0xba91('0x3f')](db[_0xba91('0x4a')]['rawAttributes']);_0x2f103f[_0xba91('0x3e')]=_['keys'](_0x3f9f3d[_0xba91('0x3e')]);_0x2f103f[_0xba91('0x40')]=_[_0xba91('0x41')](_0x2f103f[_0xba91('0x3d')],_0x2f103f[_0xba91('0x3e')]);_0x1b7777[_0xba91('0x43')]=_[_0xba91('0x41')](_0x2f103f[_0xba91('0x3d')],qs[_0xba91('0x42')](_0x3f9f3d['query'][_0xba91('0x42')]));_0x1b7777[_0xba91('0x43')]=_0x1b7777[_0xba91('0x43')][_0xba91('0x44')]?_0x1b7777[_0xba91('0x43')]:_0x2f103f[_0xba91('0x3d')];if(_0x3f9f3d[_0xba91('0x3e')][_0xba91('0x4b')]){_0x1b7777[_0xba91('0x50')]=[{'all':!![]}];}_0x1b7777=_['merge']({},_0x1b7777,_0x3f9f3d[_0xba91('0x51')]);return db['SugarcrmAccount'][_0xba91('0x52')](_0x1b7777)[_0xba91('0x33')](handleEntityNotFound(_0x49c68f,null))[_0xba91('0x33')](respondWithResult(_0x49c68f,null))[_0xba91('0x26')](handleError(_0x49c68f,null));};exports[_0xba91('0x53')]=function(_0x1dd1bd,_0x40407e){return db[_0xba91('0x4a')]['create'](_0x1dd1bd[_0xba91('0x54')],{})[_0xba91('0x33')](respondWithResult(_0x40407e,0xc9))[_0xba91('0x26')](handleError(_0x40407e,null));};exports[_0xba91('0x55')]=function(_0x52c4d0,_0x5b5dfc){if(_0x52c4d0['body']['id']){delete _0x52c4d0[_0xba91('0x54')]['id'];}return db[_0xba91('0x4a')]['find']({'where':{'id':_0x52c4d0[_0xba91('0x4f')]['id']}})[_0xba91('0x33')](handleEntityNotFound(_0x5b5dfc,null))[_0xba91('0x33')](saveUpdates(_0x52c4d0['body'],null))['then'](respondWithResult(_0x5b5dfc,null))['catch'](handleError(_0x5b5dfc,null));};exports[_0xba91('0x34')]=function(_0x1577b0,_0x10bc6f){return db['SugarcrmAccount']['find']({'where':{'id':_0x1577b0[_0xba91('0x4f')]['id']}})[_0xba91('0x33')](handleEntityNotFound(_0x10bc6f,null))[_0xba91('0x33')](removeEntity(_0x10bc6f,null))[_0xba91('0x26')](handleError(_0x10bc6f,null));};exports[_0xba91('0x56')]=function(_0x4be87a,_0x1aaa20,_0x4ee666){var _0x14db0e={};var _0x30660f={};var _0x11842e;var _0xcf74ba;return db[_0xba91('0x4a')][_0xba91('0x57')]({'where':{'id':_0x4be87a[_0xba91('0x4f')]['id']}})['then'](handleEntityNotFound(_0x1aaa20,null))[_0xba91('0x33')](function(_0x4679a3){if(_0x4679a3){_0x11842e=_0x4679a3;_0x30660f[_0xba91('0x3d')]=_['keys'](db[_0xba91('0x58')][_0xba91('0x59')]);_0x30660f[_0xba91('0x3e')]=_[_0xba91('0x3f')](_0x4be87a[_0xba91('0x3e')]);_0x30660f[_0xba91('0x40')]=_['intersection'](_0x30660f[_0xba91('0x3d')],_0x30660f[_0xba91('0x3e')]);_0x14db0e['attributes']=_[_0xba91('0x41')](_0x30660f[_0xba91('0x3d')],qs['fields'](_0x4be87a[_0xba91('0x3e')][_0xba91('0x42')]));_0x14db0e[_0xba91('0x43')]=_0x14db0e[_0xba91('0x43')]['length']?_0x14db0e[_0xba91('0x43')]:_0x30660f[_0xba91('0x3d')];_0x14db0e[_0xba91('0x5a')]=qs[_0xba91('0x46')](_0x4be87a[_0xba91('0x3e')][_0xba91('0x46')]);_0x14db0e[_0xba91('0x47')]=qs[_0xba91('0x40')](_[_0xba91('0x5b')](_0x4be87a['query'],_0x30660f['filters']));if(_0x4be87a[_0xba91('0x3e')][_0xba91('0x48')]){_0x14db0e['where']=_['merge'](_0x14db0e[_0xba91('0x47')],{'$or':_[_0xba91('0x39')](_0x14db0e[_0xba91('0x43')],function(_0x3d449f){var _0x41bd4a={};_0x41bd4a[_0x3d449f]={'$like':'%'+_0x4be87a[_0xba91('0x3e')]['filter']+'%'};return _0x41bd4a;})});}_0x14db0e=_[_0xba91('0x49')]({},_0x14db0e,_0x4be87a[_0xba91('0x51')]);return _0x11842e[_0xba91('0x56')](_0x14db0e);}})[_0xba91('0x33')](function(_0x5a8e62){if(_0x5a8e62){_0xcf74ba=_0x5a8e62[_0xba91('0x44')];if(!_0x4be87a['query'][_0xba91('0x45')](_0xba91('0x5c'))){_0x14db0e[_0xba91('0x2c')]=qs[_0xba91('0x2c')](_0x4be87a[_0xba91('0x3e')][_0xba91('0x2c')]);_0x14db0e[_0xba91('0x2b')]=qs[_0xba91('0x2b')](_0x4be87a[_0xba91('0x3e')][_0xba91('0x2b')]);}return _0x11842e[_0xba91('0x56')](_0x14db0e);}})['then'](function(_0x1251a8){if(_0x1251a8){return _0x1251a8?{'count':_0xcf74ba,'rows':_0x1251a8}:null;}})[_0xba91('0x33')](respondWithResult(_0x1aaa20,null))[_0xba91('0x26')](handleError(_0x1aaa20,null));};exports[_0xba91('0x5d')]=function(_0x54d146,_0x29ed81,_0x1adf82){if(_0x54d146[_0xba91('0x54')]['id']){delete _0x54d146[_0xba91('0x54')]['id'];}return db['SugarcrmAccount'][_0xba91('0x57')]({'where':{'id':_0x54d146[_0xba91('0x4f')]['id']}})[_0xba91('0x33')](handleEntityNotFound(_0x29ed81,null))[_0xba91('0x33')](function(_0x54cf62){if(_0x54cf62){_0x54d146['body'][_0xba91('0x5e')]=_0x54cf62['id'];_0x54d146[_0xba91('0x54')][_0xba91('0x5f')]=integrations[_0xba91('0x60')](_0x54d146[_0xba91('0x54')][_0xba91('0x61')],_0x54d146[_0xba91('0x54')]['type']);_0x54d146[_0xba91('0x54')]['Descriptions']=integrations['getDescriptions'](_0x54d146[_0xba91('0x54')][_0xba91('0x61')],_0x54d146[_0xba91('0x54')]['type']);return db[_0xba91('0x58')][_0xba91('0x53')](_0x54d146[_0xba91('0x54')],{'include':[{'model':db[_0xba91('0x62')],'as':'Subjects'},{'model':db[_0xba91('0x62')],'as':_0xba91('0x63')}]});}return null;})[_0xba91('0x33')](respondWithResult(_0x29ed81,null))[_0xba91('0x26')](handleError(_0x29ed81,null));};exports[_0xba91('0x64')]=function(_0x1ca9b6,_0x26f43e,_0x3bf635){var _0x1ed36e='';var _0x446c4f=['id',_0xba91('0x36'),_0xba91('0x65'),_0xba91('0x66'),_0xba91('0x67'),_0xba91('0x68'),_0xba91('0x69'),'duration_minutes',_0xba91('0x6a'),'parent_type',_0xba91('0x6b'),'direction'];return db['SugarcrmAccount']['findOne']({'where':{'id':_0x1ca9b6[_0xba91('0x4f')]['id']},'attributes':['id','username',_0xba91('0x6c'),_0xba91('0x6d')]})[_0xba91('0x33')](handleEntityNotFound(_0x26f43e,null))[_0xba91('0x33')](function(_0x38211b){if(_0x38211b){_0x1ed36e=_0x38211b[_0xba91('0x6d')];var _0x5c4622=_0x1ed36e[_0xba91('0x6e')](-0x1);if(_0x5c4622==='/'){_0x1ed36e=_0x1ed36e['substring'](0x0,_0x1ed36e[_0xba91('0x6f')](_0x5c4622));}return rp({'method':_0xba91('0x70'),'uri':util[_0xba91('0x71')]('%s%s',_0x1ed36e,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0xba91('0x72'),'input_type':_0xba91('0x73'),'response_type':_0xba91('0x73'),'rest_data':JSON[_0xba91('0x22')]({'user_auth':{'user_name':_0x38211b[_0xba91('0x74')],'password':_0x38211b[_0xba91('0x6c')],'encryption':_0xba91('0x75')},'application':_0xba91('0x76')})}});}})['then'](function(_0x537e58){if(_0x537e58&&_0x537e58[_0xba91('0x36')]!=='Invalid\x20Login'&&_0x537e58[_0xba91('0x36')]!==_0xba91('0x77')){return rp({'method':_0xba91('0x70'),'uri':util[_0xba91('0x71')](_0xba91('0x78'),_0x1ed36e,_0xba91('0x79')),'json':!![],'form':{'method':_0xba91('0x7a'),'input_type':_0xba91('0x73'),'response_type':_0xba91('0x73'),'rest_data':JSON['stringify']({'session':_0x537e58['id'],'module_name':_0xba91('0x7b')})}})[_0xba91('0x33')](function(_0x4d7c7c){if(_0x4d7c7c){var _0x224d10=_[_0xba91('0x7c')](_0x4d7c7c['module_fields']);_['remove'](_0x224d10,function(_0x323049){return _0x446c4f['includes'](_0x323049[_0xba91('0x36')]);});return{'count':_0x224d10[_0xba91('0x44')],'rows':_['map'](_0x224d10,function(_0x5c2bea){return{'id':_0x5c2bea[_0xba91('0x36')],'name':_0x5c2bea[_0xba91('0x7d')],'custom':_['endsWith'](_0x5c2bea['name'],'_c')?!![]:![],'options':_0x5c2bea[_0xba91('0x51')]?_[_0xba91('0x39')](_[_0xba91('0x7c')](_0x5c2bea[_0xba91('0x51')]),function(_0x59a7b2){return{'name':_0x59a7b2['value'],'value':_0x59a7b2[_0xba91('0x36')]};}):[]};})};}})['then'](respondWithResult(_0x26f43e,null))[_0xba91('0x26')](function(_0x37911b){var _0x325968=_0x1ca9b6[_0xba91('0x3e')][_0xba91('0x7e')]?0x1f4:_0x37911b[_0xba91('0x7f')]||0x1f4;logger[_0xba91('0x23')](_0xba91('0x80'),'getFields',_0x325968,JSON[_0xba91('0x22')](_0x37911b));delete _0x37911b[_0xba91('0x36')];if(_0x325968===0x191){_0x325968=0x190;}_0x26f43e[_0xba91('0x28')](_0x325968)[_0xba91('0x37')](_0x1ca9b6[_0xba91('0x3e')][_0xba91('0x7e')]?{'message':_0xba91('0x81'),'statusCode':_0x37911b[_0xba91('0x7f')]}:_0x37911b);});}else{var _0x2e52ea=0x1f4;_0x26f43e[_0xba91('0x28')](_0x2e52ea)['send']({'message':_0xba91('0x81'),'statusCode':0x190});}});};