Built motion from commit 43538d75.|2.5.35
[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 _0xf18d=['getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','json','undefined','limit','count','offset','set','reject','save','update','then','end','stack','name','index','map','SugarcrmAccount','rawAttributes','fieldName','key','model','query','keys','intersection','fields','attributes','length','order','sort','where','pick','filters','type','VIRTUAL','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','create','body','find','destroy','SugarcrmConfiguration','getConfigurations','nolimit','addConfiguration','findOne','getSubjects','Descriptions','getDescriptions','Subjects','SugarcrmField','getFields','assigned_user_id','date_start','duration_hours','duration_minutes','parent_type','parent_name','direction','username','password','remoteUri','substring','POST','%s%s','/service/v4_1/rest.php','login','JSON','stringify','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','format','get_module_fields','Calls','values','module_fields','includes','label','endsWith','value','statusCode','error'];(function(_0xd43d4e,_0x6d89ea){var _0x5b765d=function(_0x38497a){while(--_0x38497a){_0xd43d4e['push'](_0xd43d4e['shift']());}};_0x5b765d(++_0x6d89ea);}(_0xf18d,0x1e7));var _0xdf18=function(_0xff5df6,_0x514e73){_0xff5df6=_0xff5df6-0x0;var _0x2634bb=_0xf18d[_0xff5df6];return _0x2634bb;};'use strict';var emlformat=require(_0xdf18('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xdf18('0x1'));var jsonpatch=require(_0xdf18('0x2'));var rp=require(_0xdf18('0x3'));var moment=require(_0xdf18('0x4'));var BPromise=require(_0xdf18('0x5'));var Mustache=require(_0xdf18('0x6'));var util=require(_0xdf18('0x7'));var path=require(_0xdf18('0x8'));var sox=require('sox');var csv=require(_0xdf18('0x9'));var ejs=require(_0xdf18('0xa'));var fs=require('fs');var fs_extra=require(_0xdf18('0xb'));var _=require(_0xdf18('0xc'));var squel=require(_0xdf18('0xd'));var crypto=require('crypto');var jsforce=require(_0xdf18('0xe'));var deskjs=require(_0xdf18('0xf'));var toCsv=require(_0xdf18('0x9'));var querystring=require(_0xdf18('0x10'));var Papa=require(_0xdf18('0x11'));var Redis=require(_0xdf18('0x12'));var authService=require(_0xdf18('0x13'));var qs=require(_0xdf18('0x14'));var as=require(_0xdf18('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xdf18('0x16'))(_0xdf18('0x17'));var utils=require('../../config/utils');var config=require(_0xdf18('0x18'));var licenseUtil=require(_0xdf18('0x19'));var db=require('../../mysqldb')['db'];var integrations=require(_0xdf18('0x1a'));function respondWithStatusCode(_0x44ae41,_0x465714){_0x465714=_0x465714||0xcc;return function(_0x18ef11){if(_0x18ef11){return _0x44ae41[_0xdf18('0x1b')](_0x465714);}return _0x44ae41[_0xdf18('0x1c')](_0x465714)['end']();};}function respondWithResult(_0x144219,_0x3dc798){_0x3dc798=_0x3dc798||0xc8;return function(_0x458dcd){if(_0x458dcd){return _0x144219[_0xdf18('0x1c')](_0x3dc798)[_0xdf18('0x1d')](_0x458dcd);}};}function respondWithFilteredResult(_0x5769f6,_0x278698){return function(_0x3f7dbf){if(_0x3f7dbf){var _0x1a5050=typeof _0x278698['offset']===_0xdf18('0x1e')&&typeof _0x278698[_0xdf18('0x1f')]===_0xdf18('0x1e');var _0x5bb40e=_0x3f7dbf[_0xdf18('0x20')];var _0x9c7ff8=_0x1a5050?0x0:_0x278698[_0xdf18('0x21')];var _0x2dcf8f=_0x1a5050?_0x3f7dbf[_0xdf18('0x20')]:_0x278698[_0xdf18('0x21')]+_0x278698[_0xdf18('0x1f')];var _0x2bd48e;if(_0x2dcf8f>=_0x5bb40e){_0x2dcf8f=_0x5bb40e;_0x2bd48e=0xc8;}else{_0x2bd48e=0xce;}_0x5769f6[_0xdf18('0x1c')](_0x2bd48e);return _0x5769f6[_0xdf18('0x22')]('Content-Range',_0x9c7ff8+'-'+_0x2dcf8f+'/'+_0x5bb40e)['json'](_0x3f7dbf);}return null;};}function patchUpdates(_0x5b619c){return function(_0x5e71f9){try{jsonpatch['apply'](_0x5e71f9,_0x5b619c,!![]);}catch(_0x489e3e){return BPromise[_0xdf18('0x23')](_0x489e3e);}return _0x5e71f9[_0xdf18('0x24')]();};}function saveUpdates(_0x4494bb,_0x28cca0){return function(_0x319852){if(_0x319852){return _0x319852[_0xdf18('0x25')](_0x4494bb)['then'](function(_0x372695){return _0x372695;});}return null;};}function removeEntity(_0x2d6f27,_0x3fca89){return function(_0x143f40){if(_0x143f40){return _0x143f40['destroy']()[_0xdf18('0x26')](function(){_0x2d6f27[_0xdf18('0x1c')](0xcc)[_0xdf18('0x27')]();});}};}function handleEntityNotFound(_0x278421,_0x424ef1){return function(_0x2d29ed){if(!_0x2d29ed){_0x278421[_0xdf18('0x1b')](0x194);}return _0x2d29ed;};}function handleError(_0x23c5aa,_0x2b5023){_0x2b5023=_0x2b5023||0x1f4;return function(_0x579c7a){logger['error'](_0x579c7a[_0xdf18('0x28')]);if(_0x579c7a[_0xdf18('0x29')]){delete _0x579c7a[_0xdf18('0x29')];}_0x23c5aa['status'](_0x2b5023)['send'](_0x579c7a);};}exports[_0xdf18('0x2a')]=function(_0x68b7c3,_0xb4149e){var _0x442410={},_0x2fda24={},_0x46a6e2={'count':0x0,'rows':[]};var _0x5f02e4=_[_0xdf18('0x2b')](db[_0xdf18('0x2c')][_0xdf18('0x2d')],function(_0x4705f3){return{'name':_0x4705f3[_0xdf18('0x2e')],'type':_0x4705f3['type'][_0xdf18('0x2f')]};});_0x2fda24[_0xdf18('0x30')]=_[_0xdf18('0x2b')](_0x5f02e4,_0xdf18('0x29'));_0x2fda24[_0xdf18('0x31')]=_[_0xdf18('0x32')](_0x68b7c3[_0xdf18('0x31')]);_0x2fda24['filters']=_[_0xdf18('0x33')](_0x2fda24[_0xdf18('0x30')],_0x2fda24[_0xdf18('0x31')]);_0x442410['attributes']=_[_0xdf18('0x33')](_0x2fda24[_0xdf18('0x30')],qs[_0xdf18('0x34')](_0x68b7c3['query'][_0xdf18('0x34')]));_0x442410[_0xdf18('0x35')]=_0x442410[_0xdf18('0x35')][_0xdf18('0x36')]?_0x442410[_0xdf18('0x35')]:_0x2fda24['model'];if(!_0x68b7c3[_0xdf18('0x31')]['hasOwnProperty']('nolimit')){_0x442410['limit']=qs[_0xdf18('0x1f')](_0x68b7c3[_0xdf18('0x31')][_0xdf18('0x1f')]);_0x442410[_0xdf18('0x21')]=qs[_0xdf18('0x21')](_0x68b7c3[_0xdf18('0x31')]['offset']);}_0x442410[_0xdf18('0x37')]=qs[_0xdf18('0x38')](_0x68b7c3[_0xdf18('0x31')][_0xdf18('0x38')]);_0x442410[_0xdf18('0x39')]=qs['filters'](_[_0xdf18('0x3a')](_0x68b7c3[_0xdf18('0x31')],_0x2fda24[_0xdf18('0x3b')]),_0x5f02e4);if(_0x68b7c3[_0xdf18('0x31')]['filter']){_0x442410[_0xdf18('0x39')]=_['merge'](_0x442410[_0xdf18('0x39')],{'$or':_[_0xdf18('0x2b')](_0x5f02e4,function(_0x10bb54){if(_0x10bb54[_0xdf18('0x3c')]!==_0xdf18('0x3d')){var _0x6c6c51={};_0x6c6c51[_0x10bb54[_0xdf18('0x29')]]={'$like':'%'+_0x68b7c3[_0xdf18('0x31')][_0xdf18('0x3e')]+'%'};return _0x6c6c51;}})});}_0x442410=_[_0xdf18('0x3f')]({},_0x442410,_0x68b7c3[_0xdf18('0x40')]);var _0x49ea59={'where':_0x442410[_0xdf18('0x39')]};return db[_0xdf18('0x2c')]['count'](_0x49ea59)[_0xdf18('0x26')](function(_0xf85f24){_0x46a6e2[_0xdf18('0x20')]=_0xf85f24;if(_0x68b7c3['query'][_0xdf18('0x41')]){_0x442410[_0xdf18('0x42')]=[{'all':!![]}];}return db['SugarcrmAccount'][_0xdf18('0x43')](_0x442410);})['then'](function(_0x4ed42b){_0x46a6e2[_0xdf18('0x44')]=_0x4ed42b;return _0x46a6e2;})['then'](respondWithFilteredResult(_0xb4149e,_0x442410))[_0xdf18('0x45')](handleError(_0xb4149e,null));};exports[_0xdf18('0x46')]=function(_0x471883,_0x5b53b2){var _0x4eeb39={'raw':![],'where':{'id':_0x471883[_0xdf18('0x47')]['id']}},_0x1ccf69={};_0x1ccf69[_0xdf18('0x30')]=_[_0xdf18('0x32')](db['SugarcrmAccount'][_0xdf18('0x2d')]);_0x1ccf69[_0xdf18('0x31')]=_['keys'](_0x471883['query']);_0x1ccf69[_0xdf18('0x3b')]=_[_0xdf18('0x33')](_0x1ccf69[_0xdf18('0x30')],_0x1ccf69['query']);_0x4eeb39[_0xdf18('0x35')]=_[_0xdf18('0x33')](_0x1ccf69['model'],qs[_0xdf18('0x34')](_0x471883[_0xdf18('0x31')][_0xdf18('0x34')]));_0x4eeb39[_0xdf18('0x35')]=_0x4eeb39[_0xdf18('0x35')][_0xdf18('0x36')]?_0x4eeb39[_0xdf18('0x35')]:_0x1ccf69[_0xdf18('0x30')];if(_0x471883['query'][_0xdf18('0x41')]){_0x4eeb39[_0xdf18('0x42')]=[{'all':!![]}];}_0x4eeb39=_['merge']({},_0x4eeb39,_0x471883[_0xdf18('0x40')]);return db[_0xdf18('0x2c')]['find'](_0x4eeb39)[_0xdf18('0x26')](handleEntityNotFound(_0x5b53b2,null))[_0xdf18('0x26')](respondWithResult(_0x5b53b2,null))['catch'](handleError(_0x5b53b2,null));};exports[_0xdf18('0x48')]=function(_0x4b50fd,_0x5739ba){return db[_0xdf18('0x2c')][_0xdf18('0x48')](_0x4b50fd[_0xdf18('0x49')],{})[_0xdf18('0x26')](respondWithResult(_0x5739ba,0xc9))['catch'](handleError(_0x5739ba,null));};exports[_0xdf18('0x25')]=function(_0x3d9223,_0x2a5677){if(_0x3d9223['body']['id']){delete _0x3d9223[_0xdf18('0x49')]['id'];}return db['SugarcrmAccount'][_0xdf18('0x4a')]({'where':{'id':_0x3d9223['params']['id']}})['then'](handleEntityNotFound(_0x2a5677,null))[_0xdf18('0x26')](saveUpdates(_0x3d9223['body'],null))['then'](respondWithResult(_0x2a5677,null))[_0xdf18('0x45')](handleError(_0x2a5677,null));};exports[_0xdf18('0x4b')]=function(_0x56b267,_0xa8ffe8){return db['SugarcrmAccount'][_0xdf18('0x4a')]({'where':{'id':_0x56b267['params']['id']}})[_0xdf18('0x26')](handleEntityNotFound(_0xa8ffe8,null))[_0xdf18('0x26')](removeEntity(_0xa8ffe8,null))[_0xdf18('0x45')](handleError(_0xa8ffe8,null));};exports['getConfigurations']=function(_0x3aff08,_0xfa5a53,_0x48f277){var _0x283ff3={};var _0x479650={};var _0x39b597;var _0x41a785;return db['SugarcrmAccount']['findOne']({'where':{'id':_0x3aff08['params']['id']}})['then'](handleEntityNotFound(_0xfa5a53,null))[_0xdf18('0x26')](function(_0x31d136){if(_0x31d136){_0x39b597=_0x31d136;_0x479650[_0xdf18('0x30')]=_[_0xdf18('0x32')](db[_0xdf18('0x4c')][_0xdf18('0x2d')]);_0x479650[_0xdf18('0x31')]=_[_0xdf18('0x32')](_0x3aff08[_0xdf18('0x31')]);_0x479650['filters']=_[_0xdf18('0x33')](_0x479650[_0xdf18('0x30')],_0x479650[_0xdf18('0x31')]);_0x283ff3[_0xdf18('0x35')]=_[_0xdf18('0x33')](_0x479650[_0xdf18('0x30')],qs[_0xdf18('0x34')](_0x3aff08[_0xdf18('0x31')][_0xdf18('0x34')]));_0x283ff3[_0xdf18('0x35')]=_0x283ff3[_0xdf18('0x35')][_0xdf18('0x36')]?_0x283ff3['attributes']:_0x479650['model'];_0x283ff3[_0xdf18('0x37')]=qs[_0xdf18('0x38')](_0x3aff08[_0xdf18('0x31')][_0xdf18('0x38')]);_0x283ff3[_0xdf18('0x39')]=qs[_0xdf18('0x3b')](_['pick'](_0x3aff08[_0xdf18('0x31')],_0x479650[_0xdf18('0x3b')]));if(_0x3aff08[_0xdf18('0x31')][_0xdf18('0x3e')]){_0x283ff3[_0xdf18('0x39')]=_[_0xdf18('0x3f')](_0x283ff3[_0xdf18('0x39')],{'$or':_[_0xdf18('0x2b')](_0x283ff3[_0xdf18('0x35')],function(_0xc6cf93){var _0x1ad2f7={};_0x1ad2f7[_0xc6cf93]={'$like':'%'+_0x3aff08[_0xdf18('0x31')][_0xdf18('0x3e')]+'%'};return _0x1ad2f7;})});}_0x283ff3=_[_0xdf18('0x3f')]({},_0x283ff3,_0x3aff08[_0xdf18('0x40')]);return _0x39b597[_0xdf18('0x4d')](_0x283ff3);}})[_0xdf18('0x26')](function(_0x270914){if(_0x270914){_0x41a785=_0x270914['length'];if(!_0x3aff08[_0xdf18('0x31')]['hasOwnProperty'](_0xdf18('0x4e'))){_0x283ff3[_0xdf18('0x1f')]=qs[_0xdf18('0x1f')](_0x3aff08[_0xdf18('0x31')][_0xdf18('0x1f')]);_0x283ff3[_0xdf18('0x21')]=qs[_0xdf18('0x21')](_0x3aff08[_0xdf18('0x31')][_0xdf18('0x21')]);}return _0x39b597[_0xdf18('0x4d')](_0x283ff3);}})['then'](function(_0x118be5){if(_0x118be5){return _0x118be5?{'count':_0x41a785,'rows':_0x118be5}:null;}})[_0xdf18('0x26')](respondWithResult(_0xfa5a53,null))[_0xdf18('0x45')](handleError(_0xfa5a53,null));};exports[_0xdf18('0x4f')]=function(_0x119d27,_0x35efe9,_0x6433ab){if(_0x119d27[_0xdf18('0x49')]['id']){delete _0x119d27[_0xdf18('0x49')]['id'];}return db[_0xdf18('0x2c')][_0xdf18('0x50')]({'where':{'id':_0x119d27[_0xdf18('0x47')]['id']}})[_0xdf18('0x26')](handleEntityNotFound(_0x35efe9,null))[_0xdf18('0x26')](function(_0x5da124){if(_0x5da124){_0x119d27['body']['AccountId']=_0x5da124['id'];_0x119d27[_0xdf18('0x49')]['Subjects']=integrations[_0xdf18('0x51')](_0x119d27['body']['channel'],_0x119d27[_0xdf18('0x49')]['type']);_0x119d27[_0xdf18('0x49')][_0xdf18('0x52')]=integrations[_0xdf18('0x53')](_0x119d27[_0xdf18('0x49')]['channel'],_0x119d27[_0xdf18('0x49')][_0xdf18('0x3c')]);return db[_0xdf18('0x4c')][_0xdf18('0x48')](_0x119d27[_0xdf18('0x49')],{'include':[{'model':db['SugarcrmField'],'as':_0xdf18('0x54')},{'model':db[_0xdf18('0x55')],'as':_0xdf18('0x52')}]});}return null;})[_0xdf18('0x26')](respondWithResult(_0x35efe9,null))[_0xdf18('0x45')](handleError(_0x35efe9,null));};exports[_0xdf18('0x56')]=function(_0xe17905,_0x3e8b6e,_0x4a8bf6){var _0x35d195='';var _0x348eac=['id',_0xdf18('0x29'),_0xdf18('0x57'),'created_by','description',_0xdf18('0x58'),_0xdf18('0x59'),_0xdf18('0x5a'),'parent_id',_0xdf18('0x5b'),_0xdf18('0x5c'),_0xdf18('0x5d')];return db['SugarcrmAccount']['findOne']({'where':{'id':_0xe17905[_0xdf18('0x47')]['id']},'attributes':['id',_0xdf18('0x5e'),_0xdf18('0x5f'),_0xdf18('0x60')]})[_0xdf18('0x26')](handleEntityNotFound(_0x3e8b6e,null))[_0xdf18('0x26')](function(_0x22805c){if(_0x22805c){_0x35d195=_0x22805c[_0xdf18('0x60')];var _0x21d0b9=_0x35d195['slice'](-0x1);if(_0x21d0b9==='/'){_0x35d195=_0x35d195[_0xdf18('0x61')](0x0,_0x35d195['lastIndexOf'](_0x21d0b9));}return rp({'method':_0xdf18('0x62'),'uri':util['format'](_0xdf18('0x63'),_0x35d195,_0xdf18('0x64')),'json':!![],'form':{'method':_0xdf18('0x65'),'input_type':_0xdf18('0x66'),'response_type':'JSON','rest_data':JSON[_0xdf18('0x67')]({'user_auth':{'user_name':_0x22805c['username'],'password':_0x22805c[_0xdf18('0x5f')],'encryption':'PLAIN'},'application':_0xdf18('0x68')})}});}})[_0xdf18('0x26')](function(_0x50534e){if(_0x50534e&&_0x50534e[_0xdf18('0x29')]!==_0xdf18('0x69')&&_0x50534e['name']!==_0xdf18('0x6a')){return rp({'method':_0xdf18('0x62'),'uri':util[_0xdf18('0x6b')]('%s%s',_0x35d195,_0xdf18('0x64')),'json':!![],'form':{'method':_0xdf18('0x6c'),'input_type':_0xdf18('0x66'),'response_type':_0xdf18('0x66'),'rest_data':JSON[_0xdf18('0x67')]({'session':_0x50534e['id'],'module_name':_0xdf18('0x6d')})}})[_0xdf18('0x26')](function(_0x1aa4b8){if(_0x1aa4b8){var _0x1bf22b=_[_0xdf18('0x6e')](_0x1aa4b8[_0xdf18('0x6f')]);_['remove'](_0x1bf22b,function(_0x56f9bb){return _0x348eac[_0xdf18('0x70')](_0x56f9bb[_0xdf18('0x29')]);});return{'count':_0x1bf22b[_0xdf18('0x36')],'rows':_[_0xdf18('0x2b')](_0x1bf22b,function(_0x25c36d){return{'id':_0x25c36d['name'],'name':_0x25c36d[_0xdf18('0x71')],'custom':_[_0xdf18('0x72')](_0x25c36d['name'],'_c')?!![]:![],'options':_0x25c36d[_0xdf18('0x40')]?_[_0xdf18('0x2b')](_[_0xdf18('0x6e')](_0x25c36d['options']),function(_0x3b0671){return{'name':_0x3b0671[_0xdf18('0x73')],'value':_0x3b0671[_0xdf18('0x29')]};}):[]};})};}})[_0xdf18('0x26')](respondWithResult(_0x3e8b6e,null))[_0xdf18('0x45')](function(_0x31fbf9){var _0x45de2e=_0xe17905[_0xdf18('0x31')]['test']?0x1f4:_0x31fbf9[_0xdf18('0x74')]||0x1f4;logger[_0xdf18('0x75')](_0xdf18('0x76'),_0xdf18('0x56'),_0x45de2e,JSON[_0xdf18('0x67')](_0x31fbf9));delete _0x31fbf9[_0xdf18('0x29')];if(_0x45de2e===0x191){_0x45de2e=0x190;}_0x3e8b6e[_0xdf18('0x1c')](_0x45de2e)[_0xdf18('0x77')](_0xe17905['query']['test']?{'message':_0xdf18('0x78'),'statusCode':_0x31fbf9[_0xdf18('0x74')]}:_0x31fbf9);});}else{var _0x38f15d=0x1f4;_0x3e8b6e[_0xdf18('0x1c')](_0x38f15d)[_0xdf18('0x77')]({'message':'Wrong\x20credentials','statusCode':0x190});}});};