8008278c2dd2fd9ea95195302555bab2e94a8a75
[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 _0x2ac1=['parent_id','parent_name','direction','remoteUri','slice','substring','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','username','password','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','get_module_fields','Calls','module_fields','includes','values','value','statusCode','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','zip-dir','fast-json-patch','request-promise','moment','mustache','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','undefined','count','limit','set','save','update','then','sendStatus','error','stack','name','send','map','SugarcrmAccount','rawAttributes','fieldName','type','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','VIRTUAL','merge','options','findAll','rows','catch','includeAll','include','body','find','params','destroy','getConfigurations','findOne','SugarcrmConfiguration','pick','AccountId','Subjects','getSubjects','channel','getDescriptions','create','SugarcrmField','Descriptions','getFields','assigned_user_id','created_by','date_start','duration_minutes'];(function(_0x260771,_0x5148f){var _0x145d4d=function(_0x407707){while(--_0x407707){_0x260771['push'](_0x260771['shift']());}};_0x145d4d(++_0x5148f);}(_0x2ac1,0x93));var _0x12ac=function(_0x164b6e,_0x724efa){_0x164b6e=_0x164b6e-0x0;var _0xe24c78=_0x2ac1[_0x164b6e];return _0xe24c78;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x12ac('0x0'));var jsonpatch=require(_0x12ac('0x1'));var rp=require(_0x12ac('0x2'));var moment=require(_0x12ac('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x12ac('0x4'));var util=require('util');var path=require('path');var sox=require(_0x12ac('0x5'));var csv=require(_0x12ac('0x6'));var ejs=require(_0x12ac('0x7'));var fs=require('fs');var fs_extra=require(_0x12ac('0x8'));var _=require(_0x12ac('0x9'));var squel=require('squel');var crypto=require(_0x12ac('0xa'));var jsforce=require(_0x12ac('0xb'));var deskjs=require(_0x12ac('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x12ac('0xd'));var Redis=require(_0x12ac('0xe'));var authService=require(_0x12ac('0xf'));var qs=require(_0x12ac('0x10'));var as=require(_0x12ac('0x11'));var hardwareService=require(_0x12ac('0x12'));var logger=require('../../config/logger')(_0x12ac('0x13'));var utils=require('../../config/utils');var config=require(_0x12ac('0x14'));var licenseUtil=require(_0x12ac('0x15'));var db=require(_0x12ac('0x16'))['db'];var integrations=require(_0x12ac('0x17'));function respondWithStatusCode(_0x38ea10,_0x5c6ef3){_0x5c6ef3=_0x5c6ef3||0xcc;return function(_0x2c0538){if(_0x2c0538){return _0x38ea10['sendStatus'](_0x5c6ef3);}return _0x38ea10[_0x12ac('0x18')](_0x5c6ef3)[_0x12ac('0x19')]();};}function respondWithResult(_0x4f3267,_0x12801d){_0x12801d=_0x12801d||0xc8;return function(_0x7d639e){if(_0x7d639e){return _0x4f3267[_0x12ac('0x18')](_0x12801d)[_0x12ac('0x1a')](_0x7d639e);}};}function respondWithFilteredResult(_0x47001c,_0x51d18e){return function(_0x39daff){if(_0x39daff){var _0x21da46=typeof _0x51d18e[_0x12ac('0x1b')]===_0x12ac('0x1c')&&typeof _0x51d18e['limit']===_0x12ac('0x1c');var _0x1ae385=_0x39daff[_0x12ac('0x1d')];var _0x2f05c7=_0x21da46?0x0:_0x51d18e['offset'];var _0x4efcd9=_0x21da46?_0x39daff[_0x12ac('0x1d')]:_0x51d18e['offset']+_0x51d18e[_0x12ac('0x1e')];var _0x3e4eeb;if(_0x4efcd9>=_0x1ae385){_0x4efcd9=_0x1ae385;_0x3e4eeb=0xc8;}else{_0x3e4eeb=0xce;}_0x47001c[_0x12ac('0x18')](_0x3e4eeb);return _0x47001c[_0x12ac('0x1f')]('Content-Range',_0x2f05c7+'-'+_0x4efcd9+'/'+_0x1ae385)[_0x12ac('0x1a')](_0x39daff);}return null;};}function patchUpdates(_0x4eb445){return function(_0x3b0ce9){try{jsonpatch['apply'](_0x3b0ce9,_0x4eb445,!![]);}catch(_0x2961fc){return BPromise['reject'](_0x2961fc);}return _0x3b0ce9[_0x12ac('0x20')]();};}function saveUpdates(_0x7c3221,_0x2ac854){return function(_0x29c767){if(_0x29c767){return _0x29c767[_0x12ac('0x21')](_0x7c3221)[_0x12ac('0x22')](function(_0x1ca8fe){return _0x1ca8fe;});}return null;};}function removeEntity(_0x1f2ce3,_0x3846c0){return function(_0x38d287){if(_0x38d287){return _0x38d287['destroy']()[_0x12ac('0x22')](function(){_0x1f2ce3[_0x12ac('0x18')](0xcc)[_0x12ac('0x19')]();});}};}function handleEntityNotFound(_0x48e1a6,_0x17f4a0){return function(_0x167f9f){if(!_0x167f9f){_0x48e1a6[_0x12ac('0x23')](0x194);}return _0x167f9f;};}function handleError(_0x1defde,_0x6b4698){_0x6b4698=_0x6b4698||0x1f4;return function(_0x440b91){logger[_0x12ac('0x24')](_0x440b91[_0x12ac('0x25')]);if(_0x440b91[_0x12ac('0x26')]){delete _0x440b91[_0x12ac('0x26')];}_0x1defde[_0x12ac('0x18')](_0x6b4698)[_0x12ac('0x27')](_0x440b91);};}exports['index']=function(_0x361729,_0x1207ea){var _0x5b4cf1={},_0x52357f={},_0x3672b7={'count':0x0,'rows':[]};var _0x4720e3=_[_0x12ac('0x28')](db[_0x12ac('0x29')][_0x12ac('0x2a')],function(_0x4a9aca){return{'name':_0x4a9aca[_0x12ac('0x2b')],'type':_0x4a9aca[_0x12ac('0x2c')][_0x12ac('0x2d')]};});_0x52357f['model']=_[_0x12ac('0x28')](_0x4720e3,_0x12ac('0x26'));_0x52357f[_0x12ac('0x2e')]=_[_0x12ac('0x2f')](_0x361729['query']);_0x52357f['filters']=_[_0x12ac('0x30')](_0x52357f[_0x12ac('0x31')],_0x52357f[_0x12ac('0x2e')]);_0x5b4cf1[_0x12ac('0x32')]=_[_0x12ac('0x30')](_0x52357f[_0x12ac('0x31')],qs[_0x12ac('0x33')](_0x361729['query'][_0x12ac('0x33')]));_0x5b4cf1[_0x12ac('0x32')]=_0x5b4cf1[_0x12ac('0x32')][_0x12ac('0x34')]?_0x5b4cf1[_0x12ac('0x32')]:_0x52357f[_0x12ac('0x31')];if(!_0x361729[_0x12ac('0x2e')][_0x12ac('0x35')](_0x12ac('0x36'))){_0x5b4cf1['limit']=qs[_0x12ac('0x1e')](_0x361729[_0x12ac('0x2e')][_0x12ac('0x1e')]);_0x5b4cf1[_0x12ac('0x1b')]=qs['offset'](_0x361729[_0x12ac('0x2e')][_0x12ac('0x1b')]);}_0x5b4cf1[_0x12ac('0x37')]=qs['sort'](_0x361729[_0x12ac('0x2e')][_0x12ac('0x38')]);_0x5b4cf1[_0x12ac('0x39')]=qs[_0x12ac('0x3a')](_['pick'](_0x361729[_0x12ac('0x2e')],_0x52357f['filters']),_0x4720e3);if(_0x361729[_0x12ac('0x2e')][_0x12ac('0x3b')]){_0x5b4cf1[_0x12ac('0x39')]=_['merge'](_0x5b4cf1[_0x12ac('0x39')],{'$or':_[_0x12ac('0x28')](_0x4720e3,function(_0x50057d){if(_0x50057d[_0x12ac('0x2c')]!==_0x12ac('0x3c')){var _0x5dc376={};_0x5dc376[_0x50057d[_0x12ac('0x26')]]={'$like':'%'+_0x361729[_0x12ac('0x2e')][_0x12ac('0x3b')]+'%'};return _0x5dc376;}})});}_0x5b4cf1=_[_0x12ac('0x3d')]({},_0x5b4cf1,_0x361729[_0x12ac('0x3e')]);var _0x40a77f={'where':_0x5b4cf1['where']};return db[_0x12ac('0x29')][_0x12ac('0x1d')](_0x40a77f)[_0x12ac('0x22')](function(_0x21745d){_0x3672b7['count']=_0x21745d;if(_0x361729[_0x12ac('0x2e')]['includeAll']){_0x5b4cf1['include']=[{'all':!![]}];}return db[_0x12ac('0x29')][_0x12ac('0x3f')](_0x5b4cf1);})[_0x12ac('0x22')](function(_0x4c634b){_0x3672b7[_0x12ac('0x40')]=_0x4c634b;return _0x3672b7;})[_0x12ac('0x22')](respondWithFilteredResult(_0x1207ea,_0x5b4cf1))[_0x12ac('0x41')](handleError(_0x1207ea,null));};exports['show']=function(_0x4405b6,_0x4c9ef8){var _0xa8b257={'raw':![],'where':{'id':_0x4405b6['params']['id']}},_0x212bdc={};_0x212bdc[_0x12ac('0x31')]=_[_0x12ac('0x2f')](db[_0x12ac('0x29')][_0x12ac('0x2a')]);_0x212bdc[_0x12ac('0x2e')]=_[_0x12ac('0x2f')](_0x4405b6[_0x12ac('0x2e')]);_0x212bdc[_0x12ac('0x3a')]=_[_0x12ac('0x30')](_0x212bdc['model'],_0x212bdc[_0x12ac('0x2e')]);_0xa8b257[_0x12ac('0x32')]=_['intersection'](_0x212bdc[_0x12ac('0x31')],qs[_0x12ac('0x33')](_0x4405b6[_0x12ac('0x2e')][_0x12ac('0x33')]));_0xa8b257[_0x12ac('0x32')]=_0xa8b257[_0x12ac('0x32')][_0x12ac('0x34')]?_0xa8b257[_0x12ac('0x32')]:_0x212bdc[_0x12ac('0x31')];if(_0x4405b6[_0x12ac('0x2e')][_0x12ac('0x42')]){_0xa8b257[_0x12ac('0x43')]=[{'all':!![]}];}_0xa8b257=_[_0x12ac('0x3d')]({},_0xa8b257,_0x4405b6[_0x12ac('0x3e')]);return db[_0x12ac('0x29')]['find'](_0xa8b257)[_0x12ac('0x22')](handleEntityNotFound(_0x4c9ef8,null))[_0x12ac('0x22')](respondWithResult(_0x4c9ef8,null))[_0x12ac('0x41')](handleError(_0x4c9ef8,null));};exports['create']=function(_0xe99cfe,_0x18832a){return db[_0x12ac('0x29')]['create'](_0xe99cfe[_0x12ac('0x44')],{})[_0x12ac('0x22')](respondWithResult(_0x18832a,0xc9))[_0x12ac('0x41')](handleError(_0x18832a,null));};exports[_0x12ac('0x21')]=function(_0x4f7924,_0x3d53ef){if(_0x4f7924[_0x12ac('0x44')]['id']){delete _0x4f7924[_0x12ac('0x44')]['id'];}return db[_0x12ac('0x29')][_0x12ac('0x45')]({'where':{'id':_0x4f7924[_0x12ac('0x46')]['id']}})['then'](handleEntityNotFound(_0x3d53ef,null))['then'](saveUpdates(_0x4f7924['body'],null))[_0x12ac('0x22')](respondWithResult(_0x3d53ef,null))[_0x12ac('0x41')](handleError(_0x3d53ef,null));};exports[_0x12ac('0x47')]=function(_0x27d34d,_0x4f058f){return db[_0x12ac('0x29')]['find']({'where':{'id':_0x27d34d['params']['id']}})[_0x12ac('0x22')](handleEntityNotFound(_0x4f058f,null))['then'](removeEntity(_0x4f058f,null))[_0x12ac('0x41')](handleError(_0x4f058f,null));};exports[_0x12ac('0x48')]=function(_0x52c804,_0x5bfac8,_0x1a849e){var _0x3e9545={};var _0x1d6562={};var _0x349017;var _0x5b4f1e;return db[_0x12ac('0x29')][_0x12ac('0x49')]({'where':{'id':_0x52c804['params']['id']}})[_0x12ac('0x22')](handleEntityNotFound(_0x5bfac8,null))[_0x12ac('0x22')](function(_0x56c383){if(_0x56c383){_0x349017=_0x56c383;_0x1d6562[_0x12ac('0x31')]=_['keys'](db[_0x12ac('0x4a')][_0x12ac('0x2a')]);_0x1d6562[_0x12ac('0x2e')]=_['keys'](_0x52c804[_0x12ac('0x2e')]);_0x1d6562[_0x12ac('0x3a')]=_[_0x12ac('0x30')](_0x1d6562[_0x12ac('0x31')],_0x1d6562[_0x12ac('0x2e')]);_0x3e9545[_0x12ac('0x32')]=_['intersection'](_0x1d6562['model'],qs['fields'](_0x52c804[_0x12ac('0x2e')][_0x12ac('0x33')]));_0x3e9545[_0x12ac('0x32')]=_0x3e9545[_0x12ac('0x32')][_0x12ac('0x34')]?_0x3e9545['attributes']:_0x1d6562['model'];_0x3e9545[_0x12ac('0x37')]=qs['sort'](_0x52c804[_0x12ac('0x2e')][_0x12ac('0x38')]);_0x3e9545[_0x12ac('0x39')]=qs[_0x12ac('0x3a')](_[_0x12ac('0x4b')](_0x52c804[_0x12ac('0x2e')],_0x1d6562[_0x12ac('0x3a')]));if(_0x52c804[_0x12ac('0x2e')]['filter']){_0x3e9545[_0x12ac('0x39')]=_[_0x12ac('0x3d')](_0x3e9545[_0x12ac('0x39')],{'$or':_[_0x12ac('0x28')](_0x3e9545[_0x12ac('0x32')],function(_0x5bf193){var _0x1ef8ab={};_0x1ef8ab[_0x5bf193]={'$like':'%'+_0x52c804[_0x12ac('0x2e')][_0x12ac('0x3b')]+'%'};return _0x1ef8ab;})});}_0x3e9545=_[_0x12ac('0x3d')]({},_0x3e9545,_0x52c804[_0x12ac('0x3e')]);return _0x349017[_0x12ac('0x48')](_0x3e9545);}})[_0x12ac('0x22')](function(_0x59975b){if(_0x59975b){_0x5b4f1e=_0x59975b[_0x12ac('0x34')];if(!_0x52c804[_0x12ac('0x2e')]['hasOwnProperty'](_0x12ac('0x36'))){_0x3e9545[_0x12ac('0x1e')]=qs['limit'](_0x52c804[_0x12ac('0x2e')][_0x12ac('0x1e')]);_0x3e9545[_0x12ac('0x1b')]=qs[_0x12ac('0x1b')](_0x52c804[_0x12ac('0x2e')][_0x12ac('0x1b')]);}return _0x349017[_0x12ac('0x48')](_0x3e9545);}})['then'](function(_0x5ccec6){if(_0x5ccec6){return _0x5ccec6?{'count':_0x5b4f1e,'rows':_0x5ccec6}:null;}})[_0x12ac('0x22')](respondWithResult(_0x5bfac8,null))['catch'](handleError(_0x5bfac8,null));};exports['addConfiguration']=function(_0x5ceff8,_0xc4f45c,_0x5ea099){if(_0x5ceff8[_0x12ac('0x44')]['id']){delete _0x5ceff8['body']['id'];}return db[_0x12ac('0x29')][_0x12ac('0x49')]({'where':{'id':_0x5ceff8[_0x12ac('0x46')]['id']}})[_0x12ac('0x22')](handleEntityNotFound(_0xc4f45c,null))[_0x12ac('0x22')](function(_0x1e4b97){if(_0x1e4b97){_0x5ceff8[_0x12ac('0x44')][_0x12ac('0x4c')]=_0x1e4b97['id'];_0x5ceff8[_0x12ac('0x44')][_0x12ac('0x4d')]=integrations[_0x12ac('0x4e')](_0x5ceff8[_0x12ac('0x44')][_0x12ac('0x4f')],_0x5ceff8[_0x12ac('0x44')]['type']);_0x5ceff8[_0x12ac('0x44')]['Descriptions']=integrations[_0x12ac('0x50')](_0x5ceff8[_0x12ac('0x44')][_0x12ac('0x4f')],_0x5ceff8[_0x12ac('0x44')][_0x12ac('0x2c')]);return db[_0x12ac('0x4a')][_0x12ac('0x51')](_0x5ceff8[_0x12ac('0x44')],{'include':[{'model':db[_0x12ac('0x52')],'as':_0x12ac('0x4d')},{'model':db[_0x12ac('0x52')],'as':_0x12ac('0x53')}]});}return null;})['then'](respondWithResult(_0xc4f45c,null))[_0x12ac('0x41')](handleError(_0xc4f45c,null));};exports[_0x12ac('0x54')]=function(_0xf59cc1,_0x312aa9,_0x10cdb0){var _0x22c3f6='';var _0x118651=['id',_0x12ac('0x26'),_0x12ac('0x55'),_0x12ac('0x56'),'description',_0x12ac('0x57'),'duration_hours',_0x12ac('0x58'),_0x12ac('0x59'),'parent_type',_0x12ac('0x5a'),_0x12ac('0x5b')];return db[_0x12ac('0x29')][_0x12ac('0x49')]({'where':{'id':_0xf59cc1[_0x12ac('0x46')]['id']},'attributes':['id','username','password',_0x12ac('0x5c')]})['then'](handleEntityNotFound(_0x312aa9,null))[_0x12ac('0x22')](function(_0x56262c){if(_0x56262c){_0x22c3f6=_0x56262c[_0x12ac('0x5c')];var _0x4493c1=_0x22c3f6[_0x12ac('0x5d')](-0x1);if(_0x4493c1==='/'){_0x22c3f6=_0x22c3f6[_0x12ac('0x5e')](0x0,_0x22c3f6[_0x12ac('0x5f')](_0x4493c1));}return rp({'method':_0x12ac('0x60'),'uri':util[_0x12ac('0x61')](_0x12ac('0x62'),_0x22c3f6,_0x12ac('0x63')),'json':!![],'form':{'method':_0x12ac('0x64'),'input_type':_0x12ac('0x65'),'response_type':_0x12ac('0x65'),'rest_data':JSON[_0x12ac('0x66')]({'user_auth':{'user_name':_0x56262c[_0x12ac('0x67')],'password':_0x56262c[_0x12ac('0x68')],'encryption':'PLAIN'},'application':_0x12ac('0x69')})}});}})['then'](function(_0x5b7390){if(_0x5b7390&&_0x5b7390[_0x12ac('0x26')]!==_0x12ac('0x6a')&&_0x5b7390[_0x12ac('0x26')]!==_0x12ac('0x6b')){return rp({'method':_0x12ac('0x60'),'uri':util[_0x12ac('0x61')](_0x12ac('0x62'),_0x22c3f6,_0x12ac('0x63')),'json':!![],'form':{'method':_0x12ac('0x6c'),'input_type':_0x12ac('0x65'),'response_type':'JSON','rest_data':JSON[_0x12ac('0x66')]({'session':_0x5b7390['id'],'module_name':_0x12ac('0x6d')})}})[_0x12ac('0x22')](function(_0x1dc2b0){if(_0x1dc2b0){var _0x1da9e0=_['values'](_0x1dc2b0[_0x12ac('0x6e')]);_['remove'](_0x1da9e0,function(_0x5ec733){return _0x118651[_0x12ac('0x6f')](_0x5ec733[_0x12ac('0x26')]);});return{'count':_0x1da9e0[_0x12ac('0x34')],'rows':_['map'](_0x1da9e0,function(_0x3e264e){return{'id':_0x3e264e[_0x12ac('0x26')],'name':_0x3e264e['label'],'custom':_['endsWith'](_0x3e264e['name'],'_c')?!![]:![],'options':_0x3e264e[_0x12ac('0x3e')]?_['map'](_[_0x12ac('0x70')](_0x3e264e['options']),function(_0x50fce2){return{'name':_0x50fce2[_0x12ac('0x71')],'value':_0x50fce2['name']};}):[]};})};}})['then'](respondWithResult(_0x312aa9,null))[_0x12ac('0x41')](function(_0xb19a37){var _0x1f0e41=_0xf59cc1[_0x12ac('0x2e')]['test']?0x1f4:_0xb19a37[_0x12ac('0x72')]||0x1f4;logger['error'](_0x12ac('0x73'),'getFields',_0x1f0e41,JSON['stringify'](_0xb19a37));delete _0xb19a37['name'];if(_0x1f0e41===0x191){_0x1f0e41=0x190;}_0x312aa9['status'](_0x1f0e41)[_0x12ac('0x27')](_0xf59cc1[_0x12ac('0x2e')][_0x12ac('0x74')]?{'message':_0x12ac('0x75'),'statusCode':_0xb19a37['statusCode']}:_0xb19a37);});}else{var _0x5886c4=0x1f4;_0x312aa9['status'](_0x5886c4)['send']({'message':_0x12ac('0x75'),'statusCode':0x190});}});};