ed43ec9b63b995f01679152a9133a1fd0f51a1be
[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 _0x768b=['zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise','http','request','then','info','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','SugarcrmAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','json','count','offset','limit','set','apply','reject','update','destroy','name','send','index','map','SugarcrmAccount','rawAttributes','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','VIRTUAL','merge','include','findAll','rows','show','includeAll','options','find','create','body','params','findOne','getConfigurations','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','SugarcrmField','assigned_user_id','created_by','description','date_start','duration_hours','parent_id','parent_type','parent_name','direction','username','password','remoteUri','slice','substring','lastIndexOf','POST','format','/service/v4_1/rest.php','login','JSON','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','%s%s','Calls','values','label','value','test','statusCode','getFields','Wrong\x20credentials','eml-format','rimraf'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x768b,0x7e));var _0xb768=function(_0x25bf9d,_0x154132){_0x25bf9d=_0x25bf9d-0x0;var _0x12666f=_0x768b[_0x25bf9d];return _0x12666f;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xb768('0x0'));var rimraf=require(_0xb768('0x1'));var zipdir=require(_0xb768('0x2'));var jsonpatch=require(_0xb768('0x3'));var rp=require(_0xb768('0x4'));var moment=require(_0xb768('0x5'));var BPromise=require(_0xb768('0x6'));var Mustache=require(_0xb768('0x7'));var util=require('util');var path=require(_0xb768('0x8'));var sox=require(_0xb768('0x9'));var csv=require(_0xb768('0xa'));var ejs=require(_0xb768('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0xb768('0xc'));var crypto=require(_0xb768('0xd'));var jsforce=require(_0xb768('0xe'));var deskjs=require(_0xb768('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xb768('0x10'));var Redis=require(_0xb768('0x11'));var authService=require(_0xb768('0x12'));var qs=require(_0xb768('0x13'));var as=require(_0xb768('0x14'));var hardwareService=require(_0xb768('0x15'));var logger=require(_0xb768('0x16'))(_0xb768('0x17'));var utils=require(_0xb768('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xb768('0x19'));var db=require(_0xb768('0x1a'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0xb768('0x1b'));var client=jayson['client'][_0xb768('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x2147eb,_0x276925,_0x1b8da4,_0x17a2ed){return new BPromise(function(_0x4f3deb,_0x361cd0){var _0x26b8ce=_0x17a2ed||client;return _0x26b8ce[_0xb768('0x1d')](_0x2147eb,_0x1b8da4)[_0xb768('0x1e')](function(_0x27ab35){logger[_0xb768('0x1f')](_0xb768('0x20'),_0x276925,_0xb768('0x21'));logger['debug'](_0xb768('0x22'),_0x276925,_0xb768('0x21'),JSON[_0xb768('0x23')](_0x27ab35));if(_0x27ab35[_0xb768('0x24')]){if(_0x27ab35[_0xb768('0x24')]['code']===0x1f4){logger[_0xb768('0x24')]('SugarcrmAccount,\x20%s,\x20%s',_0x276925,_0x27ab35[_0xb768('0x24')][_0xb768('0x25')]);return _0x361cd0(_0x27ab35['error']['message']);}logger['error'](_0xb768('0x20'),_0x276925,_0x27ab35[_0xb768('0x24')]['message']);return _0x4f3deb(_0x27ab35['error']['message']);}else{logger[_0xb768('0x1f')]('SugarcrmAccount,\x20%s,\x20%s',_0x276925,'request\x20sent');_0x4f3deb(_0x27ab35[_0xb768('0x26')]['message']);}})[_0xb768('0x27')](function(_0x426d8e){logger[_0xb768('0x24')](_0xb768('0x20'),_0x276925,_0x426d8e);_0x361cd0(_0x426d8e);});});}function respondWithStatusCode(_0x18ed47,_0x8f755c){_0x8f755c=_0x8f755c||0xcc;return function(_0x272d57){if(_0x272d57){return _0x18ed47[_0xb768('0x28')](_0x8f755c);}return _0x18ed47['status'](_0x8f755c)['end']();};}function respondWithResult(_0x4a7263,_0xc09c0b){_0xc09c0b=_0xc09c0b||0xc8;return function(_0x1dc3b4){if(_0x1dc3b4){return _0x4a7263[_0xb768('0x29')](_0xc09c0b)[_0xb768('0x2a')](_0x1dc3b4);}};}function respondWithFilteredResult(_0x3007eb,_0x4cb999){return function(_0x1bfd5f){if(_0x1bfd5f){var _0x4777cd=_0x1bfd5f[_0xb768('0x2b')],_0x5e14ab=_0x4cb999[_0xb768('0x2c')],_0x4bda5a=_0x4cb999['offset']+_0x4cb999[_0xb768('0x2d')],_0x33748a;if(_0x4bda5a>=_0x4777cd){_0x4bda5a=_0x4777cd;_0x33748a=0xc8;}else{_0x33748a=0xce;}_0x3007eb[_0xb768('0x29')](_0x33748a);return _0x3007eb[_0xb768('0x2e')]('Content-Range',_0x5e14ab+'-'+_0x4bda5a+'/'+_0x4777cd)[_0xb768('0x2a')](_0x1bfd5f);}return null;};}function patchUpdates(_0x38b356){return function(_0xec4c5a){try{jsonpatch[_0xb768('0x2f')](_0xec4c5a,_0x38b356,!![]);}catch(_0x25fa11){return BPromise[_0xb768('0x30')](_0x25fa11);}return _0xec4c5a['save']();};}function saveUpdates(_0x78c1d9,_0x18fa5a){return function(_0x3f49f6){if(_0x3f49f6){return _0x3f49f6[_0xb768('0x31')](_0x78c1d9)['then'](function(_0x46632d){return _0x46632d;});}return null;};}function removeEntity(_0x2123b0,_0x1e93b7){return function(_0x1d3c35){if(_0x1d3c35){return _0x1d3c35[_0xb768('0x32')]()[_0xb768('0x1e')](function(){_0x2123b0['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x50ea29,_0x419a7f){return function(_0x7f6b53){if(!_0x7f6b53){_0x50ea29[_0xb768('0x28')](0x194);}return _0x7f6b53;};}function handleError(_0x6f0120,_0x9fcd1b){_0x9fcd1b=_0x9fcd1b||0x1f4;return function(_0x5925dd){logger[_0xb768('0x24')](_0x5925dd['stack']);if(_0x5925dd['name']){delete _0x5925dd[_0xb768('0x33')];}_0x6f0120[_0xb768('0x29')](_0x9fcd1b)[_0xb768('0x34')](_0x5925dd);};}exports[_0xb768('0x35')]=function(_0x5aa914,_0x331908){var _0x3c78e6={},_0x50e042={},_0x1d1391={'count':0x0,'rows':[]};var _0x2cb562=_[_0xb768('0x36')](db[_0xb768('0x37')][_0xb768('0x38')],function(_0x331bb2){return{'name':_0x331bb2['fieldName'],'type':_0x331bb2[_0xb768('0x39')][_0xb768('0x3a')]};});_0x50e042[_0xb768('0x3b')]=_[_0xb768('0x36')](_0x2cb562,_0xb768('0x33'));_0x50e042[_0xb768('0x3c')]=_[_0xb768('0x3d')](_0x5aa914[_0xb768('0x3c')]);_0x50e042[_0xb768('0x3e')]=_['intersection'](_0x50e042[_0xb768('0x3b')],_0x50e042[_0xb768('0x3c')]);_0x3c78e6[_0xb768('0x3f')]=_[_0xb768('0x40')](_0x50e042[_0xb768('0x3b')],qs[_0xb768('0x41')](_0x5aa914[_0xb768('0x3c')][_0xb768('0x41')]));_0x3c78e6[_0xb768('0x3f')]=_0x3c78e6['attributes'][_0xb768('0x42')]?_0x3c78e6['attributes']:_0x50e042['model'];if(!_0x5aa914['query'][_0xb768('0x43')](_0xb768('0x44'))){_0x3c78e6[_0xb768('0x2d')]=qs[_0xb768('0x2d')](_0x5aa914[_0xb768('0x3c')][_0xb768('0x2d')]);_0x3c78e6[_0xb768('0x2c')]=qs['offset'](_0x5aa914[_0xb768('0x3c')][_0xb768('0x2c')]);}_0x3c78e6[_0xb768('0x45')]=qs[_0xb768('0x46')](_0x5aa914[_0xb768('0x3c')][_0xb768('0x46')]);_0x3c78e6['where']=qs[_0xb768('0x3e')](_[_0xb768('0x47')](_0x5aa914[_0xb768('0x3c')],_0x50e042[_0xb768('0x3e')]),_0x2cb562);if(_0x5aa914[_0xb768('0x3c')][_0xb768('0x48')]){_0x3c78e6[_0xb768('0x49')]=_['merge'](_0x3c78e6[_0xb768('0x49')],{'$or':_[_0xb768('0x36')](_0x2cb562,function(_0x26a0d7){if(_0x26a0d7[_0xb768('0x39')]!==_0xb768('0x4a')){var _0x2732a6={};_0x2732a6[_0x26a0d7[_0xb768('0x33')]]={'$like':'%'+_0x5aa914[_0xb768('0x3c')]['filter']+'%'};return _0x2732a6;}})});}_0x3c78e6=_[_0xb768('0x4b')]({},_0x3c78e6,_0x5aa914['options']);var _0x39ad93={'where':_0x3c78e6[_0xb768('0x49')]};return db[_0xb768('0x37')][_0xb768('0x2b')](_0x39ad93)[_0xb768('0x1e')](function(_0x3ef18a){_0x1d1391[_0xb768('0x2b')]=_0x3ef18a;if(_0x5aa914[_0xb768('0x3c')]['includeAll']){_0x3c78e6[_0xb768('0x4c')]=[{'all':!![]}];}return db[_0xb768('0x37')][_0xb768('0x4d')](_0x3c78e6);})[_0xb768('0x1e')](function(_0x530a6a){_0x1d1391[_0xb768('0x4e')]=_0x530a6a;return _0x1d1391;})[_0xb768('0x1e')](respondWithFilteredResult(_0x331908,_0x3c78e6))[_0xb768('0x27')](handleError(_0x331908,null));};exports[_0xb768('0x4f')]=function(_0x1c3ae9,_0x3a59e7){var _0x11080e={'raw':![],'where':{'id':_0x1c3ae9['params']['id']}},_0x1ec0a6={};_0x1ec0a6[_0xb768('0x3b')]=_[_0xb768('0x3d')](db[_0xb768('0x37')]['rawAttributes']);_0x1ec0a6[_0xb768('0x3c')]=_[_0xb768('0x3d')](_0x1c3ae9['query']);_0x1ec0a6['filters']=_[_0xb768('0x40')](_0x1ec0a6[_0xb768('0x3b')],_0x1ec0a6[_0xb768('0x3c')]);_0x11080e['attributes']=_[_0xb768('0x40')](_0x1ec0a6[_0xb768('0x3b')],qs[_0xb768('0x41')](_0x1c3ae9[_0xb768('0x3c')][_0xb768('0x41')]));_0x11080e[_0xb768('0x3f')]=_0x11080e['attributes'][_0xb768('0x42')]?_0x11080e[_0xb768('0x3f')]:_0x1ec0a6['model'];if(_0x1c3ae9[_0xb768('0x3c')][_0xb768('0x50')]){_0x11080e[_0xb768('0x4c')]=[{'all':!![]}];}_0x11080e=_[_0xb768('0x4b')]({},_0x11080e,_0x1c3ae9[_0xb768('0x51')]);return db[_0xb768('0x37')][_0xb768('0x52')](_0x11080e)[_0xb768('0x1e')](handleEntityNotFound(_0x3a59e7,null))[_0xb768('0x1e')](respondWithResult(_0x3a59e7,null))[_0xb768('0x27')](handleError(_0x3a59e7,null));};exports['create']=function(_0x2e7b80,_0x247d5e){return db[_0xb768('0x37')][_0xb768('0x53')](_0x2e7b80[_0xb768('0x54')],{})[_0xb768('0x1e')](respondWithResult(_0x247d5e,0xc9))[_0xb768('0x27')](handleError(_0x247d5e,null));};exports[_0xb768('0x31')]=function(_0x92745d,_0x529fbd){if(_0x92745d['body']['id']){delete _0x92745d[_0xb768('0x54')]['id'];}return db[_0xb768('0x37')]['find']({'where':{'id':_0x92745d['params']['id']}})['then'](handleEntityNotFound(_0x529fbd,null))[_0xb768('0x1e')](saveUpdates(_0x92745d[_0xb768('0x54')],null))[_0xb768('0x1e')](respondWithResult(_0x529fbd,null))[_0xb768('0x27')](handleError(_0x529fbd,null));};exports[_0xb768('0x32')]=function(_0xffc3ac,_0x4dfb65){return db[_0xb768('0x37')][_0xb768('0x52')]({'where':{'id':_0xffc3ac[_0xb768('0x55')]['id']}})[_0xb768('0x1e')](handleEntityNotFound(_0x4dfb65,null))[_0xb768('0x1e')](removeEntity(_0x4dfb65,null))['catch'](handleError(_0x4dfb65,null));};exports['getConfigurations']=function(_0xbbddb3,_0x565229,_0x528245){var _0x6f9671={};var _0x19710e={};var _0x10d844;var _0x297cd9;return db[_0xb768('0x37')][_0xb768('0x56')]({'where':{'id':_0xbbddb3['params']['id']}})['then'](handleEntityNotFound(_0x565229,null))[_0xb768('0x1e')](function(_0x5ab842){if(_0x5ab842){_0x10d844=_0x5ab842;_0x19710e['model']=_[_0xb768('0x3d')](db['SugarcrmConfiguration'][_0xb768('0x38')]);_0x19710e[_0xb768('0x3c')]=_['keys'](_0xbbddb3[_0xb768('0x3c')]);_0x19710e[_0xb768('0x3e')]=_[_0xb768('0x40')](_0x19710e[_0xb768('0x3b')],_0x19710e[_0xb768('0x3c')]);_0x6f9671[_0xb768('0x3f')]=_[_0xb768('0x40')](_0x19710e[_0xb768('0x3b')],qs[_0xb768('0x41')](_0xbbddb3[_0xb768('0x3c')]['fields']));_0x6f9671[_0xb768('0x3f')]=_0x6f9671[_0xb768('0x3f')]['length']?_0x6f9671[_0xb768('0x3f')]:_0x19710e[_0xb768('0x3b')];_0x6f9671[_0xb768('0x45')]=qs[_0xb768('0x46')](_0xbbddb3[_0xb768('0x3c')][_0xb768('0x46')]);_0x6f9671['where']=qs[_0xb768('0x3e')](_[_0xb768('0x47')](_0xbbddb3[_0xb768('0x3c')],_0x19710e[_0xb768('0x3e')]));if(_0xbbddb3[_0xb768('0x3c')][_0xb768('0x48')]){_0x6f9671[_0xb768('0x49')]=_[_0xb768('0x4b')](_0x6f9671[_0xb768('0x49')],{'$or':_['map'](_0x6f9671[_0xb768('0x3f')],function(_0x1cb537){var _0x4484d1={};_0x4484d1[_0x1cb537]={'$like':'%'+_0xbbddb3['query'][_0xb768('0x48')]+'%'};return _0x4484d1;})});}_0x6f9671=_['merge']({},_0x6f9671,_0xbbddb3['options']);return _0x10d844[_0xb768('0x57')](_0x6f9671);}})['then'](function(_0x2a38f8){if(_0x2a38f8){_0x297cd9=_0x2a38f8[_0xb768('0x42')];if(!_0xbbddb3[_0xb768('0x3c')]['hasOwnProperty']('nolimit')){_0x6f9671[_0xb768('0x2d')]=qs['limit'](_0xbbddb3[_0xb768('0x3c')]['limit']);_0x6f9671[_0xb768('0x2c')]=qs[_0xb768('0x2c')](_0xbbddb3[_0xb768('0x3c')][_0xb768('0x2c')]);}return _0x10d844[_0xb768('0x57')](_0x6f9671);}})[_0xb768('0x1e')](function(_0x120d1e){if(_0x120d1e){return _0x120d1e?{'count':_0x297cd9,'rows':_0x120d1e}:null;}})[_0xb768('0x1e')](respondWithResult(_0x565229,null))['catch'](handleError(_0x565229,null));};exports[_0xb768('0x58')]=function(_0x5f2293,_0x5cc63f,_0x1046a8){if(_0x5f2293[_0xb768('0x54')]['id']){delete _0x5f2293[_0xb768('0x54')]['id'];}return db[_0xb768('0x37')]['findOne']({'where':{'id':_0x5f2293[_0xb768('0x55')]['id']}})[_0xb768('0x1e')](handleEntityNotFound(_0x5cc63f,null))['then'](function(_0x42a155){if(_0x42a155){_0x5f2293[_0xb768('0x54')][_0xb768('0x59')]=_0x42a155['id'];_0x5f2293[_0xb768('0x54')][_0xb768('0x5a')]=integrations[_0xb768('0x5b')](_0x5f2293[_0xb768('0x54')][_0xb768('0x5c')],_0x5f2293['body'][_0xb768('0x39')]);_0x5f2293[_0xb768('0x54')][_0xb768('0x5d')]=integrations[_0xb768('0x5e')](_0x5f2293[_0xb768('0x54')][_0xb768('0x5c')],_0x5f2293[_0xb768('0x54')][_0xb768('0x39')]);return db['SugarcrmConfiguration'][_0xb768('0x53')](_0x5f2293[_0xb768('0x54')],{'include':[{'model':db[_0xb768('0x5f')],'as':_0xb768('0x5a')},{'model':db[_0xb768('0x5f')],'as':_0xb768('0x5d')}]});}return null;})['then'](respondWithResult(_0x5cc63f,null))[_0xb768('0x27')](handleError(_0x5cc63f,null));};exports['getFields']=function(_0x20da00,_0x584df0,_0x15d2f4){var _0x1755b7='';var _0x12b036=['id',_0xb768('0x33'),_0xb768('0x60'),_0xb768('0x61'),_0xb768('0x62'),_0xb768('0x63'),_0xb768('0x64'),'duration_minutes',_0xb768('0x65'),_0xb768('0x66'),_0xb768('0x67'),_0xb768('0x68')];return db[_0xb768('0x37')]['findOne']({'where':{'id':_0x20da00[_0xb768('0x55')]['id']},'attributes':['id',_0xb768('0x69'),_0xb768('0x6a'),'remoteUri']})[_0xb768('0x1e')](handleEntityNotFound(_0x584df0,null))[_0xb768('0x1e')](function(_0x120486){if(_0x120486){_0x1755b7=_0x120486[_0xb768('0x6b')];var _0x10a150=_0x1755b7[_0xb768('0x6c')](-0x1);if(_0x10a150==='/'){_0x1755b7=_0x1755b7[_0xb768('0x6d')](0x0,_0x1755b7[_0xb768('0x6e')](_0x10a150));}return rp({'method':_0xb768('0x6f'),'uri':util[_0xb768('0x70')]('%s%s',_0x1755b7,_0xb768('0x71')),'json':!![],'form':{'method':_0xb768('0x72'),'input_type':'JSON','response_type':_0xb768('0x73'),'rest_data':JSON[_0xb768('0x23')]({'user_auth':{'user_name':_0x120486['username'],'password':_0x120486[_0xb768('0x6a')],'encryption':_0xb768('0x74')},'application':_0xb768('0x75')})}});}})['then'](function(_0x4c3179){if(_0x4c3179&&_0x4c3179['name']!==_0xb768('0x76')&&_0x4c3179[_0xb768('0x33')]!=='Password\x20Expired'){return rp({'method':_0xb768('0x6f'),'uri':util['format'](_0xb768('0x77'),_0x1755b7,'/service/v4_1/rest.php'),'json':!![],'form':{'method':'get_module_fields','input_type':'JSON','response_type':'JSON','rest_data':JSON[_0xb768('0x23')]({'session':_0x4c3179['id'],'module_name':_0xb768('0x78')})}})[_0xb768('0x1e')](function(_0x5ccbb8){if(_0x5ccbb8){var _0x5a4e28=_[_0xb768('0x79')](_0x5ccbb8['module_fields']);_['remove'](_0x5a4e28,function(_0x3f5e13){return _0x12b036['includes'](_0x3f5e13[_0xb768('0x33')]);});return{'count':_0x5a4e28['length'],'rows':_[_0xb768('0x36')](_0x5a4e28,function(_0x369b42){return{'id':_0x369b42[_0xb768('0x33')],'name':_0x369b42[_0xb768('0x7a')],'custom':_['endsWith'](_0x369b42[_0xb768('0x33')],'_c')?!![]:![],'options':_0x369b42[_0xb768('0x51')]?_[_0xb768('0x36')](_[_0xb768('0x79')](_0x369b42[_0xb768('0x51')]),function(_0x472b16){return{'name':_0x472b16[_0xb768('0x7b')],'value':_0x472b16[_0xb768('0x33')]};}):[]};})};}})[_0xb768('0x1e')](respondWithResult(_0x584df0,null))[_0xb768('0x27')](function(_0x58e23c){var _0x2cdcd7=_0x20da00[_0xb768('0x3c')][_0xb768('0x7c')]?0x1f4:_0x58e23c[_0xb768('0x7d')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0xb768('0x7e'),_0x2cdcd7,JSON['stringify'](_0x58e23c));delete _0x58e23c[_0xb768('0x33')];if(_0x2cdcd7===0x191){_0x2cdcd7=0x190;}_0x584df0[_0xb768('0x29')](_0x2cdcd7)[_0xb768('0x34')](_0x20da00[_0xb768('0x3c')][_0xb768('0x7c')]?{'message':_0xb768('0x7f'),'statusCode':_0x58e23c[_0xb768('0x7d')]}:_0x58e23c);});}else{var _0x4e44ee=0x1f4;_0x584df0[_0xb768('0x29')](_0x4e44ee)[_0xb768('0x34')]({'message':_0xb768('0x7f'),'statusCode':0x190});}});};