Built motion from commit a134ab58.|2.6.29
[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 _0x8eee=['model','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','rawAttributes','find','create','body','params','destroy','getConfigurations','findOne','SugarcrmConfiguration','merge','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','SugarcrmField','assigned_user_id','created_by','description','date_start','duration_hours','duration_minutes','parent_id','parent_type','parent_name','username','remoteUri','slice','substring','lastIndexOf','format','JSON','stringify','password','PLAIN','Invalid\x20Login','Password\x20Expired','POST','%s%s','/service/v4_1/rest.php','get_module_fields','Calls','module_fields','includes','label','endsWith','values','value','test','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','statusCode','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','../../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','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','end','error','name','send','index','map','SugarcrmAccount','fieldName','type','key'];(function(_0x25a756,_0x23752b){var _0x440fae=function(_0x3f6091){while(--_0x3f6091){_0x25a756['push'](_0x25a756['shift']());}};_0x440fae(++_0x23752b);}(_0x8eee,0x1c8));var _0xe8ee=function(_0x4bfd95,_0x1c3b3b){_0x4bfd95=_0x4bfd95-0x0;var _0x1484cd=_0x8eee[_0x4bfd95];return _0x1484cd;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xe8ee('0x0'));var jsonpatch=require(_0xe8ee('0x1'));var rp=require(_0xe8ee('0x2'));var moment=require(_0xe8ee('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xe8ee('0x4'));var path=require(_0xe8ee('0x5'));var sox=require(_0xe8ee('0x6'));var csv=require('to-csv');var ejs=require(_0xe8ee('0x7'));var fs=require('fs');var fs_extra=require(_0xe8ee('0x8'));var _=require(_0xe8ee('0x9'));var squel=require(_0xe8ee('0xa'));var crypto=require('crypto');var jsforce=require(_0xe8ee('0xb'));var deskjs=require(_0xe8ee('0xc'));var toCsv=require(_0xe8ee('0xd'));var querystring=require(_0xe8ee('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xe8ee('0xf'));var qs=require(_0xe8ee('0x10'));var as=require(_0xe8ee('0x11'));var hardwareService=require(_0xe8ee('0x12'));var logger=require(_0xe8ee('0x13'))(_0xe8ee('0x14'));var utils=require(_0xe8ee('0x15'));var config=require(_0xe8ee('0x16'));var licenseUtil=require(_0xe8ee('0x17'));var db=require('../../mysqldb')['db'];var integrations=require(_0xe8ee('0x18'));function respondWithStatusCode(_0x126428,_0x28d347){_0x28d347=_0x28d347||0xcc;return function(_0x516c7e){if(_0x516c7e){return _0x126428[_0xe8ee('0x19')](_0x28d347);}return _0x126428[_0xe8ee('0x1a')](_0x28d347)['end']();};}function respondWithResult(_0x2919ee,_0x414047){_0x414047=_0x414047||0xc8;return function(_0x3b331e){if(_0x3b331e){return _0x2919ee[_0xe8ee('0x1a')](_0x414047)[_0xe8ee('0x1b')](_0x3b331e);}};}function respondWithFilteredResult(_0x3d61f5,_0x6aa54f){return function(_0xafd8e0){if(_0xafd8e0){var _0x20badd=typeof _0x6aa54f[_0xe8ee('0x1c')]===_0xe8ee('0x1d')&&typeof _0x6aa54f[_0xe8ee('0x1e')]===_0xe8ee('0x1d');var _0x476157=_0xafd8e0[_0xe8ee('0x1f')];var _0x510917=_0x20badd?0x0:_0x6aa54f[_0xe8ee('0x1c')];var _0x28dff8=_0x20badd?_0xafd8e0['count']:_0x6aa54f[_0xe8ee('0x1c')]+_0x6aa54f[_0xe8ee('0x1e')];var _0x5b09a0;if(_0x28dff8>=_0x476157){_0x28dff8=_0x476157;_0x5b09a0=0xc8;}else{_0x5b09a0=0xce;}_0x3d61f5[_0xe8ee('0x1a')](_0x5b09a0);return _0x3d61f5[_0xe8ee('0x20')](_0xe8ee('0x21'),_0x510917+'-'+_0x28dff8+'/'+_0x476157)['json'](_0xafd8e0);}return null;};}function patchUpdates(_0x2016e0){return function(_0x15d684){try{jsonpatch[_0xe8ee('0x22')](_0x15d684,_0x2016e0,!![]);}catch(_0x2fd354){return BPromise[_0xe8ee('0x23')](_0x2fd354);}return _0x15d684['save']();};}function saveUpdates(_0x260cd0,_0x3c5c59){return function(_0x12f519){if(_0x12f519){return _0x12f519[_0xe8ee('0x24')](_0x260cd0)[_0xe8ee('0x25')](function(_0xb16003){return _0xb16003;});}return null;};}function removeEntity(_0x3fd3c6,_0xbf0b64){return function(_0x1ad5f7){if(_0x1ad5f7){return _0x1ad5f7['destroy']()[_0xe8ee('0x25')](function(){_0x3fd3c6[_0xe8ee('0x1a')](0xcc)[_0xe8ee('0x26')]();});}};}function handleEntityNotFound(_0x5d5ed3,_0x1bd918){return function(_0x34fa4b){if(!_0x34fa4b){_0x5d5ed3['sendStatus'](0x194);}return _0x34fa4b;};}function handleError(_0x417f98,_0x790944){_0x790944=_0x790944||0x1f4;return function(_0x4dbe3f){logger[_0xe8ee('0x27')](_0x4dbe3f['stack']);if(_0x4dbe3f[_0xe8ee('0x28')]){delete _0x4dbe3f['name'];}_0x417f98[_0xe8ee('0x1a')](_0x790944)[_0xe8ee('0x29')](_0x4dbe3f);};}exports[_0xe8ee('0x2a')]=function(_0x55f3dc,_0x483235){var _0x3c8ea0={},_0x5a0b1b={},_0x4c08a6={'count':0x0,'rows':[]};var _0x536365=_[_0xe8ee('0x2b')](db[_0xe8ee('0x2c')]['rawAttributes'],function(_0x4054f8){return{'name':_0x4054f8[_0xe8ee('0x2d')],'type':_0x4054f8[_0xe8ee('0x2e')][_0xe8ee('0x2f')]};});_0x5a0b1b[_0xe8ee('0x30')]=_[_0xe8ee('0x2b')](_0x536365,_0xe8ee('0x28'));_0x5a0b1b[_0xe8ee('0x31')]=_[_0xe8ee('0x32')](_0x55f3dc[_0xe8ee('0x31')]);_0x5a0b1b['filters']=_['intersection'](_0x5a0b1b[_0xe8ee('0x30')],_0x5a0b1b[_0xe8ee('0x31')]);_0x3c8ea0[_0xe8ee('0x33')]=_[_0xe8ee('0x34')](_0x5a0b1b[_0xe8ee('0x30')],qs[_0xe8ee('0x35')](_0x55f3dc['query']['fields']));_0x3c8ea0[_0xe8ee('0x33')]=_0x3c8ea0[_0xe8ee('0x33')][_0xe8ee('0x36')]?_0x3c8ea0[_0xe8ee('0x33')]:_0x5a0b1b[_0xe8ee('0x30')];if(!_0x55f3dc['query'][_0xe8ee('0x37')](_0xe8ee('0x38'))){_0x3c8ea0['limit']=qs[_0xe8ee('0x1e')](_0x55f3dc['query'][_0xe8ee('0x1e')]);_0x3c8ea0[_0xe8ee('0x1c')]=qs[_0xe8ee('0x1c')](_0x55f3dc[_0xe8ee('0x31')]['offset']);}_0x3c8ea0[_0xe8ee('0x39')]=qs[_0xe8ee('0x3a')](_0x55f3dc[_0xe8ee('0x31')]['sort']);_0x3c8ea0[_0xe8ee('0x3b')]=qs[_0xe8ee('0x3c')](_[_0xe8ee('0x3d')](_0x55f3dc[_0xe8ee('0x31')],_0x5a0b1b[_0xe8ee('0x3c')]),_0x536365);if(_0x55f3dc[_0xe8ee('0x31')][_0xe8ee('0x3e')]){_0x3c8ea0['where']=_['merge'](_0x3c8ea0['where'],{'$or':_['map'](_0x536365,function(_0x28f149){if(_0x28f149[_0xe8ee('0x2e')]!==_0xe8ee('0x3f')){var _0x4483e9={};_0x4483e9[_0x28f149[_0xe8ee('0x28')]]={'$like':'%'+_0x55f3dc[_0xe8ee('0x31')][_0xe8ee('0x3e')]+'%'};return _0x4483e9;}})});}_0x3c8ea0=_['merge']({},_0x3c8ea0,_0x55f3dc[_0xe8ee('0x40')]);var _0x10aa65={'where':_0x3c8ea0[_0xe8ee('0x3b')]};return db[_0xe8ee('0x2c')][_0xe8ee('0x1f')](_0x10aa65)[_0xe8ee('0x25')](function(_0xeebbc2){_0x4c08a6[_0xe8ee('0x1f')]=_0xeebbc2;if(_0x55f3dc[_0xe8ee('0x31')][_0xe8ee('0x41')]){_0x3c8ea0[_0xe8ee('0x42')]=[{'all':!![]}];}return db['SugarcrmAccount'][_0xe8ee('0x43')](_0x3c8ea0);})[_0xe8ee('0x25')](function(_0x5ae7e2){_0x4c08a6[_0xe8ee('0x44')]=_0x5ae7e2;return _0x4c08a6;})['then'](respondWithFilteredResult(_0x483235,_0x3c8ea0))[_0xe8ee('0x45')](handleError(_0x483235,null));};exports[_0xe8ee('0x46')]=function(_0x5db3bb,_0x3b10f4){var _0xafff3c={'raw':![],'where':{'id':_0x5db3bb['params']['id']}},_0x458004={};_0x458004['model']=_[_0xe8ee('0x32')](db[_0xe8ee('0x2c')][_0xe8ee('0x47')]);_0x458004[_0xe8ee('0x31')]=_[_0xe8ee('0x32')](_0x5db3bb[_0xe8ee('0x31')]);_0x458004['filters']=_[_0xe8ee('0x34')](_0x458004[_0xe8ee('0x30')],_0x458004[_0xe8ee('0x31')]);_0xafff3c['attributes']=_['intersection'](_0x458004['model'],qs[_0xe8ee('0x35')](_0x5db3bb['query'][_0xe8ee('0x35')]));_0xafff3c[_0xe8ee('0x33')]=_0xafff3c['attributes'][_0xe8ee('0x36')]?_0xafff3c[_0xe8ee('0x33')]:_0x458004[_0xe8ee('0x30')];if(_0x5db3bb[_0xe8ee('0x31')][_0xe8ee('0x41')]){_0xafff3c[_0xe8ee('0x42')]=[{'all':!![]}];}_0xafff3c=_['merge']({},_0xafff3c,_0x5db3bb[_0xe8ee('0x40')]);return db[_0xe8ee('0x2c')][_0xe8ee('0x48')](_0xafff3c)[_0xe8ee('0x25')](handleEntityNotFound(_0x3b10f4,null))[_0xe8ee('0x25')](respondWithResult(_0x3b10f4,null))['catch'](handleError(_0x3b10f4,null));};exports['create']=function(_0x31f93d,_0x3cb120){return db[_0xe8ee('0x2c')][_0xe8ee('0x49')](_0x31f93d[_0xe8ee('0x4a')],{})[_0xe8ee('0x25')](respondWithResult(_0x3cb120,0xc9))['catch'](handleError(_0x3cb120,null));};exports[_0xe8ee('0x24')]=function(_0x8dbde3,_0x2e0d01){if(_0x8dbde3[_0xe8ee('0x4a')]['id']){delete _0x8dbde3[_0xe8ee('0x4a')]['id'];}return db[_0xe8ee('0x2c')][_0xe8ee('0x48')]({'where':{'id':_0x8dbde3[_0xe8ee('0x4b')]['id']}})['then'](handleEntityNotFound(_0x2e0d01,null))[_0xe8ee('0x25')](saveUpdates(_0x8dbde3[_0xe8ee('0x4a')],null))[_0xe8ee('0x25')](respondWithResult(_0x2e0d01,null))[_0xe8ee('0x45')](handleError(_0x2e0d01,null));};exports[_0xe8ee('0x4c')]=function(_0x2e1f49,_0x137038){return db[_0xe8ee('0x2c')][_0xe8ee('0x48')]({'where':{'id':_0x2e1f49[_0xe8ee('0x4b')]['id']}})[_0xe8ee('0x25')](handleEntityNotFound(_0x137038,null))[_0xe8ee('0x25')](removeEntity(_0x137038,null))[_0xe8ee('0x45')](handleError(_0x137038,null));};exports[_0xe8ee('0x4d')]=function(_0x577ddb,_0x4cf0aa,_0x105eea){var _0x45d61a={};var _0x5dd166={};var _0x3c1eb8;var _0x2c6d87;return db[_0xe8ee('0x2c')][_0xe8ee('0x4e')]({'where':{'id':_0x577ddb[_0xe8ee('0x4b')]['id']}})[_0xe8ee('0x25')](handleEntityNotFound(_0x4cf0aa,null))[_0xe8ee('0x25')](function(_0x1de8e5){if(_0x1de8e5){_0x3c1eb8=_0x1de8e5;_0x5dd166[_0xe8ee('0x30')]=_[_0xe8ee('0x32')](db[_0xe8ee('0x4f')]['rawAttributes']);_0x5dd166[_0xe8ee('0x31')]=_[_0xe8ee('0x32')](_0x577ddb[_0xe8ee('0x31')]);_0x5dd166[_0xe8ee('0x3c')]=_[_0xe8ee('0x34')](_0x5dd166[_0xe8ee('0x30')],_0x5dd166[_0xe8ee('0x31')]);_0x45d61a['attributes']=_[_0xe8ee('0x34')](_0x5dd166[_0xe8ee('0x30')],qs[_0xe8ee('0x35')](_0x577ddb[_0xe8ee('0x31')][_0xe8ee('0x35')]));_0x45d61a[_0xe8ee('0x33')]=_0x45d61a[_0xe8ee('0x33')][_0xe8ee('0x36')]?_0x45d61a['attributes']:_0x5dd166[_0xe8ee('0x30')];_0x45d61a[_0xe8ee('0x39')]=qs[_0xe8ee('0x3a')](_0x577ddb[_0xe8ee('0x31')][_0xe8ee('0x3a')]);_0x45d61a[_0xe8ee('0x3b')]=qs[_0xe8ee('0x3c')](_['pick'](_0x577ddb['query'],_0x5dd166[_0xe8ee('0x3c')]));if(_0x577ddb[_0xe8ee('0x31')][_0xe8ee('0x3e')]){_0x45d61a[_0xe8ee('0x3b')]=_[_0xe8ee('0x50')](_0x45d61a[_0xe8ee('0x3b')],{'$or':_[_0xe8ee('0x2b')](_0x45d61a[_0xe8ee('0x33')],function(_0x214da6){var _0x707cb0={};_0x707cb0[_0x214da6]={'$like':'%'+_0x577ddb[_0xe8ee('0x31')][_0xe8ee('0x3e')]+'%'};return _0x707cb0;})});}_0x45d61a=_[_0xe8ee('0x50')]({},_0x45d61a,_0x577ddb[_0xe8ee('0x40')]);return _0x3c1eb8['getConfigurations'](_0x45d61a);}})[_0xe8ee('0x25')](function(_0x43144e){if(_0x43144e){_0x2c6d87=_0x43144e['length'];if(!_0x577ddb[_0xe8ee('0x31')]['hasOwnProperty'](_0xe8ee('0x38'))){_0x45d61a[_0xe8ee('0x1e')]=qs['limit'](_0x577ddb['query']['limit']);_0x45d61a[_0xe8ee('0x1c')]=qs[_0xe8ee('0x1c')](_0x577ddb[_0xe8ee('0x31')]['offset']);}return _0x3c1eb8[_0xe8ee('0x4d')](_0x45d61a);}})[_0xe8ee('0x25')](function(_0x426c37){if(_0x426c37){return _0x426c37?{'count':_0x2c6d87,'rows':_0x426c37}:null;}})['then'](respondWithResult(_0x4cf0aa,null))['catch'](handleError(_0x4cf0aa,null));};exports[_0xe8ee('0x51')]=function(_0x4d9630,_0x1ac9cd,_0x341062){if(_0x4d9630[_0xe8ee('0x4a')]['id']){delete _0x4d9630[_0xe8ee('0x4a')]['id'];}return db[_0xe8ee('0x2c')][_0xe8ee('0x4e')]({'where':{'id':_0x4d9630[_0xe8ee('0x4b')]['id']}})[_0xe8ee('0x25')](handleEntityNotFound(_0x1ac9cd,null))['then'](function(_0xbfed8a){if(_0xbfed8a){_0x4d9630[_0xe8ee('0x4a')][_0xe8ee('0x52')]=_0xbfed8a['id'];_0x4d9630[_0xe8ee('0x4a')][_0xe8ee('0x53')]=integrations[_0xe8ee('0x54')](_0x4d9630[_0xe8ee('0x4a')][_0xe8ee('0x55')],_0x4d9630[_0xe8ee('0x4a')]['type']);_0x4d9630[_0xe8ee('0x4a')][_0xe8ee('0x56')]=integrations[_0xe8ee('0x57')](_0x4d9630[_0xe8ee('0x4a')]['channel'],_0x4d9630[_0xe8ee('0x4a')][_0xe8ee('0x2e')]);return db[_0xe8ee('0x4f')][_0xe8ee('0x49')](_0x4d9630['body'],{'include':[{'model':db[_0xe8ee('0x58')],'as':_0xe8ee('0x53')},{'model':db[_0xe8ee('0x58')],'as':_0xe8ee('0x56')}]});}return null;})['then'](respondWithResult(_0x1ac9cd,null))['catch'](handleError(_0x1ac9cd,null));};exports['getFields']=function(_0x4542be,_0x54cec2,_0x29184e){var _0x21c5d4='';var _0x108533=['id',_0xe8ee('0x28'),_0xe8ee('0x59'),_0xe8ee('0x5a'),_0xe8ee('0x5b'),_0xe8ee('0x5c'),_0xe8ee('0x5d'),_0xe8ee('0x5e'),_0xe8ee('0x5f'),_0xe8ee('0x60'),_0xe8ee('0x61'),'direction'];return db['SugarcrmAccount'][_0xe8ee('0x4e')]({'where':{'id':_0x4542be[_0xe8ee('0x4b')]['id']},'attributes':['id',_0xe8ee('0x62'),'password',_0xe8ee('0x63')]})[_0xe8ee('0x25')](handleEntityNotFound(_0x54cec2,null))[_0xe8ee('0x25')](function(_0x24431){if(_0x24431){_0x21c5d4=_0x24431[_0xe8ee('0x63')];var _0x8975f9=_0x21c5d4[_0xe8ee('0x64')](-0x1);if(_0x8975f9==='/'){_0x21c5d4=_0x21c5d4[_0xe8ee('0x65')](0x0,_0x21c5d4[_0xe8ee('0x66')](_0x8975f9));}return rp({'method':'POST','uri':util[_0xe8ee('0x67')]('%s%s',_0x21c5d4,'/service/v4_1/rest.php'),'json':!![],'form':{'method':'login','input_type':_0xe8ee('0x68'),'response_type':_0xe8ee('0x68'),'rest_data':JSON[_0xe8ee('0x69')]({'user_auth':{'user_name':_0x24431['username'],'password':_0x24431[_0xe8ee('0x6a')],'encryption':_0xe8ee('0x6b')},'application':'xCALLY\x20Motion\x20Integration'})}});}})['then'](function(_0x1cd801){if(_0x1cd801&&_0x1cd801['name']!==_0xe8ee('0x6c')&&_0x1cd801['name']!==_0xe8ee('0x6d')){return rp({'method':_0xe8ee('0x6e'),'uri':util[_0xe8ee('0x67')](_0xe8ee('0x6f'),_0x21c5d4,_0xe8ee('0x70')),'json':!![],'form':{'method':_0xe8ee('0x71'),'input_type':'JSON','response_type':_0xe8ee('0x68'),'rest_data':JSON[_0xe8ee('0x69')]({'session':_0x1cd801['id'],'module_name':_0xe8ee('0x72')})}})[_0xe8ee('0x25')](function(_0x786e9){if(_0x786e9){var _0x53e441=_['values'](_0x786e9[_0xe8ee('0x73')]);_['remove'](_0x53e441,function(_0x4099ef){return _0x108533[_0xe8ee('0x74')](_0x4099ef[_0xe8ee('0x28')]);});return{'count':_0x53e441[_0xe8ee('0x36')],'rows':_[_0xe8ee('0x2b')](_0x53e441,function(_0x3e6cc7){return{'id':_0x3e6cc7[_0xe8ee('0x28')],'name':_0x3e6cc7[_0xe8ee('0x75')],'custom':_[_0xe8ee('0x76')](_0x3e6cc7[_0xe8ee('0x28')],'_c')?!![]:![],'options':_0x3e6cc7[_0xe8ee('0x40')]?_[_0xe8ee('0x2b')](_[_0xe8ee('0x77')](_0x3e6cc7[_0xe8ee('0x40')]),function(_0x15a0e7){return{'name':_0x15a0e7[_0xe8ee('0x78')],'value':_0x15a0e7['name']};}):[]};})};}})['then'](respondWithResult(_0x54cec2,null))['catch'](function(_0x171729){var _0x55b3d5=_0x4542be[_0xe8ee('0x31')][_0xe8ee('0x79')]?0x1f4:_0x171729['statusCode']||0x1f4;logger['error'](_0xe8ee('0x7a'),_0xe8ee('0x7b'),_0x55b3d5,JSON[_0xe8ee('0x69')](_0x171729));delete _0x171729[_0xe8ee('0x28')];if(_0x55b3d5===0x191){_0x55b3d5=0x190;}_0x54cec2[_0xe8ee('0x1a')](_0x55b3d5)['send'](_0x4542be[_0xe8ee('0x31')]['test']?{'message':_0xe8ee('0x7c'),'statusCode':_0x171729[_0xe8ee('0x7d')]}:_0x171729);});}else{var _0x4adfaa=0x1f4;_0x54cec2[_0xe8ee('0x1a')](_0x4adfaa)[_0xe8ee('0x29')]({'message':_0xe8ee('0x7c'),'statusCode':0x190});}});};