ddf930ad58bdbf087980aabfc1836f85b0b72641
[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 _0x5ad0=['get_module_fields','stringify','Calls','values','module_fields','remove','includes','label','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','undefined','count','offset','limit','set','apply','save','then','destroy','error','stack','name','index','map','fieldName','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','where','pick','filters','filter','merge','type','VIRTUAL','SugarcrmAccount','includeAll','include','findAll','rows','catch','show','params','rawAttributes','options','find','create','body','update','getConfigurations','findOne','order','sort','addConfiguration','AccountId','Subjects','getSubjects','getDescriptions','Descriptions','getFields','assigned_user_id','created_by','description','date_start','duration_hours','duration_minutes','parent_id','parent_name','direction','username','remoteUri','slice','substring','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','password','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login'];(function(_0x6925fa,_0x4e6100){var _0x56d211=function(_0x59fe6d){while(--_0x59fe6d){_0x6925fa['push'](_0x6925fa['shift']());}};_0x56d211(++_0x4e6100);}(_0x5ad0,0x180));var _0x05ad=function(_0x73cc50,_0xad8fea){_0x73cc50=_0x73cc50-0x0;var _0x56859f=_0x5ad0[_0x73cc50];return _0x56859f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x05ad('0x0'));var zipdir=require(_0x05ad('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x05ad('0x2'));var moment=require(_0x05ad('0x3'));var BPromise=require(_0x05ad('0x4'));var Mustache=require(_0x05ad('0x5'));var util=require(_0x05ad('0x6'));var path=require(_0x05ad('0x7'));var sox=require('sox');var csv=require(_0x05ad('0x8'));var ejs=require(_0x05ad('0x9'));var fs=require('fs');var fs_extra=require(_0x05ad('0xa'));var _=require(_0x05ad('0xb'));var squel=require(_0x05ad('0xc'));var crypto=require(_0x05ad('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x05ad('0xe'));var toCsv=require(_0x05ad('0x8'));var querystring=require(_0x05ad('0xf'));var Papa=require(_0x05ad('0x10'));var Redis=require(_0x05ad('0x11'));var authService=require(_0x05ad('0x12'));var qs=require(_0x05ad('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x05ad('0x14'));var logger=require(_0x05ad('0x15'))(_0x05ad('0x16'));var utils=require(_0x05ad('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x05ad('0x18'));var db=require(_0x05ad('0x19'))['db'];var integrations=require(_0x05ad('0x1a'));function respondWithStatusCode(_0xf53f0d,_0x1d176c){_0x1d176c=_0x1d176c||0xcc;return function(_0x43981b){if(_0x43981b){return _0xf53f0d[_0x05ad('0x1b')](_0x1d176c);}return _0xf53f0d[_0x05ad('0x1c')](_0x1d176c)[_0x05ad('0x1d')]();};}function respondWithResult(_0x1dc69e,_0x1b233f){_0x1b233f=_0x1b233f||0xc8;return function(_0x1b0335){if(_0x1b0335){return _0x1dc69e[_0x05ad('0x1c')](_0x1b233f)[_0x05ad('0x1e')](_0x1b0335);}};}function respondWithFilteredResult(_0x217fb6,_0x4c0fd8){return function(_0x20adfa){if(_0x20adfa){var _0x312493=typeof _0x4c0fd8['offset']===_0x05ad('0x1f')&&typeof _0x4c0fd8['limit']===_0x05ad('0x1f');var _0x46f97c=_0x20adfa[_0x05ad('0x20')];var _0x539203=_0x312493?0x0:_0x4c0fd8[_0x05ad('0x21')];var _0x2d820f=_0x312493?_0x20adfa[_0x05ad('0x20')]:_0x4c0fd8[_0x05ad('0x21')]+_0x4c0fd8[_0x05ad('0x22')];var _0x20d204;if(_0x2d820f>=_0x46f97c){_0x2d820f=_0x46f97c;_0x20d204=0xc8;}else{_0x20d204=0xce;}_0x217fb6[_0x05ad('0x1c')](_0x20d204);return _0x217fb6[_0x05ad('0x23')]('Content-Range',_0x539203+'-'+_0x2d820f+'/'+_0x46f97c)[_0x05ad('0x1e')](_0x20adfa);}return null;};}function patchUpdates(_0x236ab8){return function(_0x550534){try{jsonpatch[_0x05ad('0x24')](_0x550534,_0x236ab8,!![]);}catch(_0x231a2f){return BPromise['reject'](_0x231a2f);}return _0x550534[_0x05ad('0x25')]();};}function saveUpdates(_0x67b7c4,_0xfc86d4){return function(_0x3baf30){if(_0x3baf30){return _0x3baf30['update'](_0x67b7c4)[_0x05ad('0x26')](function(_0x56be3d){return _0x56be3d;});}return null;};}function removeEntity(_0x449b0f,_0x5a4806){return function(_0x4fdbc1){if(_0x4fdbc1){return _0x4fdbc1[_0x05ad('0x27')]()[_0x05ad('0x26')](function(){_0x449b0f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5c5fd1,_0x5ebfd9){return function(_0x97ea61){if(!_0x97ea61){_0x5c5fd1[_0x05ad('0x1b')](0x194);}return _0x97ea61;};}function handleError(_0x52a10a,_0xa76b7){_0xa76b7=_0xa76b7||0x1f4;return function(_0x52fa0a){logger[_0x05ad('0x28')](_0x52fa0a[_0x05ad('0x29')]);if(_0x52fa0a[_0x05ad('0x2a')]){delete _0x52fa0a['name'];}_0x52a10a['status'](_0xa76b7)['send'](_0x52fa0a);};}exports[_0x05ad('0x2b')]=function(_0x22b071,_0x5b653c){var _0x1d769c={},_0x11ee81={},_0x577d01={'count':0x0,'rows':[]};var _0x5b5ff7=_[_0x05ad('0x2c')](db['SugarcrmAccount']['rawAttributes'],function(_0x29b021){return{'name':_0x29b021[_0x05ad('0x2d')],'type':_0x29b021['type'][_0x05ad('0x2e')]};});_0x11ee81[_0x05ad('0x2f')]=_[_0x05ad('0x2c')](_0x5b5ff7,_0x05ad('0x2a'));_0x11ee81[_0x05ad('0x30')]=_[_0x05ad('0x31')](_0x22b071[_0x05ad('0x30')]);_0x11ee81['filters']=_[_0x05ad('0x32')](_0x11ee81['model'],_0x11ee81['query']);_0x1d769c[_0x05ad('0x33')]=_[_0x05ad('0x32')](_0x11ee81['model'],qs['fields'](_0x22b071[_0x05ad('0x30')][_0x05ad('0x34')]));_0x1d769c['attributes']=_0x1d769c[_0x05ad('0x33')][_0x05ad('0x35')]?_0x1d769c[_0x05ad('0x33')]:_0x11ee81['model'];if(!_0x22b071[_0x05ad('0x30')][_0x05ad('0x36')](_0x05ad('0x37'))){_0x1d769c[_0x05ad('0x22')]=qs[_0x05ad('0x22')](_0x22b071[_0x05ad('0x30')][_0x05ad('0x22')]);_0x1d769c[_0x05ad('0x21')]=qs['offset'](_0x22b071[_0x05ad('0x30')][_0x05ad('0x21')]);}_0x1d769c['order']=qs['sort'](_0x22b071[_0x05ad('0x30')]['sort']);_0x1d769c[_0x05ad('0x38')]=qs['filters'](_[_0x05ad('0x39')](_0x22b071['query'],_0x11ee81[_0x05ad('0x3a')]),_0x5b5ff7);if(_0x22b071[_0x05ad('0x30')][_0x05ad('0x3b')]){_0x1d769c['where']=_[_0x05ad('0x3c')](_0x1d769c[_0x05ad('0x38')],{'$or':_['map'](_0x5b5ff7,function(_0x19f8c3){if(_0x19f8c3[_0x05ad('0x3d')]!==_0x05ad('0x3e')){var _0x1f1f51={};_0x1f1f51[_0x19f8c3['name']]={'$like':'%'+_0x22b071[_0x05ad('0x30')][_0x05ad('0x3b')]+'%'};return _0x1f1f51;}})});}_0x1d769c=_[_0x05ad('0x3c')]({},_0x1d769c,_0x22b071['options']);var _0x17655f={'where':_0x1d769c[_0x05ad('0x38')]};return db[_0x05ad('0x3f')][_0x05ad('0x20')](_0x17655f)['then'](function(_0x59b5b2){_0x577d01[_0x05ad('0x20')]=_0x59b5b2;if(_0x22b071[_0x05ad('0x30')][_0x05ad('0x40')]){_0x1d769c[_0x05ad('0x41')]=[{'all':!![]}];}return db[_0x05ad('0x3f')][_0x05ad('0x42')](_0x1d769c);})[_0x05ad('0x26')](function(_0x4a41a8){_0x577d01[_0x05ad('0x43')]=_0x4a41a8;return _0x577d01;})[_0x05ad('0x26')](respondWithFilteredResult(_0x5b653c,_0x1d769c))[_0x05ad('0x44')](handleError(_0x5b653c,null));};exports[_0x05ad('0x45')]=function(_0x4d196d,_0x36c199){var _0x4c05d8={'raw':![],'where':{'id':_0x4d196d[_0x05ad('0x46')]['id']}},_0x2f6f2a={};_0x2f6f2a[_0x05ad('0x2f')]=_['keys'](db[_0x05ad('0x3f')][_0x05ad('0x47')]);_0x2f6f2a[_0x05ad('0x30')]=_['keys'](_0x4d196d[_0x05ad('0x30')]);_0x2f6f2a[_0x05ad('0x3a')]=_[_0x05ad('0x32')](_0x2f6f2a[_0x05ad('0x2f')],_0x2f6f2a[_0x05ad('0x30')]);_0x4c05d8[_0x05ad('0x33')]=_[_0x05ad('0x32')](_0x2f6f2a[_0x05ad('0x2f')],qs['fields'](_0x4d196d[_0x05ad('0x30')]['fields']));_0x4c05d8['attributes']=_0x4c05d8[_0x05ad('0x33')][_0x05ad('0x35')]?_0x4c05d8['attributes']:_0x2f6f2a['model'];if(_0x4d196d['query']['includeAll']){_0x4c05d8[_0x05ad('0x41')]=[{'all':!![]}];}_0x4c05d8=_[_0x05ad('0x3c')]({},_0x4c05d8,_0x4d196d[_0x05ad('0x48')]);return db[_0x05ad('0x3f')][_0x05ad('0x49')](_0x4c05d8)['then'](handleEntityNotFound(_0x36c199,null))[_0x05ad('0x26')](respondWithResult(_0x36c199,null))[_0x05ad('0x44')](handleError(_0x36c199,null));};exports[_0x05ad('0x4a')]=function(_0x4cdac0,_0x204b27){return db[_0x05ad('0x3f')][_0x05ad('0x4a')](_0x4cdac0[_0x05ad('0x4b')],{})['then'](respondWithResult(_0x204b27,0xc9))[_0x05ad('0x44')](handleError(_0x204b27,null));};exports[_0x05ad('0x4c')]=function(_0x3c6bb6,_0xdd10c2){if(_0x3c6bb6[_0x05ad('0x4b')]['id']){delete _0x3c6bb6[_0x05ad('0x4b')]['id'];}return db['SugarcrmAccount']['find']({'where':{'id':_0x3c6bb6[_0x05ad('0x46')]['id']}})[_0x05ad('0x26')](handleEntityNotFound(_0xdd10c2,null))[_0x05ad('0x26')](saveUpdates(_0x3c6bb6[_0x05ad('0x4b')],null))[_0x05ad('0x26')](respondWithResult(_0xdd10c2,null))[_0x05ad('0x44')](handleError(_0xdd10c2,null));};exports[_0x05ad('0x27')]=function(_0x342482,_0x14cb81){return db[_0x05ad('0x3f')][_0x05ad('0x49')]({'where':{'id':_0x342482[_0x05ad('0x46')]['id']}})[_0x05ad('0x26')](handleEntityNotFound(_0x14cb81,null))['then'](removeEntity(_0x14cb81,null))[_0x05ad('0x44')](handleError(_0x14cb81,null));};exports[_0x05ad('0x4d')]=function(_0x4f924d,_0x35b4de,_0x4b1416){var _0x32044c={};var _0x266768={};var _0x1f7a30;var _0x42d153;return db[_0x05ad('0x3f')][_0x05ad('0x4e')]({'where':{'id':_0x4f924d[_0x05ad('0x46')]['id']}})[_0x05ad('0x26')](handleEntityNotFound(_0x35b4de,null))[_0x05ad('0x26')](function(_0x5a756d){if(_0x5a756d){_0x1f7a30=_0x5a756d;_0x266768['model']=_[_0x05ad('0x31')](db['SugarcrmConfiguration'][_0x05ad('0x47')]);_0x266768[_0x05ad('0x30')]=_[_0x05ad('0x31')](_0x4f924d[_0x05ad('0x30')]);_0x266768['filters']=_[_0x05ad('0x32')](_0x266768['model'],_0x266768['query']);_0x32044c[_0x05ad('0x33')]=_[_0x05ad('0x32')](_0x266768[_0x05ad('0x2f')],qs[_0x05ad('0x34')](_0x4f924d[_0x05ad('0x30')][_0x05ad('0x34')]));_0x32044c['attributes']=_0x32044c[_0x05ad('0x33')]['length']?_0x32044c[_0x05ad('0x33')]:_0x266768[_0x05ad('0x2f')];_0x32044c[_0x05ad('0x4f')]=qs[_0x05ad('0x50')](_0x4f924d[_0x05ad('0x30')][_0x05ad('0x50')]);_0x32044c[_0x05ad('0x38')]=qs[_0x05ad('0x3a')](_[_0x05ad('0x39')](_0x4f924d['query'],_0x266768[_0x05ad('0x3a')]));if(_0x4f924d[_0x05ad('0x30')][_0x05ad('0x3b')]){_0x32044c[_0x05ad('0x38')]=_[_0x05ad('0x3c')](_0x32044c[_0x05ad('0x38')],{'$or':_[_0x05ad('0x2c')](_0x32044c[_0x05ad('0x33')],function(_0x5dc4f1){var _0x581688={};_0x581688[_0x5dc4f1]={'$like':'%'+_0x4f924d[_0x05ad('0x30')]['filter']+'%'};return _0x581688;})});}_0x32044c=_[_0x05ad('0x3c')]({},_0x32044c,_0x4f924d[_0x05ad('0x48')]);return _0x1f7a30[_0x05ad('0x4d')](_0x32044c);}})[_0x05ad('0x26')](function(_0x80b2bd){if(_0x80b2bd){_0x42d153=_0x80b2bd[_0x05ad('0x35')];if(!_0x4f924d[_0x05ad('0x30')][_0x05ad('0x36')]('nolimit')){_0x32044c[_0x05ad('0x22')]=qs[_0x05ad('0x22')](_0x4f924d['query'][_0x05ad('0x22')]);_0x32044c['offset']=qs[_0x05ad('0x21')](_0x4f924d['query']['offset']);}return _0x1f7a30[_0x05ad('0x4d')](_0x32044c);}})[_0x05ad('0x26')](function(_0x5838df){if(_0x5838df){return _0x5838df?{'count':_0x42d153,'rows':_0x5838df}:null;}})['then'](respondWithResult(_0x35b4de,null))[_0x05ad('0x44')](handleError(_0x35b4de,null));};exports[_0x05ad('0x51')]=function(_0x5d4928,_0x27da03,_0x4b63e7){if(_0x5d4928['body']['id']){delete _0x5d4928[_0x05ad('0x4b')]['id'];}return db[_0x05ad('0x3f')][_0x05ad('0x4e')]({'where':{'id':_0x5d4928['params']['id']}})[_0x05ad('0x26')](handleEntityNotFound(_0x27da03,null))[_0x05ad('0x26')](function(_0x33601a){if(_0x33601a){_0x5d4928['body'][_0x05ad('0x52')]=_0x33601a['id'];_0x5d4928[_0x05ad('0x4b')][_0x05ad('0x53')]=integrations[_0x05ad('0x54')](_0x5d4928[_0x05ad('0x4b')]['channel'],_0x5d4928[_0x05ad('0x4b')][_0x05ad('0x3d')]);_0x5d4928[_0x05ad('0x4b')]['Descriptions']=integrations[_0x05ad('0x55')](_0x5d4928[_0x05ad('0x4b')]['channel'],_0x5d4928[_0x05ad('0x4b')][_0x05ad('0x3d')]);return db['SugarcrmConfiguration']['create'](_0x5d4928['body'],{'include':[{'model':db['SugarcrmField'],'as':_0x05ad('0x53')},{'model':db['SugarcrmField'],'as':_0x05ad('0x56')}]});}return null;})[_0x05ad('0x26')](respondWithResult(_0x27da03,null))[_0x05ad('0x44')](handleError(_0x27da03,null));};exports[_0x05ad('0x57')]=function(_0x2a5d42,_0x3ad660,_0x2a1e77){var _0x24d4b5='';var _0xeeedc0=['id',_0x05ad('0x2a'),_0x05ad('0x58'),_0x05ad('0x59'),_0x05ad('0x5a'),_0x05ad('0x5b'),_0x05ad('0x5c'),_0x05ad('0x5d'),_0x05ad('0x5e'),'parent_type',_0x05ad('0x5f'),_0x05ad('0x60')];return db[_0x05ad('0x3f')][_0x05ad('0x4e')]({'where':{'id':_0x2a5d42['params']['id']},'attributes':['id',_0x05ad('0x61'),'password','remoteUri']})[_0x05ad('0x26')](handleEntityNotFound(_0x3ad660,null))[_0x05ad('0x26')](function(_0x5a0cb5){if(_0x5a0cb5){_0x24d4b5=_0x5a0cb5[_0x05ad('0x62')];var _0xfa71c9=_0x24d4b5[_0x05ad('0x63')](-0x1);if(_0xfa71c9==='/'){_0x24d4b5=_0x24d4b5[_0x05ad('0x64')](0x0,_0x24d4b5[_0x05ad('0x65')](_0xfa71c9));}return rp({'method':_0x05ad('0x66'),'uri':util[_0x05ad('0x67')](_0x05ad('0x68'),_0x24d4b5,_0x05ad('0x69')),'json':!![],'form':{'method':_0x05ad('0x6a'),'input_type':'JSON','response_type':_0x05ad('0x6b'),'rest_data':JSON['stringify']({'user_auth':{'user_name':_0x5a0cb5['username'],'password':_0x5a0cb5[_0x05ad('0x6c')],'encryption':_0x05ad('0x6d')},'application':_0x05ad('0x6e')})}});}})[_0x05ad('0x26')](function(_0x536895){if(_0x536895&&_0x536895[_0x05ad('0x2a')]!==_0x05ad('0x6f')&&_0x536895['name']!=='Password\x20Expired'){return rp({'method':'POST','uri':util[_0x05ad('0x67')](_0x05ad('0x68'),_0x24d4b5,_0x05ad('0x69')),'json':!![],'form':{'method':_0x05ad('0x70'),'input_type':_0x05ad('0x6b'),'response_type':_0x05ad('0x6b'),'rest_data':JSON[_0x05ad('0x71')]({'session':_0x536895['id'],'module_name':_0x05ad('0x72')})}})[_0x05ad('0x26')](function(_0x2039ba){if(_0x2039ba){var _0x49b089=_[_0x05ad('0x73')](_0x2039ba[_0x05ad('0x74')]);_[_0x05ad('0x75')](_0x49b089,function(_0x471a6f){return _0xeeedc0[_0x05ad('0x76')](_0x471a6f[_0x05ad('0x2a')]);});return{'count':_0x49b089[_0x05ad('0x35')],'rows':_[_0x05ad('0x2c')](_0x49b089,function(_0x174f68){return{'id':_0x174f68['name'],'name':_0x174f68[_0x05ad('0x77')],'custom':_['endsWith'](_0x174f68[_0x05ad('0x2a')],'_c')?!![]:![],'options':_0x174f68[_0x05ad('0x48')]?_[_0x05ad('0x2c')](_[_0x05ad('0x73')](_0x174f68[_0x05ad('0x48')]),function(_0x4e2994){return{'name':_0x4e2994['value'],'value':_0x4e2994[_0x05ad('0x2a')]};}):[]};})};}})[_0x05ad('0x26')](respondWithResult(_0x3ad660,null))[_0x05ad('0x44')](function(_0x2d32aa){var _0xa45d80=_0x2a5d42[_0x05ad('0x30')]['test']?0x1f4:_0x2d32aa[_0x05ad('0x78')]||0x1f4;logger['error'](_0x05ad('0x79'),_0x05ad('0x57'),_0xa45d80,JSON[_0x05ad('0x71')](_0x2d32aa));delete _0x2d32aa[_0x05ad('0x2a')];if(_0xa45d80===0x191){_0xa45d80=0x190;}_0x3ad660[_0x05ad('0x1c')](_0xa45d80)[_0x05ad('0x7a')](_0x2a5d42['query']['test']?{'message':'Wrong\x20credentials','statusCode':_0x2d32aa[_0x05ad('0x78')]}:_0x2d32aa);});}else{var _0xb1f42d=0x1f4;_0x3ad660[_0x05ad('0x1c')](_0xb1f42d)[_0x05ad('0x7a')]({'message':_0x05ad('0x7b'),'statusCode':0x190});}});};