Built motion from commit efa66e19.|2.6.22
[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 _0x753c=['rimraf','zip-dir','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','end','sendStatus','stack','name','send','index','map','SugarcrmAccount','rawAttributes','fieldName','type','model','query','keys','filters','attributes','fields','length','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','intersection','catch','create','body','find','getConfigurations','hasOwnProperty','addConfiguration','findOne','AccountId','getSubjects','channel','Descriptions','getDescriptions','SugarcrmConfiguration','SugarcrmField','Subjects','getFields','assigned_user_id','created_by','description','date_start','duration_hours','duration_minutes','parent_id','username','password','remoteUri','slice','substring','POST','/service/v4_1/rest.php','login','JSON','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','%s%s','stringify','Calls','includes','label','values','value','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x753c,0x79));var _0xc753=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x753c[_0x19e35c];return _0x3e1fe8;};'use strict';var emlformat=require(_0xc753('0x0'));var rimraf=require(_0xc753('0x1'));var zipdir=require(_0xc753('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xc753('0x3'));var BPromise=require(_0xc753('0x4'));var Mustache=require(_0xc753('0x5'));var util=require('util');var path=require(_0xc753('0x6'));var sox=require(_0xc753('0x7'));var csv=require(_0xc753('0x8'));var ejs=require(_0xc753('0x9'));var fs=require('fs');var fs_extra=require(_0xc753('0xa'));var _=require('lodash');var squel=require(_0xc753('0xb'));var crypto=require(_0xc753('0xc'));var jsforce=require(_0xc753('0xd'));var deskjs=require(_0xc753('0xe'));var toCsv=require(_0xc753('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xc753('0xf'));var qs=require(_0xc753('0x10'));var as=require(_0xc753('0x11'));var hardwareService=require(_0xc753('0x12'));var logger=require(_0xc753('0x13'))(_0xc753('0x14'));var utils=require(_0xc753('0x15'));var config=require(_0xc753('0x16'));var licenseUtil=require(_0xc753('0x17'));var db=require('../../mysqldb')['db'];var integrations=require(_0xc753('0x18'));function respondWithStatusCode(_0x39ac72,_0x3433d1){_0x3433d1=_0x3433d1||0xcc;return function(_0x5e63fb){if(_0x5e63fb){return _0x39ac72['sendStatus'](_0x3433d1);}return _0x39ac72[_0xc753('0x19')](_0x3433d1)['end']();};}function respondWithResult(_0x5bc4a0,_0x63ed32){_0x63ed32=_0x63ed32||0xc8;return function(_0x6a4886){if(_0x6a4886){return _0x5bc4a0[_0xc753('0x19')](_0x63ed32)[_0xc753('0x1a')](_0x6a4886);}};}function respondWithFilteredResult(_0x59c628,_0x46f922){return function(_0x3fbfd6){if(_0x3fbfd6){var _0x39ee4a=typeof _0x46f922['offset']===_0xc753('0x1b')&&typeof _0x46f922[_0xc753('0x1c')]===_0xc753('0x1b');var _0x4630b1=_0x3fbfd6[_0xc753('0x1d')];var _0x2a73bb=_0x39ee4a?0x0:_0x46f922[_0xc753('0x1e')];var _0x41e1cc=_0x39ee4a?_0x3fbfd6[_0xc753('0x1d')]:_0x46f922[_0xc753('0x1e')]+_0x46f922[_0xc753('0x1c')];var _0xdd73ec;if(_0x41e1cc>=_0x4630b1){_0x41e1cc=_0x4630b1;_0xdd73ec=0xc8;}else{_0xdd73ec=0xce;}_0x59c628[_0xc753('0x19')](_0xdd73ec);return _0x59c628[_0xc753('0x1f')](_0xc753('0x20'),_0x2a73bb+'-'+_0x41e1cc+'/'+_0x4630b1)[_0xc753('0x1a')](_0x3fbfd6);}return null;};}function patchUpdates(_0x567c78){return function(_0x1eda9d){try{jsonpatch[_0xc753('0x21')](_0x1eda9d,_0x567c78,!![]);}catch(_0x6c9be7){return BPromise[_0xc753('0x22')](_0x6c9be7);}return _0x1eda9d[_0xc753('0x23')]();};}function saveUpdates(_0x58eaca,_0x68bb91){return function(_0x18b944){if(_0x18b944){return _0x18b944[_0xc753('0x24')](_0x58eaca)[_0xc753('0x25')](function(_0x176802){return _0x176802;});}return null;};}function removeEntity(_0x2f15e0,_0x12038f){return function(_0x4bfc4d){if(_0x4bfc4d){return _0x4bfc4d[_0xc753('0x26')]()[_0xc753('0x25')](function(){_0x2f15e0[_0xc753('0x19')](0xcc)[_0xc753('0x27')]();});}};}function handleEntityNotFound(_0x3d3046,_0x198c89){return function(_0x1077cf){if(!_0x1077cf){_0x3d3046[_0xc753('0x28')](0x194);}return _0x1077cf;};}function handleError(_0x85026d,_0x53f644){_0x53f644=_0x53f644||0x1f4;return function(_0x512db1){logger['error'](_0x512db1[_0xc753('0x29')]);if(_0x512db1[_0xc753('0x2a')]){delete _0x512db1[_0xc753('0x2a')];}_0x85026d['status'](_0x53f644)[_0xc753('0x2b')](_0x512db1);};}exports[_0xc753('0x2c')]=function(_0xaf3391,_0x2a3f42){var _0x529111={},_0x56005e={},_0x447b56={'count':0x0,'rows':[]};var _0x234b02=_[_0xc753('0x2d')](db[_0xc753('0x2e')][_0xc753('0x2f')],function(_0xee9d7){return{'name':_0xee9d7[_0xc753('0x30')],'type':_0xee9d7[_0xc753('0x31')]['key']};});_0x56005e[_0xc753('0x32')]=_[_0xc753('0x2d')](_0x234b02,_0xc753('0x2a'));_0x56005e[_0xc753('0x33')]=_[_0xc753('0x34')](_0xaf3391[_0xc753('0x33')]);_0x56005e[_0xc753('0x35')]=_['intersection'](_0x56005e['model'],_0x56005e[_0xc753('0x33')]);_0x529111[_0xc753('0x36')]=_['intersection'](_0x56005e[_0xc753('0x32')],qs[_0xc753('0x37')](_0xaf3391['query'][_0xc753('0x37')]));_0x529111[_0xc753('0x36')]=_0x529111[_0xc753('0x36')][_0xc753('0x38')]?_0x529111[_0xc753('0x36')]:_0x56005e[_0xc753('0x32')];if(!_0xaf3391[_0xc753('0x33')]['hasOwnProperty'](_0xc753('0x39'))){_0x529111[_0xc753('0x1c')]=qs['limit'](_0xaf3391[_0xc753('0x33')]['limit']);_0x529111['offset']=qs['offset'](_0xaf3391[_0xc753('0x33')]['offset']);}_0x529111[_0xc753('0x3a')]=qs['sort'](_0xaf3391[_0xc753('0x33')][_0xc753('0x3b')]);_0x529111[_0xc753('0x3c')]=qs[_0xc753('0x35')](_[_0xc753('0x3d')](_0xaf3391[_0xc753('0x33')],_0x56005e[_0xc753('0x35')]),_0x234b02);if(_0xaf3391[_0xc753('0x33')][_0xc753('0x3e')]){_0x529111[_0xc753('0x3c')]=_['merge'](_0x529111['where'],{'$or':_[_0xc753('0x2d')](_0x234b02,function(_0x5a89bb){if(_0x5a89bb['type']!==_0xc753('0x3f')){var _0x347fdc={};_0x347fdc[_0x5a89bb[_0xc753('0x2a')]]={'$like':'%'+_0xaf3391[_0xc753('0x33')][_0xc753('0x3e')]+'%'};return _0x347fdc;}})});}_0x529111=_[_0xc753('0x40')]({},_0x529111,_0xaf3391[_0xc753('0x41')]);var _0x2438e7={'where':_0x529111['where']};return db[_0xc753('0x2e')]['count'](_0x2438e7)[_0xc753('0x25')](function(_0x209834){_0x447b56[_0xc753('0x1d')]=_0x209834;if(_0xaf3391[_0xc753('0x33')][_0xc753('0x42')]){_0x529111[_0xc753('0x43')]=[{'all':!![]}];}return db[_0xc753('0x2e')][_0xc753('0x44')](_0x529111);})[_0xc753('0x25')](function(_0x53cca8){_0x447b56[_0xc753('0x45')]=_0x53cca8;return _0x447b56;})[_0xc753('0x25')](respondWithFilteredResult(_0x2a3f42,_0x529111))['catch'](handleError(_0x2a3f42,null));};exports[_0xc753('0x46')]=function(_0x54c033,_0x26b4aa){var _0xcc76f6={'raw':![],'where':{'id':_0x54c033[_0xc753('0x47')]['id']}},_0x27b09a={};_0x27b09a[_0xc753('0x32')]=_['keys'](db[_0xc753('0x2e')][_0xc753('0x2f')]);_0x27b09a[_0xc753('0x33')]=_[_0xc753('0x34')](_0x54c033[_0xc753('0x33')]);_0x27b09a[_0xc753('0x35')]=_[_0xc753('0x48')](_0x27b09a['model'],_0x27b09a[_0xc753('0x33')]);_0xcc76f6[_0xc753('0x36')]=_[_0xc753('0x48')](_0x27b09a[_0xc753('0x32')],qs['fields'](_0x54c033[_0xc753('0x33')][_0xc753('0x37')]));_0xcc76f6['attributes']=_0xcc76f6[_0xc753('0x36')][_0xc753('0x38')]?_0xcc76f6[_0xc753('0x36')]:_0x27b09a['model'];if(_0x54c033['query']['includeAll']){_0xcc76f6[_0xc753('0x43')]=[{'all':!![]}];}_0xcc76f6=_['merge']({},_0xcc76f6,_0x54c033[_0xc753('0x41')]);return db['SugarcrmAccount']['find'](_0xcc76f6)[_0xc753('0x25')](handleEntityNotFound(_0x26b4aa,null))[_0xc753('0x25')](respondWithResult(_0x26b4aa,null))[_0xc753('0x49')](handleError(_0x26b4aa,null));};exports[_0xc753('0x4a')]=function(_0x16268c,_0x2d8ba5){return db[_0xc753('0x2e')][_0xc753('0x4a')](_0x16268c[_0xc753('0x4b')],{})[_0xc753('0x25')](respondWithResult(_0x2d8ba5,0xc9))[_0xc753('0x49')](handleError(_0x2d8ba5,null));};exports[_0xc753('0x24')]=function(_0x2d4350,_0x96b781){if(_0x2d4350[_0xc753('0x4b')]['id']){delete _0x2d4350[_0xc753('0x4b')]['id'];}return db[_0xc753('0x2e')][_0xc753('0x4c')]({'where':{'id':_0x2d4350[_0xc753('0x47')]['id']}})[_0xc753('0x25')](handleEntityNotFound(_0x96b781,null))[_0xc753('0x25')](saveUpdates(_0x2d4350[_0xc753('0x4b')],null))['then'](respondWithResult(_0x96b781,null))[_0xc753('0x49')](handleError(_0x96b781,null));};exports[_0xc753('0x26')]=function(_0x256dff,_0x3c563a){return db['SugarcrmAccount'][_0xc753('0x4c')]({'where':{'id':_0x256dff['params']['id']}})['then'](handleEntityNotFound(_0x3c563a,null))[_0xc753('0x25')](removeEntity(_0x3c563a,null))['catch'](handleError(_0x3c563a,null));};exports[_0xc753('0x4d')]=function(_0x40a7d6,_0x551836,_0x2673ce){var _0x2e8489={};var _0x5b7225={};var _0x485b94;var _0x32c847;return db[_0xc753('0x2e')]['findOne']({'where':{'id':_0x40a7d6['params']['id']}})['then'](handleEntityNotFound(_0x551836,null))['then'](function(_0x593d0d){if(_0x593d0d){_0x485b94=_0x593d0d;_0x5b7225['model']=_[_0xc753('0x34')](db['SugarcrmConfiguration'][_0xc753('0x2f')]);_0x5b7225[_0xc753('0x33')]=_[_0xc753('0x34')](_0x40a7d6[_0xc753('0x33')]);_0x5b7225['filters']=_['intersection'](_0x5b7225['model'],_0x5b7225[_0xc753('0x33')]);_0x2e8489[_0xc753('0x36')]=_[_0xc753('0x48')](_0x5b7225[_0xc753('0x32')],qs['fields'](_0x40a7d6[_0xc753('0x33')][_0xc753('0x37')]));_0x2e8489['attributes']=_0x2e8489[_0xc753('0x36')][_0xc753('0x38')]?_0x2e8489[_0xc753('0x36')]:_0x5b7225[_0xc753('0x32')];_0x2e8489[_0xc753('0x3a')]=qs['sort'](_0x40a7d6['query'][_0xc753('0x3b')]);_0x2e8489[_0xc753('0x3c')]=qs['filters'](_[_0xc753('0x3d')](_0x40a7d6[_0xc753('0x33')],_0x5b7225[_0xc753('0x35')]));if(_0x40a7d6[_0xc753('0x33')][_0xc753('0x3e')]){_0x2e8489[_0xc753('0x3c')]=_[_0xc753('0x40')](_0x2e8489[_0xc753('0x3c')],{'$or':_['map'](_0x2e8489[_0xc753('0x36')],function(_0x5ee5da){var _0x22a5ab={};_0x22a5ab[_0x5ee5da]={'$like':'%'+_0x40a7d6['query'][_0xc753('0x3e')]+'%'};return _0x22a5ab;})});}_0x2e8489=_['merge']({},_0x2e8489,_0x40a7d6[_0xc753('0x41')]);return _0x485b94['getConfigurations'](_0x2e8489);}})[_0xc753('0x25')](function(_0x1886b1){if(_0x1886b1){_0x32c847=_0x1886b1[_0xc753('0x38')];if(!_0x40a7d6[_0xc753('0x33')][_0xc753('0x4e')](_0xc753('0x39'))){_0x2e8489['limit']=qs[_0xc753('0x1c')](_0x40a7d6[_0xc753('0x33')][_0xc753('0x1c')]);_0x2e8489[_0xc753('0x1e')]=qs[_0xc753('0x1e')](_0x40a7d6[_0xc753('0x33')][_0xc753('0x1e')]);}return _0x485b94[_0xc753('0x4d')](_0x2e8489);}})['then'](function(_0x112f17){if(_0x112f17){return _0x112f17?{'count':_0x32c847,'rows':_0x112f17}:null;}})[_0xc753('0x25')](respondWithResult(_0x551836,null))[_0xc753('0x49')](handleError(_0x551836,null));};exports[_0xc753('0x4f')]=function(_0x581137,_0x48e1ed,_0x52d304){if(_0x581137[_0xc753('0x4b')]['id']){delete _0x581137[_0xc753('0x4b')]['id'];}return db[_0xc753('0x2e')][_0xc753('0x50')]({'where':{'id':_0x581137[_0xc753('0x47')]['id']}})[_0xc753('0x25')](handleEntityNotFound(_0x48e1ed,null))[_0xc753('0x25')](function(_0x274a4a){if(_0x274a4a){_0x581137[_0xc753('0x4b')][_0xc753('0x51')]=_0x274a4a['id'];_0x581137[_0xc753('0x4b')]['Subjects']=integrations[_0xc753('0x52')](_0x581137['body'][_0xc753('0x53')],_0x581137[_0xc753('0x4b')]['type']);_0x581137[_0xc753('0x4b')][_0xc753('0x54')]=integrations[_0xc753('0x55')](_0x581137[_0xc753('0x4b')][_0xc753('0x53')],_0x581137['body'][_0xc753('0x31')]);return db[_0xc753('0x56')][_0xc753('0x4a')](_0x581137[_0xc753('0x4b')],{'include':[{'model':db[_0xc753('0x57')],'as':_0xc753('0x58')},{'model':db[_0xc753('0x57')],'as':_0xc753('0x54')}]});}return null;})['then'](respondWithResult(_0x48e1ed,null))[_0xc753('0x49')](handleError(_0x48e1ed,null));};exports[_0xc753('0x59')]=function(_0x51d7c9,_0x12af8e,_0x47efb3){var _0x3afc64='';var _0x22c732=['id','name',_0xc753('0x5a'),_0xc753('0x5b'),_0xc753('0x5c'),_0xc753('0x5d'),_0xc753('0x5e'),_0xc753('0x5f'),_0xc753('0x60'),'parent_type','parent_name','direction'];return db[_0xc753('0x2e')][_0xc753('0x50')]({'where':{'id':_0x51d7c9[_0xc753('0x47')]['id']},'attributes':['id',_0xc753('0x61'),_0xc753('0x62'),_0xc753('0x63')]})[_0xc753('0x25')](handleEntityNotFound(_0x12af8e,null))[_0xc753('0x25')](function(_0x4ec8fe){if(_0x4ec8fe){_0x3afc64=_0x4ec8fe[_0xc753('0x63')];var _0x11b807=_0x3afc64[_0xc753('0x64')](-0x1);if(_0x11b807==='/'){_0x3afc64=_0x3afc64[_0xc753('0x65')](0x0,_0x3afc64['lastIndexOf'](_0x11b807));}return rp({'method':_0xc753('0x66'),'uri':util['format']('%s%s',_0x3afc64,_0xc753('0x67')),'json':!![],'form':{'method':_0xc753('0x68'),'input_type':_0xc753('0x69'),'response_type':'JSON','rest_data':JSON['stringify']({'user_auth':{'user_name':_0x4ec8fe[_0xc753('0x61')],'password':_0x4ec8fe[_0xc753('0x62')],'encryption':_0xc753('0x6a')},'application':_0xc753('0x6b')})}});}})['then'](function(_0x101f11){if(_0x101f11&&_0x101f11[_0xc753('0x2a')]!==_0xc753('0x6c')&&_0x101f11[_0xc753('0x2a')]!==_0xc753('0x6d')){return rp({'method':_0xc753('0x66'),'uri':util['format'](_0xc753('0x6e'),_0x3afc64,'/service/v4_1/rest.php'),'json':!![],'form':{'method':'get_module_fields','input_type':_0xc753('0x69'),'response_type':_0xc753('0x69'),'rest_data':JSON[_0xc753('0x6f')]({'session':_0x101f11['id'],'module_name':_0xc753('0x70')})}})[_0xc753('0x25')](function(_0x38c66b){if(_0x38c66b){var _0x2d4e5a=_['values'](_0x38c66b['module_fields']);_['remove'](_0x2d4e5a,function(_0x2fa8ac){return _0x22c732[_0xc753('0x71')](_0x2fa8ac['name']);});return{'count':_0x2d4e5a['length'],'rows':_[_0xc753('0x2d')](_0x2d4e5a,function(_0x213961){return{'id':_0x213961[_0xc753('0x2a')],'name':_0x213961[_0xc753('0x72')],'custom':_['endsWith'](_0x213961[_0xc753('0x2a')],'_c')?!![]:![],'options':_0x213961[_0xc753('0x41')]?_[_0xc753('0x2d')](_[_0xc753('0x73')](_0x213961['options']),function(_0x169215){return{'name':_0x169215[_0xc753('0x74')],'value':_0x169215['name']};}):[]};})};}})[_0xc753('0x25')](respondWithResult(_0x12af8e,null))[_0xc753('0x49')](function(_0xf74287){var _0x253fc4=_0x51d7c9[_0xc753('0x33')][_0xc753('0x75')]?0x1f4:_0xf74287[_0xc753('0x76')]||0x1f4;logger[_0xc753('0x77')](_0xc753('0x78'),_0xc753('0x59'),_0x253fc4,JSON[_0xc753('0x6f')](_0xf74287));delete _0xf74287[_0xc753('0x2a')];if(_0x253fc4===0x191){_0x253fc4=0x190;}_0x12af8e['status'](_0x253fc4)[_0xc753('0x2b')](_0x51d7c9[_0xc753('0x33')][_0xc753('0x75')]?{'message':'Wrong\x20credentials','statusCode':_0xf74287['statusCode']}:_0xf74287);});}else{var _0x199aa8=0x1f4;_0x12af8e[_0xc753('0x19')](_0x199aa8)[_0xc753('0x2b')]({'message':_0xc753('0x79'),'statusCode':0x190});}});};