Built motion from commit (unavailable).|2.5.9
[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 _0xec8c=['pick','options','getConfigurations','hasOwnProperty','addConfiguration','findOne','AccountId','channel','getDescriptions','SugarcrmField','Subjects','Descriptions','getFields','assigned_user_id','created_by','duration_hours','duration_minutes','parent_type','parent_name','direction','username','remoteUri','slice','substring','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','PLAIN','Password\x20Expired','get_module_fields','Calls','values','map','value','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','client','http','request','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','SugarcrmAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','end','status','json','offset','apply','reject','save','then','destroy','sendStatus','stack','name','index','SugarcrmAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','nolimit','limit','sort','where','merge','VIRTUAL','filter','count','includeAll','include','findAll','rows','params','length','find','body','update','SugarcrmConfiguration','order'];(function(_0x3ead11,_0x4b2c56){var _0x16fa24=function(_0x19ad43){while(--_0x19ad43){_0x3ead11['push'](_0x3ead11['shift']());}};_0x16fa24(++_0x4b2c56);}(_0xec8c,0x19f));var _0xcec8=function(_0x1306e9,_0x4fd1ce){_0x1306e9=_0x1306e9-0x0;var _0x15eafb=_0xec8c[_0x1306e9];return _0x15eafb;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xcec8('0x0'));var rimraf=require(_0xcec8('0x1'));var zipdir=require(_0xcec8('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xcec8('0x3'));var moment=require(_0xcec8('0x4'));var BPromise=require(_0xcec8('0x5'));var Mustache=require(_0xcec8('0x6'));var util=require(_0xcec8('0x7'));var path=require(_0xcec8('0x8'));var sox=require(_0xcec8('0x9'));var csv=require(_0xcec8('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xcec8('0xb'));var squel=require(_0xcec8('0xc'));var crypto=require('crypto');var jsforce=require(_0xcec8('0xd'));var deskjs=require(_0xcec8('0xe'));var toCsv=require(_0xcec8('0xa'));var querystring=require(_0xcec8('0xf'));var Papa=require(_0xcec8('0x10'));var Redis=require('ioredis');var authService=require(_0xcec8('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xcec8('0x12'));var logger=require('../../config/logger')(_0xcec8('0x13'));var utils=require(_0xcec8('0x14'));var config=require(_0xcec8('0x15'));var licenseUtil=require(_0xcec8('0x16'));var db=require(_0xcec8('0x17'))['db'];var integrations=require(_0xcec8('0x18'));var jayson=require('jayson/promise');var client=jayson[_0xcec8('0x19')][_0xcec8('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x405382,_0x373def,_0x322c97,_0x5a25bc){return new BPromise(function(_0x4d0115,_0x457a17){var _0x57477b=_0x5a25bc||client;return _0x57477b[_0xcec8('0x1b')](_0x405382,_0x322c97)['then'](function(_0x4c5a0c){logger['info'](_0xcec8('0x1c'),_0x373def,_0xcec8('0x1d'));logger['debug'](_0xcec8('0x1e'),_0x373def,_0xcec8('0x1d'),JSON[_0xcec8('0x1f')](_0x4c5a0c));if(_0x4c5a0c[_0xcec8('0x20')]){if(_0x4c5a0c['error']['code']===0x1f4){logger[_0xcec8('0x20')](_0xcec8('0x1c'),_0x373def,_0x4c5a0c[_0xcec8('0x20')][_0xcec8('0x21')]);return _0x457a17(_0x4c5a0c[_0xcec8('0x20')]['message']);}logger['error'](_0xcec8('0x1c'),_0x373def,_0x4c5a0c[_0xcec8('0x20')][_0xcec8('0x21')]);return _0x4d0115(_0x4c5a0c['error'][_0xcec8('0x21')]);}else{logger[_0xcec8('0x22')](_0xcec8('0x1c'),_0x373def,_0xcec8('0x1d'));_0x4d0115(_0x4c5a0c[_0xcec8('0x23')]['message']);}})[_0xcec8('0x24')](function(_0xccb1e7){logger[_0xcec8('0x20')](_0xcec8('0x1c'),_0x373def,_0xccb1e7);_0x457a17(_0xccb1e7);});});}function respondWithStatusCode(_0x16b9b3,_0x4f229c){_0x4f229c=_0x4f229c||0xcc;return function(_0x1a4e34){if(_0x1a4e34){return _0x16b9b3['sendStatus'](_0x4f229c);}return _0x16b9b3['status'](_0x4f229c)[_0xcec8('0x25')]();};}function respondWithResult(_0x4527f2,_0x5d34e6){_0x5d34e6=_0x5d34e6||0xc8;return function(_0x452770){if(_0x452770){return _0x4527f2[_0xcec8('0x26')](_0x5d34e6)[_0xcec8('0x27')](_0x452770);}};}function respondWithFilteredResult(_0x48337d,_0x1e86c7){return function(_0x26c7c3){if(_0x26c7c3){var _0x5016fb=_0x26c7c3['count'],_0x1f69e8=_0x1e86c7[_0xcec8('0x28')],_0x28d2bb=_0x1e86c7[_0xcec8('0x28')]+_0x1e86c7['limit'],_0x261c2a;if(_0x28d2bb>=_0x5016fb){_0x28d2bb=_0x5016fb;_0x261c2a=0xc8;}else{_0x261c2a=0xce;}_0x48337d[_0xcec8('0x26')](_0x261c2a);return _0x48337d['set']('Content-Range',_0x1f69e8+'-'+_0x28d2bb+'/'+_0x5016fb)[_0xcec8('0x27')](_0x26c7c3);}return null;};}function patchUpdates(_0x496e26){return function(_0x4ef9c5){try{jsonpatch[_0xcec8('0x29')](_0x4ef9c5,_0x496e26,!![]);}catch(_0x1b8c17){return BPromise[_0xcec8('0x2a')](_0x1b8c17);}return _0x4ef9c5[_0xcec8('0x2b')]();};}function saveUpdates(_0x561434,_0x1779b4){return function(_0x2ec472){if(_0x2ec472){return _0x2ec472['update'](_0x561434)[_0xcec8('0x2c')](function(_0x32c3d2){return _0x32c3d2;});}return null;};}function removeEntity(_0x1cc0d8,_0x42c47d){return function(_0x15c9ed){if(_0x15c9ed){return _0x15c9ed[_0xcec8('0x2d')]()[_0xcec8('0x2c')](function(){_0x1cc0d8[_0xcec8('0x26')](0xcc)[_0xcec8('0x25')]();});}};}function handleEntityNotFound(_0x220536,_0x4b2451){return function(_0x3a367d){if(!_0x3a367d){_0x220536[_0xcec8('0x2e')](0x194);}return _0x3a367d;};}function handleError(_0x2a03de,_0x335091){_0x335091=_0x335091||0x1f4;return function(_0x61312a){logger[_0xcec8('0x20')](_0x61312a[_0xcec8('0x2f')]);if(_0x61312a[_0xcec8('0x30')]){delete _0x61312a['name'];}_0x2a03de[_0xcec8('0x26')](_0x335091)['send'](_0x61312a);};}exports[_0xcec8('0x31')]=function(_0x23cfff,_0x384697){var _0x34799d={},_0x1e21d6={},_0x15c3c5={'count':0x0,'rows':[]};var _0x4ce62d=_['map'](db[_0xcec8('0x32')][_0xcec8('0x33')],function(_0x117002){return{'name':_0x117002[_0xcec8('0x34')],'type':_0x117002[_0xcec8('0x35')][_0xcec8('0x36')]};});_0x1e21d6[_0xcec8('0x37')]=_['map'](_0x4ce62d,_0xcec8('0x30'));_0x1e21d6[_0xcec8('0x38')]=_[_0xcec8('0x39')](_0x23cfff['query']);_0x1e21d6[_0xcec8('0x3a')]=_[_0xcec8('0x3b')](_0x1e21d6[_0xcec8('0x37')],_0x1e21d6[_0xcec8('0x38')]);_0x34799d[_0xcec8('0x3c')]=_[_0xcec8('0x3b')](_0x1e21d6[_0xcec8('0x37')],qs['fields'](_0x23cfff[_0xcec8('0x38')][_0xcec8('0x3d')]));_0x34799d[_0xcec8('0x3c')]=_0x34799d['attributes']['length']?_0x34799d[_0xcec8('0x3c')]:_0x1e21d6[_0xcec8('0x37')];if(!_0x23cfff[_0xcec8('0x38')]['hasOwnProperty'](_0xcec8('0x3e'))){_0x34799d[_0xcec8('0x3f')]=qs['limit'](_0x23cfff[_0xcec8('0x38')][_0xcec8('0x3f')]);_0x34799d['offset']=qs[_0xcec8('0x28')](_0x23cfff[_0xcec8('0x38')][_0xcec8('0x28')]);}_0x34799d['order']=qs[_0xcec8('0x40')](_0x23cfff['query'][_0xcec8('0x40')]);_0x34799d[_0xcec8('0x41')]=qs['filters'](_['pick'](_0x23cfff[_0xcec8('0x38')],_0x1e21d6[_0xcec8('0x3a')]),_0x4ce62d);if(_0x23cfff['query']['filter']){_0x34799d[_0xcec8('0x41')]=_[_0xcec8('0x42')](_0x34799d[_0xcec8('0x41')],{'$or':_['map'](_0x4ce62d,function(_0x300a1b){if(_0x300a1b[_0xcec8('0x35')]!==_0xcec8('0x43')){var _0x23519a={};_0x23519a[_0x300a1b[_0xcec8('0x30')]]={'$like':'%'+_0x23cfff[_0xcec8('0x38')][_0xcec8('0x44')]+'%'};return _0x23519a;}})});}_0x34799d=_[_0xcec8('0x42')]({},_0x34799d,_0x23cfff['options']);var _0x57e8b5={'where':_0x34799d[_0xcec8('0x41')]};return db[_0xcec8('0x32')][_0xcec8('0x45')](_0x57e8b5)[_0xcec8('0x2c')](function(_0xd28f92){_0x15c3c5['count']=_0xd28f92;if(_0x23cfff['query'][_0xcec8('0x46')]){_0x34799d[_0xcec8('0x47')]=[{'all':!![]}];}return db['SugarcrmAccount'][_0xcec8('0x48')](_0x34799d);})[_0xcec8('0x2c')](function(_0x7e3ecc){_0x15c3c5[_0xcec8('0x49')]=_0x7e3ecc;return _0x15c3c5;})['then'](respondWithFilteredResult(_0x384697,_0x34799d))[_0xcec8('0x24')](handleError(_0x384697,null));};exports['show']=function(_0x2b3ac8,_0x1c6ea5){var _0x6d02ad={'raw':![],'where':{'id':_0x2b3ac8[_0xcec8('0x4a')]['id']}},_0x3aff42={};_0x3aff42['model']=_['keys'](db[_0xcec8('0x32')][_0xcec8('0x33')]);_0x3aff42[_0xcec8('0x38')]=_[_0xcec8('0x39')](_0x2b3ac8['query']);_0x3aff42[_0xcec8('0x3a')]=_[_0xcec8('0x3b')](_0x3aff42[_0xcec8('0x37')],_0x3aff42['query']);_0x6d02ad['attributes']=_[_0xcec8('0x3b')](_0x3aff42[_0xcec8('0x37')],qs[_0xcec8('0x3d')](_0x2b3ac8[_0xcec8('0x38')][_0xcec8('0x3d')]));_0x6d02ad[_0xcec8('0x3c')]=_0x6d02ad['attributes'][_0xcec8('0x4b')]?_0x6d02ad[_0xcec8('0x3c')]:_0x3aff42[_0xcec8('0x37')];if(_0x2b3ac8[_0xcec8('0x38')][_0xcec8('0x46')]){_0x6d02ad[_0xcec8('0x47')]=[{'all':!![]}];}_0x6d02ad=_[_0xcec8('0x42')]({},_0x6d02ad,_0x2b3ac8['options']);return db[_0xcec8('0x32')][_0xcec8('0x4c')](_0x6d02ad)[_0xcec8('0x2c')](handleEntityNotFound(_0x1c6ea5,null))[_0xcec8('0x2c')](respondWithResult(_0x1c6ea5,null))[_0xcec8('0x24')](handleError(_0x1c6ea5,null));};exports['create']=function(_0x49eb09,_0x812b1){return db[_0xcec8('0x32')]['create'](_0x49eb09[_0xcec8('0x4d')],{})[_0xcec8('0x2c')](respondWithResult(_0x812b1,0xc9))[_0xcec8('0x24')](handleError(_0x812b1,null));};exports[_0xcec8('0x4e')]=function(_0x285095,_0x293aa3){if(_0x285095['body']['id']){delete _0x285095[_0xcec8('0x4d')]['id'];}return db[_0xcec8('0x32')]['find']({'where':{'id':_0x285095[_0xcec8('0x4a')]['id']}})[_0xcec8('0x2c')](handleEntityNotFound(_0x293aa3,null))[_0xcec8('0x2c')](saveUpdates(_0x285095['body'],null))[_0xcec8('0x2c')](respondWithResult(_0x293aa3,null))['catch'](handleError(_0x293aa3,null));};exports[_0xcec8('0x2d')]=function(_0x26e4f3,_0x14b84e){return db[_0xcec8('0x32')]['find']({'where':{'id':_0x26e4f3['params']['id']}})[_0xcec8('0x2c')](handleEntityNotFound(_0x14b84e,null))[_0xcec8('0x2c')](removeEntity(_0x14b84e,null))['catch'](handleError(_0x14b84e,null));};exports['getConfigurations']=function(_0x3bc9ae,_0x10cda9,_0x38146a){var _0x17f93d={};var _0x230815={};var _0x4accfd;var _0x18f67b;return db[_0xcec8('0x32')]['findOne']({'where':{'id':_0x3bc9ae[_0xcec8('0x4a')]['id']}})[_0xcec8('0x2c')](handleEntityNotFound(_0x10cda9,null))[_0xcec8('0x2c')](function(_0x1d359c){if(_0x1d359c){_0x4accfd=_0x1d359c;_0x230815[_0xcec8('0x37')]=_[_0xcec8('0x39')](db[_0xcec8('0x4f')]['rawAttributes']);_0x230815[_0xcec8('0x38')]=_[_0xcec8('0x39')](_0x3bc9ae['query']);_0x230815['filters']=_['intersection'](_0x230815[_0xcec8('0x37')],_0x230815[_0xcec8('0x38')]);_0x17f93d[_0xcec8('0x3c')]=_[_0xcec8('0x3b')](_0x230815[_0xcec8('0x37')],qs[_0xcec8('0x3d')](_0x3bc9ae['query']['fields']));_0x17f93d[_0xcec8('0x3c')]=_0x17f93d[_0xcec8('0x3c')][_0xcec8('0x4b')]?_0x17f93d[_0xcec8('0x3c')]:_0x230815['model'];_0x17f93d[_0xcec8('0x50')]=qs[_0xcec8('0x40')](_0x3bc9ae['query'][_0xcec8('0x40')]);_0x17f93d['where']=qs[_0xcec8('0x3a')](_[_0xcec8('0x51')](_0x3bc9ae[_0xcec8('0x38')],_0x230815[_0xcec8('0x3a')]));if(_0x3bc9ae[_0xcec8('0x38')]['filter']){_0x17f93d['where']=_[_0xcec8('0x42')](_0x17f93d[_0xcec8('0x41')],{'$or':_['map'](_0x17f93d[_0xcec8('0x3c')],function(_0x922924){var _0x46c3d5={};_0x46c3d5[_0x922924]={'$like':'%'+_0x3bc9ae[_0xcec8('0x38')]['filter']+'%'};return _0x46c3d5;})});}_0x17f93d=_['merge']({},_0x17f93d,_0x3bc9ae[_0xcec8('0x52')]);return _0x4accfd[_0xcec8('0x53')](_0x17f93d);}})['then'](function(_0x42316e){if(_0x42316e){_0x18f67b=_0x42316e[_0xcec8('0x4b')];if(!_0x3bc9ae[_0xcec8('0x38')][_0xcec8('0x54')](_0xcec8('0x3e'))){_0x17f93d['limit']=qs[_0xcec8('0x3f')](_0x3bc9ae[_0xcec8('0x38')][_0xcec8('0x3f')]);_0x17f93d['offset']=qs[_0xcec8('0x28')](_0x3bc9ae[_0xcec8('0x38')]['offset']);}return _0x4accfd[_0xcec8('0x53')](_0x17f93d);}})[_0xcec8('0x2c')](function(_0x28bcea){if(_0x28bcea){return _0x28bcea?{'count':_0x18f67b,'rows':_0x28bcea}:null;}})[_0xcec8('0x2c')](respondWithResult(_0x10cda9,null))[_0xcec8('0x24')](handleError(_0x10cda9,null));};exports[_0xcec8('0x55')]=function(_0x4cd008,_0x15f5fd,_0x143eb0){if(_0x4cd008['body']['id']){delete _0x4cd008['body']['id'];}return db['SugarcrmAccount'][_0xcec8('0x56')]({'where':{'id':_0x4cd008[_0xcec8('0x4a')]['id']}})[_0xcec8('0x2c')](handleEntityNotFound(_0x15f5fd,null))[_0xcec8('0x2c')](function(_0x104327){if(_0x104327){_0x4cd008[_0xcec8('0x4d')][_0xcec8('0x57')]=_0x104327['id'];_0x4cd008['body']['Subjects']=integrations['getSubjects'](_0x4cd008[_0xcec8('0x4d')][_0xcec8('0x58')],_0x4cd008[_0xcec8('0x4d')]['type']);_0x4cd008[_0xcec8('0x4d')]['Descriptions']=integrations[_0xcec8('0x59')](_0x4cd008[_0xcec8('0x4d')]['channel'],_0x4cd008[_0xcec8('0x4d')][_0xcec8('0x35')]);return db[_0xcec8('0x4f')]['create'](_0x4cd008['body'],{'include':[{'model':db[_0xcec8('0x5a')],'as':_0xcec8('0x5b')},{'model':db[_0xcec8('0x5a')],'as':_0xcec8('0x5c')}]});}return null;})['then'](respondWithResult(_0x15f5fd,null))['catch'](handleError(_0x15f5fd,null));};exports[_0xcec8('0x5d')]=function(_0x2c7b68,_0x156701,_0x187ee8){var _0x413c9c='';var _0x599932=['id',_0xcec8('0x30'),_0xcec8('0x5e'),_0xcec8('0x5f'),'description','date_start',_0xcec8('0x60'),_0xcec8('0x61'),'parent_id',_0xcec8('0x62'),_0xcec8('0x63'),_0xcec8('0x64')];return db[_0xcec8('0x32')][_0xcec8('0x56')]({'where':{'id':_0x2c7b68[_0xcec8('0x4a')]['id']},'attributes':['id',_0xcec8('0x65'),'password',_0xcec8('0x66')]})[_0xcec8('0x2c')](handleEntityNotFound(_0x156701,null))[_0xcec8('0x2c')](function(_0x1e35b8){if(_0x1e35b8){_0x413c9c=_0x1e35b8[_0xcec8('0x66')];var _0x24cdf3=_0x413c9c[_0xcec8('0x67')](-0x1);if(_0x24cdf3==='/'){_0x413c9c=_0x413c9c[_0xcec8('0x68')](0x0,_0x413c9c[_0xcec8('0x69')](_0x24cdf3));}return rp({'method':_0xcec8('0x6a'),'uri':util[_0xcec8('0x6b')](_0xcec8('0x6c'),_0x413c9c,_0xcec8('0x6d')),'json':!![],'form':{'method':_0xcec8('0x6e'),'input_type':_0xcec8('0x6f'),'response_type':_0xcec8('0x6f'),'rest_data':JSON[_0xcec8('0x1f')]({'user_auth':{'user_name':_0x1e35b8[_0xcec8('0x65')],'password':_0x1e35b8['password'],'encryption':_0xcec8('0x70')},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0xcec8('0x2c')](function(_0x406ecb){if(_0x406ecb&&_0x406ecb[_0xcec8('0x30')]!=='Invalid\x20Login'&&_0x406ecb['name']!==_0xcec8('0x71')){return rp({'method':'POST','uri':util['format'](_0xcec8('0x6c'),_0x413c9c,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0xcec8('0x72'),'input_type':_0xcec8('0x6f'),'response_type':'JSON','rest_data':JSON[_0xcec8('0x1f')]({'session':_0x406ecb['id'],'module_name':_0xcec8('0x73')})}})['then'](function(_0x5550dd){if(_0x5550dd){var _0xf39c34=_[_0xcec8('0x74')](_0x5550dd['module_fields']);_['remove'](_0xf39c34,function(_0x48b1fb){return _0x599932['includes'](_0x48b1fb[_0xcec8('0x30')]);});return{'count':_0xf39c34[_0xcec8('0x4b')],'rows':_[_0xcec8('0x75')](_0xf39c34,function(_0x1313b9){return{'id':_0x1313b9[_0xcec8('0x30')],'name':_0x1313b9['label'],'custom':_['endsWith'](_0x1313b9['name'],'_c')?!![]:![],'options':_0x1313b9[_0xcec8('0x52')]?_[_0xcec8('0x75')](_['values'](_0x1313b9[_0xcec8('0x52')]),function(_0x19aa89){return{'name':_0x19aa89[_0xcec8('0x76')],'value':_0x19aa89[_0xcec8('0x30')]};}):[]};})};}})['then'](respondWithResult(_0x156701,null))[_0xcec8('0x24')](function(_0x4ce45a){var _0x338d25=_0x2c7b68[_0xcec8('0x38')][_0xcec8('0x77')]?0x1f4:_0x4ce45a[_0xcec8('0x78')]||0x1f4;logger['error'](_0xcec8('0x79'),_0xcec8('0x5d'),_0x338d25,JSON['stringify'](_0x4ce45a));delete _0x4ce45a[_0xcec8('0x30')];if(_0x338d25===0x191){_0x338d25=0x190;}_0x156701[_0xcec8('0x26')](_0x338d25)[_0xcec8('0x7a')](_0x2c7b68[_0xcec8('0x38')]['test']?{'message':_0xcec8('0x7b'),'statusCode':_0x4ce45a[_0xcec8('0x78')]}:_0x4ce45a);});}else{var _0x34436f=0x1f4;_0x156701['status'](_0x34436f)[_0xcec8('0x7a')]({'message':_0xcec8('0x7b'),'statusCode':0x190});}});};