189018bfdcb2ce8f5ee482e5ba397ad6bae45280
[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 _0x474d=['show','params','keys','find','create','body','getConfigurations','SugarcrmConfiguration','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','SugarcrmField','getFields','assigned_user_id','created_by','date_start','duration_minutes','parent_id','direction','username','password','remoteUri','slice','POST','format','%s%s','JSON','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','get_module_fields','Calls','module_fields','remove','includes','label','values','value','test','statusCode','Wrong\x20credentials','html-pdf','eml-format','zip-dir','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','jayson/promise','http','request','then','info','request\x20sent','debug','stringify','error','code','message','SugarcrmAccount,\x20%s,\x20%s','result','catch','status','end','count','offset','limit','Content-Range','json','apply','update','destroy','sendStatus','stack','name','send','index','map','SugarcrmAccount','rawAttributes','fieldName','type','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows'];(function(_0x43c24f,_0x50f615){var _0x337ec5=function(_0x1fdb76){while(--_0x1fdb76){_0x43c24f['push'](_0x43c24f['shift']());}};_0x337ec5(++_0x50f615);}(_0x474d,0xad));var _0xd474=function(_0x42b94,_0x2e3090){_0x42b94=_0x42b94-0x0;var _0x563f2e=_0x474d[_0x42b94];return _0x563f2e;};'use strict';var pdf=require(_0xd474('0x0'));var emlformat=require(_0xd474('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xd474('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd474('0x3'));var moment=require('moment');var BPromise=require(_0xd474('0x4'));var Mustache=require(_0xd474('0x5'));var util=require(_0xd474('0x6'));var path=require('path');var sox=require(_0xd474('0x7'));var csv=require(_0xd474('0x8'));var ejs=require(_0xd474('0x9'));var fs=require('fs');var _=require(_0xd474('0xa'));var squel=require('squel');var crypto=require(_0xd474('0xb'));var jsforce=require(_0xd474('0xc'));var deskjs=require(_0xd474('0xd'));var toCsv=require(_0xd474('0x8'));var querystring=require(_0xd474('0xe'));var Papa=require('papaparse');var Redis=require(_0xd474('0xf'));var authService=require(_0xd474('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xd474('0x11'));var hardwareService=require(_0xd474('0x12'));var logger=require(_0xd474('0x13'))(_0xd474('0x14'));var utils=require('../../config/utils');var config=require(_0xd474('0x15'));var licenseUtil=require(_0xd474('0x16'));var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0xd474('0x17'));var client=jayson['client'][_0xd474('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x23dbc9,_0x1fc5d4,_0x2334e7,_0x4746e7){return new BPromise(function(_0x972e7c,_0x22d3a5){var _0x42f5fb=_0x4746e7||client;return _0x42f5fb[_0xd474('0x19')](_0x23dbc9,_0x2334e7)[_0xd474('0x1a')](function(_0x2e62b1){logger[_0xd474('0x1b')]('SugarcrmAccount,\x20%s,\x20%s',_0x1fc5d4,_0xd474('0x1c'));logger[_0xd474('0x1d')]('SugarcrmAccount,\x20%s,\x20%s,\x20%s',_0x1fc5d4,_0xd474('0x1c'),JSON[_0xd474('0x1e')](_0x2e62b1));if(_0x2e62b1[_0xd474('0x1f')]){if(_0x2e62b1[_0xd474('0x1f')][_0xd474('0x20')]===0x1f4){logger[_0xd474('0x1f')]('SugarcrmAccount,\x20%s,\x20%s',_0x1fc5d4,_0x2e62b1[_0xd474('0x1f')][_0xd474('0x21')]);return _0x22d3a5(_0x2e62b1[_0xd474('0x1f')][_0xd474('0x21')]);}logger['error']('SugarcrmAccount,\x20%s,\x20%s',_0x1fc5d4,_0x2e62b1[_0xd474('0x1f')][_0xd474('0x21')]);return _0x972e7c(_0x2e62b1['error']['message']);}else{logger[_0xd474('0x1b')](_0xd474('0x22'),_0x1fc5d4,_0xd474('0x1c'));_0x972e7c(_0x2e62b1[_0xd474('0x23')][_0xd474('0x21')]);}})[_0xd474('0x24')](function(_0x2523e7){logger[_0xd474('0x1f')](_0xd474('0x22'),_0x1fc5d4,_0x2523e7);_0x22d3a5(_0x2523e7);});});}function respondWithStatusCode(_0x332c92,_0x1e802e){_0x1e802e=_0x1e802e||0xcc;return function(_0x218f09){if(_0x218f09){return _0x332c92['sendStatus'](_0x1e802e);}return _0x332c92[_0xd474('0x25')](_0x1e802e)[_0xd474('0x26')]();};}function respondWithResult(_0x40ebbe,_0x49606f){_0x49606f=_0x49606f||0xc8;return function(_0x2cdb93){if(_0x2cdb93){return _0x40ebbe[_0xd474('0x25')](_0x49606f)['json'](_0x2cdb93);}};}function respondWithFilteredResult(_0x5f4d68,_0x29338e){return function(_0x5a2e46){if(_0x5a2e46){var _0x57e186=_0x5a2e46[_0xd474('0x27')],_0x1748e6=_0x29338e['offset'],_0x4bab6a=_0x29338e[_0xd474('0x28')]+_0x29338e[_0xd474('0x29')],_0x25cbe0;if(_0x4bab6a>=_0x57e186){_0x4bab6a=_0x57e186;_0x25cbe0=0xc8;}else{_0x25cbe0=0xce;}_0x5f4d68[_0xd474('0x25')](_0x25cbe0);return _0x5f4d68['set'](_0xd474('0x2a'),_0x1748e6+'-'+_0x4bab6a+'/'+_0x57e186)[_0xd474('0x2b')](_0x5a2e46);}return null;};}function patchUpdates(_0x55ad4c){return function(_0x37388b){try{jsonpatch[_0xd474('0x2c')](_0x37388b,_0x55ad4c,!![]);}catch(_0x4a9de8){return BPromise['reject'](_0x4a9de8);}return _0x37388b['save']();};}function saveUpdates(_0x26a2b4,_0x57df95){return function(_0x13bcb6){if(_0x13bcb6){return _0x13bcb6[_0xd474('0x2d')](_0x26a2b4)[_0xd474('0x1a')](function(_0x376364){return _0x376364;});}return null;};}function removeEntity(_0x713db7,_0xc2674){return function(_0x5e8efe){if(_0x5e8efe){return _0x5e8efe[_0xd474('0x2e')]()[_0xd474('0x1a')](function(){_0x713db7[_0xd474('0x25')](0xcc)['end']();});}};}function handleEntityNotFound(_0x384d4a,_0x16d6dc){return function(_0x2c3d99){if(!_0x2c3d99){_0x384d4a[_0xd474('0x2f')](0x194);}return _0x2c3d99;};}function handleError(_0x158121,_0x2e4a15){_0x2e4a15=_0x2e4a15||0x1f4;return function(_0xa343d){logger['error'](_0xa343d[_0xd474('0x30')]);if(_0xa343d['name']){delete _0xa343d[_0xd474('0x31')];}_0x158121['status'](_0x2e4a15)[_0xd474('0x32')](_0xa343d);};}exports[_0xd474('0x33')]=function(_0x5dfdfe,_0x55446b){var _0x17ba3a={},_0x1f15b8={},_0x548004={'count':0x0,'rows':[]};var _0x18e843=_[_0xd474('0x34')](db[_0xd474('0x35')][_0xd474('0x36')],function(_0x51aba6){return{'name':_0x51aba6[_0xd474('0x37')],'type':_0x51aba6[_0xd474('0x38')][_0xd474('0x39')]};});_0x1f15b8[_0xd474('0x3a')]=_[_0xd474('0x34')](_0x18e843,_0xd474('0x31'));_0x1f15b8[_0xd474('0x3b')]=_['keys'](_0x5dfdfe[_0xd474('0x3b')]);_0x1f15b8[_0xd474('0x3c')]=_['intersection'](_0x1f15b8['model'],_0x1f15b8[_0xd474('0x3b')]);_0x17ba3a[_0xd474('0x3d')]=_[_0xd474('0x3e')](_0x1f15b8[_0xd474('0x3a')],qs[_0xd474('0x3f')](_0x5dfdfe['query'][_0xd474('0x3f')]));_0x17ba3a[_0xd474('0x3d')]=_0x17ba3a[_0xd474('0x3d')][_0xd474('0x40')]?_0x17ba3a[_0xd474('0x3d')]:_0x1f15b8[_0xd474('0x3a')];if(!_0x5dfdfe[_0xd474('0x3b')][_0xd474('0x41')](_0xd474('0x42'))){_0x17ba3a[_0xd474('0x29')]=qs[_0xd474('0x29')](_0x5dfdfe[_0xd474('0x3b')][_0xd474('0x29')]);_0x17ba3a[_0xd474('0x28')]=qs[_0xd474('0x28')](_0x5dfdfe['query'][_0xd474('0x28')]);}_0x17ba3a[_0xd474('0x43')]=qs[_0xd474('0x44')](_0x5dfdfe[_0xd474('0x3b')][_0xd474('0x44')]);_0x17ba3a['where']=qs[_0xd474('0x3c')](_[_0xd474('0x45')](_0x5dfdfe[_0xd474('0x3b')],_0x1f15b8[_0xd474('0x3c')]),_0x18e843);if(_0x5dfdfe[_0xd474('0x3b')][_0xd474('0x46')]){_0x17ba3a[_0xd474('0x47')]=_[_0xd474('0x48')](_0x17ba3a[_0xd474('0x47')],{'$or':_[_0xd474('0x34')](_0x18e843,function(_0x308257){if(_0x308257[_0xd474('0x38')]!==_0xd474('0x49')){var _0x17cc29={};_0x17cc29[_0x308257[_0xd474('0x31')]]={'$like':'%'+_0x5dfdfe[_0xd474('0x3b')]['filter']+'%'};return _0x17cc29;}})});}_0x17ba3a=_[_0xd474('0x48')]({},_0x17ba3a,_0x5dfdfe[_0xd474('0x4a')]);var _0x3bdf53={'where':_0x17ba3a[_0xd474('0x47')]};return db[_0xd474('0x35')][_0xd474('0x27')](_0x3bdf53)['then'](function(_0x419976){_0x548004[_0xd474('0x27')]=_0x419976;if(_0x5dfdfe['query'][_0xd474('0x4b')]){_0x17ba3a[_0xd474('0x4c')]=[{'all':!![]}];}return db['SugarcrmAccount'][_0xd474('0x4d')](_0x17ba3a);})[_0xd474('0x1a')](function(_0x163e1){_0x548004[_0xd474('0x4e')]=_0x163e1;return _0x548004;})[_0xd474('0x1a')](respondWithFilteredResult(_0x55446b,_0x17ba3a))[_0xd474('0x24')](handleError(_0x55446b,null));};exports[_0xd474('0x4f')]=function(_0x516903,_0x539bbf){var _0x4ccd4a={'raw':![],'where':{'id':_0x516903[_0xd474('0x50')]['id']}},_0x3706fa={};_0x3706fa[_0xd474('0x3a')]=_[_0xd474('0x51')](db[_0xd474('0x35')]['rawAttributes']);_0x3706fa[_0xd474('0x3b')]=_[_0xd474('0x51')](_0x516903[_0xd474('0x3b')]);_0x3706fa[_0xd474('0x3c')]=_[_0xd474('0x3e')](_0x3706fa[_0xd474('0x3a')],_0x3706fa[_0xd474('0x3b')]);_0x4ccd4a[_0xd474('0x3d')]=_[_0xd474('0x3e')](_0x3706fa[_0xd474('0x3a')],qs[_0xd474('0x3f')](_0x516903[_0xd474('0x3b')][_0xd474('0x3f')]));_0x4ccd4a[_0xd474('0x3d')]=_0x4ccd4a[_0xd474('0x3d')][_0xd474('0x40')]?_0x4ccd4a[_0xd474('0x3d')]:_0x3706fa['model'];if(_0x516903[_0xd474('0x3b')][_0xd474('0x4b')]){_0x4ccd4a['include']=[{'all':!![]}];}_0x4ccd4a=_[_0xd474('0x48')]({},_0x4ccd4a,_0x516903[_0xd474('0x4a')]);return db[_0xd474('0x35')][_0xd474('0x52')](_0x4ccd4a)[_0xd474('0x1a')](handleEntityNotFound(_0x539bbf,null))['then'](respondWithResult(_0x539bbf,null))['catch'](handleError(_0x539bbf,null));};exports[_0xd474('0x53')]=function(_0x3f9b04,_0x4b110b){return db[_0xd474('0x35')]['create'](_0x3f9b04['body'],{})[_0xd474('0x1a')](respondWithResult(_0x4b110b,0xc9))[_0xd474('0x24')](handleError(_0x4b110b,null));};exports[_0xd474('0x2d')]=function(_0x256e5c,_0xc0d7da){if(_0x256e5c[_0xd474('0x54')]['id']){delete _0x256e5c[_0xd474('0x54')]['id'];}return db['SugarcrmAccount'][_0xd474('0x52')]({'where':{'id':_0x256e5c[_0xd474('0x50')]['id']}})[_0xd474('0x1a')](handleEntityNotFound(_0xc0d7da,null))['then'](saveUpdates(_0x256e5c[_0xd474('0x54')],null))[_0xd474('0x1a')](respondWithResult(_0xc0d7da,null))[_0xd474('0x24')](handleError(_0xc0d7da,null));};exports[_0xd474('0x2e')]=function(_0x451752,_0x347034){return db[_0xd474('0x35')][_0xd474('0x52')]({'where':{'id':_0x451752[_0xd474('0x50')]['id']}})[_0xd474('0x1a')](handleEntityNotFound(_0x347034,null))['then'](removeEntity(_0x347034,null))[_0xd474('0x24')](handleError(_0x347034,null));};exports[_0xd474('0x55')]=function(_0x294e8b,_0x271690,_0x2ff48f){var _0x3c9619={};var _0x58ad1a={};var _0x4774b6;var _0x3096ea;return db[_0xd474('0x35')]['findOne']({'where':{'id':_0x294e8b[_0xd474('0x50')]['id']}})[_0xd474('0x1a')](handleEntityNotFound(_0x271690,null))[_0xd474('0x1a')](function(_0x1d957d){if(_0x1d957d){_0x4774b6=_0x1d957d;_0x58ad1a[_0xd474('0x3a')]=_[_0xd474('0x51')](db[_0xd474('0x56')][_0xd474('0x36')]);_0x58ad1a['query']=_[_0xd474('0x51')](_0x294e8b[_0xd474('0x3b')]);_0x58ad1a[_0xd474('0x3c')]=_[_0xd474('0x3e')](_0x58ad1a[_0xd474('0x3a')],_0x58ad1a[_0xd474('0x3b')]);_0x3c9619[_0xd474('0x3d')]=_['intersection'](_0x58ad1a[_0xd474('0x3a')],qs['fields'](_0x294e8b[_0xd474('0x3b')][_0xd474('0x3f')]));_0x3c9619[_0xd474('0x3d')]=_0x3c9619[_0xd474('0x3d')][_0xd474('0x40')]?_0x3c9619['attributes']:_0x58ad1a[_0xd474('0x3a')];_0x3c9619[_0xd474('0x43')]=qs[_0xd474('0x44')](_0x294e8b['query']['sort']);_0x3c9619[_0xd474('0x47')]=qs[_0xd474('0x3c')](_[_0xd474('0x45')](_0x294e8b[_0xd474('0x3b')],_0x58ad1a[_0xd474('0x3c')]));if(_0x294e8b[_0xd474('0x3b')][_0xd474('0x46')]){_0x3c9619['where']=_['merge'](_0x3c9619[_0xd474('0x47')],{'$or':_[_0xd474('0x34')](_0x3c9619[_0xd474('0x3d')],function(_0x4cb7b7){var _0x3201bb={};_0x3201bb[_0x4cb7b7]={'$like':'%'+_0x294e8b['query'][_0xd474('0x46')]+'%'};return _0x3201bb;})});}_0x3c9619=_[_0xd474('0x48')]({},_0x3c9619,_0x294e8b[_0xd474('0x4a')]);return _0x4774b6[_0xd474('0x55')](_0x3c9619);}})[_0xd474('0x1a')](function(_0x4e657e){if(_0x4e657e){_0x3096ea=_0x4e657e[_0xd474('0x40')];if(!_0x294e8b[_0xd474('0x3b')][_0xd474('0x41')](_0xd474('0x42'))){_0x3c9619[_0xd474('0x29')]=qs[_0xd474('0x29')](_0x294e8b[_0xd474('0x3b')][_0xd474('0x29')]);_0x3c9619[_0xd474('0x28')]=qs[_0xd474('0x28')](_0x294e8b[_0xd474('0x3b')]['offset']);}return _0x4774b6[_0xd474('0x55')](_0x3c9619);}})[_0xd474('0x1a')](function(_0x3c6782){if(_0x3c6782){return _0x3c6782?{'count':_0x3096ea,'rows':_0x3c6782}:null;}})[_0xd474('0x1a')](respondWithResult(_0x271690,null))[_0xd474('0x24')](handleError(_0x271690,null));};exports[_0xd474('0x57')]=function(_0x32a383,_0x405a78,_0xf250c6){if(_0x32a383['body']['id']){delete _0x32a383[_0xd474('0x54')]['id'];}return db['SugarcrmAccount'][_0xd474('0x58')]({'where':{'id':_0x32a383[_0xd474('0x50')]['id']}})[_0xd474('0x1a')](handleEntityNotFound(_0x405a78,null))[_0xd474('0x1a')](function(_0x1fb200){if(_0x1fb200){_0x32a383[_0xd474('0x54')][_0xd474('0x59')]=_0x1fb200['id'];_0x32a383['body'][_0xd474('0x5a')]=integrations[_0xd474('0x5b')](_0x32a383[_0xd474('0x54')][_0xd474('0x5c')],_0x32a383[_0xd474('0x54')][_0xd474('0x38')]);_0x32a383['body'][_0xd474('0x5d')]=integrations[_0xd474('0x5e')](_0x32a383[_0xd474('0x54')][_0xd474('0x5c')],_0x32a383[_0xd474('0x54')][_0xd474('0x38')]);return db[_0xd474('0x56')][_0xd474('0x53')](_0x32a383[_0xd474('0x54')],{'include':[{'model':db['SugarcrmField'],'as':'Subjects'},{'model':db[_0xd474('0x5f')],'as':_0xd474('0x5d')}]});}return null;})[_0xd474('0x1a')](respondWithResult(_0x405a78,null))['catch'](handleError(_0x405a78,null));};exports[_0xd474('0x60')]=function(_0x5ed2bb,_0x138202,_0x2b5e0e){var _0x627245='';var _0x1c2a1a=['id',_0xd474('0x31'),_0xd474('0x61'),_0xd474('0x62'),'description',_0xd474('0x63'),'duration_hours',_0xd474('0x64'),_0xd474('0x65'),'parent_type','parent_name',_0xd474('0x66')];return db[_0xd474('0x35')][_0xd474('0x58')]({'where':{'id':_0x5ed2bb[_0xd474('0x50')]['id']},'attributes':['id',_0xd474('0x67'),_0xd474('0x68'),_0xd474('0x69')]})['then'](handleEntityNotFound(_0x138202,null))[_0xd474('0x1a')](function(_0x39f7b2){if(_0x39f7b2){_0x627245=_0x39f7b2[_0xd474('0x69')];var _0x593051=_0x627245[_0xd474('0x6a')](-0x1);if(_0x593051==='/'){_0x627245=_0x627245['substring'](0x0,_0x627245['lastIndexOf'](_0x593051));}return rp({'method':_0xd474('0x6b'),'uri':util[_0xd474('0x6c')](_0xd474('0x6d'),_0x627245,'/service/v4_1/rest.php'),'json':!![],'form':{'method':'login','input_type':'JSON','response_type':_0xd474('0x6e'),'rest_data':JSON[_0xd474('0x1e')]({'user_auth':{'user_name':_0x39f7b2['username'],'password':_0x39f7b2[_0xd474('0x68')],'encryption':_0xd474('0x6f')},'application':_0xd474('0x70')})}});}})[_0xd474('0x1a')](function(_0x46c012){if(_0x46c012&&_0x46c012['name']!==_0xd474('0x71')&&_0x46c012['name']!==_0xd474('0x72')){return rp({'method':_0xd474('0x6b'),'uri':util[_0xd474('0x6c')](_0xd474('0x6d'),_0x627245,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0xd474('0x73'),'input_type':_0xd474('0x6e'),'response_type':_0xd474('0x6e'),'rest_data':JSON[_0xd474('0x1e')]({'session':_0x46c012['id'],'module_name':_0xd474('0x74')})}})[_0xd474('0x1a')](function(_0x253055){if(_0x253055){var _0x3b027e=_['values'](_0x253055[_0xd474('0x75')]);_[_0xd474('0x76')](_0x3b027e,function(_0x201a8b){return _0x1c2a1a[_0xd474('0x77')](_0x201a8b[_0xd474('0x31')]);});return{'count':_0x3b027e['length'],'rows':_['map'](_0x3b027e,function(_0x1ba1bc){return{'id':_0x1ba1bc[_0xd474('0x31')],'name':_0x1ba1bc[_0xd474('0x78')],'custom':_['endsWith'](_0x1ba1bc[_0xd474('0x31')],'_c')?!![]:![],'options':_0x1ba1bc[_0xd474('0x4a')]?_['map'](_[_0xd474('0x79')](_0x1ba1bc[_0xd474('0x4a')]),function(_0x1e4857){return{'name':_0x1e4857[_0xd474('0x7a')],'value':_0x1e4857[_0xd474('0x31')]};}):[]};})};}})['then'](respondWithResult(_0x138202,null))[_0xd474('0x24')](function(_0x5555b0){var _0x31e8c5=_0x5ed2bb[_0xd474('0x3b')][_0xd474('0x7b')]?0x1f4:_0x5555b0[_0xd474('0x7c')]||0x1f4;logger[_0xd474('0x1f')]('getFields,\x20%s,\x20%s,\x20%s',_0xd474('0x60'),_0x31e8c5,JSON[_0xd474('0x1e')](_0x5555b0));delete _0x5555b0['name'];if(_0x31e8c5===0x191){_0x31e8c5=0x190;}_0x138202[_0xd474('0x25')](_0x31e8c5)[_0xd474('0x32')](_0x5ed2bb[_0xd474('0x3b')][_0xd474('0x7b')]?{'message':_0xd474('0x7d'),'statusCode':_0x5555b0[_0xd474('0x7c')]}:_0x5555b0);});}else{var _0x110803=0x1f4;_0x138202['status'](_0x110803)[_0xd474('0x32')]({'message':'Wrong\x20credentials','statusCode':0x190});}});};