5eb9b103706aa45eadcec01fa84b61e3d1c7e3d3
[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 _0x9cbe=['set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','SugarcrmAccount','findAll','catch','show','params','fields','length','includeAll','find','create','body','getConfigurations','findOne','SugarcrmConfiguration','addConfiguration','getSubjects','channel','Descriptions','getDescriptions','SugarcrmField','Subjects','getFields','assigned_user_id','description','date_start','duration_minutes','parent_id','parent_name','direction','username','password','remoteUri','slice','substring','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','get_module_fields','stringify','values','module_fields','includes','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','statusCode','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','end','status','offset','limit','undefined','count'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x9cbe,0xcb));var _0xe9cb=function(_0xfa634c,_0x414e0e){_0xfa634c=_0xfa634c-0x0;var _0x73e478=_0x9cbe[_0xfa634c];return _0x73e478;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe9cb('0x0'));var zipdir=require(_0xe9cb('0x1'));var jsonpatch=require(_0xe9cb('0x2'));var rp=require('request-promise');var moment=require(_0xe9cb('0x3'));var BPromise=require(_0xe9cb('0x4'));var Mustache=require('mustache');var util=require(_0xe9cb('0x5'));var path=require(_0xe9cb('0x6'));var sox=require(_0xe9cb('0x7'));var csv=require('to-csv');var ejs=require(_0xe9cb('0x8'));var fs=require('fs');var fs_extra=require(_0xe9cb('0x9'));var _=require(_0xe9cb('0xa'));var squel=require(_0xe9cb('0xb'));var crypto=require(_0xe9cb('0xc'));var jsforce=require(_0xe9cb('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xe9cb('0xe'));var querystring=require('querystring');var Papa=require(_0xe9cb('0xf'));var Redis=require(_0xe9cb('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xe9cb('0x11'));var hardwareService=require(_0xe9cb('0x12'));var logger=require(_0xe9cb('0x13'))('api');var utils=require(_0xe9cb('0x14'));var config=require(_0xe9cb('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xe9cb('0x16'))['db'];var integrations=require(_0xe9cb('0x17'));function respondWithStatusCode(_0x481516,_0x36f310){_0x36f310=_0x36f310||0xcc;return function(_0x128f57){if(_0x128f57){return _0x481516[_0xe9cb('0x18')](_0x36f310);}return _0x481516['status'](_0x36f310)[_0xe9cb('0x19')]();};}function respondWithResult(_0x1fc4f9,_0x374f9d){_0x374f9d=_0x374f9d||0xc8;return function(_0x5119ec){if(_0x5119ec){return _0x1fc4f9[_0xe9cb('0x1a')](_0x374f9d)['json'](_0x5119ec);}};}function respondWithFilteredResult(_0x56a291,_0x1da900){return function(_0x40005e){if(_0x40005e){var _0x10207e=typeof _0x1da900[_0xe9cb('0x1b')]==='undefined'&&typeof _0x1da900[_0xe9cb('0x1c')]===_0xe9cb('0x1d');var _0x41c390=_0x40005e['count'];var _0x57b73b=_0x10207e?0x0:_0x1da900[_0xe9cb('0x1b')];var _0x2a66ca=_0x10207e?_0x40005e[_0xe9cb('0x1e')]:_0x1da900[_0xe9cb('0x1b')]+_0x1da900[_0xe9cb('0x1c')];var _0x52ae90;if(_0x2a66ca>=_0x41c390){_0x2a66ca=_0x41c390;_0x52ae90=0xc8;}else{_0x52ae90=0xce;}_0x56a291[_0xe9cb('0x1a')](_0x52ae90);return _0x56a291[_0xe9cb('0x1f')](_0xe9cb('0x20'),_0x57b73b+'-'+_0x2a66ca+'/'+_0x41c390)['json'](_0x40005e);}return null;};}function patchUpdates(_0x2234b7){return function(_0x38929d){try{jsonpatch[_0xe9cb('0x21')](_0x38929d,_0x2234b7,!![]);}catch(_0x538138){return BPromise[_0xe9cb('0x22')](_0x538138);}return _0x38929d[_0xe9cb('0x23')]();};}function saveUpdates(_0x2dc742,_0x420bfa){return function(_0x110f4c){if(_0x110f4c){return _0x110f4c[_0xe9cb('0x24')](_0x2dc742)[_0xe9cb('0x25')](function(_0x51549d){return _0x51549d;});}return null;};}function removeEntity(_0x47a819,_0xc731da){return function(_0x62f13d){if(_0x62f13d){return _0x62f13d[_0xe9cb('0x26')]()[_0xe9cb('0x25')](function(){_0x47a819[_0xe9cb('0x1a')](0xcc)[_0xe9cb('0x19')]();});}};}function handleEntityNotFound(_0x2d18e0,_0xb18161){return function(_0x3dd65c){if(!_0x3dd65c){_0x2d18e0[_0xe9cb('0x18')](0x194);}return _0x3dd65c;};}function handleError(_0x515a14,_0x23a3c1){_0x23a3c1=_0x23a3c1||0x1f4;return function(_0x4abbb2){logger[_0xe9cb('0x27')](_0x4abbb2[_0xe9cb('0x28')]);if(_0x4abbb2[_0xe9cb('0x29')]){delete _0x4abbb2[_0xe9cb('0x29')];}_0x515a14[_0xe9cb('0x1a')](_0x23a3c1)[_0xe9cb('0x2a')](_0x4abbb2);};}exports['index']=function(_0x5b26c9,_0x42f339){var _0x186632={},_0x258e98={},_0x184e15={'count':0x0,'rows':[]};var _0x3e8f89=_[_0xe9cb('0x2b')](db['SugarcrmAccount'][_0xe9cb('0x2c')],function(_0x532b41){return{'name':_0x532b41[_0xe9cb('0x2d')],'type':_0x532b41[_0xe9cb('0x2e')][_0xe9cb('0x2f')]};});_0x258e98[_0xe9cb('0x30')]=_['map'](_0x3e8f89,_0xe9cb('0x29'));_0x258e98[_0xe9cb('0x31')]=_[_0xe9cb('0x32')](_0x5b26c9[_0xe9cb('0x31')]);_0x258e98[_0xe9cb('0x33')]=_[_0xe9cb('0x34')](_0x258e98[_0xe9cb('0x30')],_0x258e98[_0xe9cb('0x31')]);_0x186632['attributes']=_[_0xe9cb('0x34')](_0x258e98[_0xe9cb('0x30')],qs['fields'](_0x5b26c9[_0xe9cb('0x31')]['fields']));_0x186632[_0xe9cb('0x35')]=_0x186632['attributes']['length']?_0x186632[_0xe9cb('0x35')]:_0x258e98[_0xe9cb('0x30')];if(!_0x5b26c9[_0xe9cb('0x31')][_0xe9cb('0x36')](_0xe9cb('0x37'))){_0x186632[_0xe9cb('0x1c')]=qs[_0xe9cb('0x1c')](_0x5b26c9['query'][_0xe9cb('0x1c')]);_0x186632[_0xe9cb('0x1b')]=qs[_0xe9cb('0x1b')](_0x5b26c9[_0xe9cb('0x31')][_0xe9cb('0x1b')]);}_0x186632[_0xe9cb('0x38')]=qs[_0xe9cb('0x39')](_0x5b26c9[_0xe9cb('0x31')]['sort']);_0x186632[_0xe9cb('0x3a')]=qs[_0xe9cb('0x33')](_[_0xe9cb('0x3b')](_0x5b26c9[_0xe9cb('0x31')],_0x258e98[_0xe9cb('0x33')]),_0x3e8f89);if(_0x5b26c9[_0xe9cb('0x31')]['filter']){_0x186632[_0xe9cb('0x3a')]=_[_0xe9cb('0x3c')](_0x186632[_0xe9cb('0x3a')],{'$or':_['map'](_0x3e8f89,function(_0xf3bcf9){if(_0xf3bcf9[_0xe9cb('0x2e')]!==_0xe9cb('0x3d')){var _0x53cd43={};_0x53cd43[_0xf3bcf9['name']]={'$like':'%'+_0x5b26c9['query'][_0xe9cb('0x3e')]+'%'};return _0x53cd43;}})});}_0x186632=_[_0xe9cb('0x3c')]({},_0x186632,_0x5b26c9[_0xe9cb('0x3f')]);var _0x5cc7eb={'where':_0x186632[_0xe9cb('0x3a')]};return db[_0xe9cb('0x40')]['count'](_0x5cc7eb)[_0xe9cb('0x25')](function(_0x2d5325){_0x184e15['count']=_0x2d5325;if(_0x5b26c9[_0xe9cb('0x31')]['includeAll']){_0x186632['include']=[{'all':!![]}];}return db[_0xe9cb('0x40')][_0xe9cb('0x41')](_0x186632);})[_0xe9cb('0x25')](function(_0x5de5b9){_0x184e15['rows']=_0x5de5b9;return _0x184e15;})[_0xe9cb('0x25')](respondWithFilteredResult(_0x42f339,_0x186632))[_0xe9cb('0x42')](handleError(_0x42f339,null));};exports[_0xe9cb('0x43')]=function(_0x384d5c,_0x5863b9){var _0x255019={'raw':![],'where':{'id':_0x384d5c[_0xe9cb('0x44')]['id']}},_0x1db92f={};_0x1db92f[_0xe9cb('0x30')]=_[_0xe9cb('0x32')](db[_0xe9cb('0x40')]['rawAttributes']);_0x1db92f[_0xe9cb('0x31')]=_[_0xe9cb('0x32')](_0x384d5c[_0xe9cb('0x31')]);_0x1db92f[_0xe9cb('0x33')]=_[_0xe9cb('0x34')](_0x1db92f['model'],_0x1db92f[_0xe9cb('0x31')]);_0x255019[_0xe9cb('0x35')]=_[_0xe9cb('0x34')](_0x1db92f['model'],qs['fields'](_0x384d5c[_0xe9cb('0x31')][_0xe9cb('0x45')]));_0x255019[_0xe9cb('0x35')]=_0x255019['attributes'][_0xe9cb('0x46')]?_0x255019[_0xe9cb('0x35')]:_0x1db92f[_0xe9cb('0x30')];if(_0x384d5c[_0xe9cb('0x31')][_0xe9cb('0x47')]){_0x255019['include']=[{'all':!![]}];}_0x255019=_[_0xe9cb('0x3c')]({},_0x255019,_0x384d5c[_0xe9cb('0x3f')]);return db[_0xe9cb('0x40')][_0xe9cb('0x48')](_0x255019)[_0xe9cb('0x25')](handleEntityNotFound(_0x5863b9,null))[_0xe9cb('0x25')](respondWithResult(_0x5863b9,null))[_0xe9cb('0x42')](handleError(_0x5863b9,null));};exports[_0xe9cb('0x49')]=function(_0x367cf6,_0x286f23){return db['SugarcrmAccount'][_0xe9cb('0x49')](_0x367cf6[_0xe9cb('0x4a')],{})[_0xe9cb('0x25')](respondWithResult(_0x286f23,0xc9))[_0xe9cb('0x42')](handleError(_0x286f23,null));};exports['update']=function(_0x2254e1,_0x49f15e){if(_0x2254e1[_0xe9cb('0x4a')]['id']){delete _0x2254e1[_0xe9cb('0x4a')]['id'];}return db[_0xe9cb('0x40')][_0xe9cb('0x48')]({'where':{'id':_0x2254e1['params']['id']}})[_0xe9cb('0x25')](handleEntityNotFound(_0x49f15e,null))[_0xe9cb('0x25')](saveUpdates(_0x2254e1[_0xe9cb('0x4a')],null))['then'](respondWithResult(_0x49f15e,null))[_0xe9cb('0x42')](handleError(_0x49f15e,null));};exports[_0xe9cb('0x26')]=function(_0x4be300,_0x5d9bc6){return db['SugarcrmAccount'][_0xe9cb('0x48')]({'where':{'id':_0x4be300[_0xe9cb('0x44')]['id']}})['then'](handleEntityNotFound(_0x5d9bc6,null))['then'](removeEntity(_0x5d9bc6,null))[_0xe9cb('0x42')](handleError(_0x5d9bc6,null));};exports[_0xe9cb('0x4b')]=function(_0x138b24,_0x2754ea,_0x6ee8a7){var _0x490d15={};var _0x447afa={};var _0x21b363;var _0x535085;return db[_0xe9cb('0x40')][_0xe9cb('0x4c')]({'where':{'id':_0x138b24[_0xe9cb('0x44')]['id']}})['then'](handleEntityNotFound(_0x2754ea,null))[_0xe9cb('0x25')](function(_0x5d16f5){if(_0x5d16f5){_0x21b363=_0x5d16f5;_0x447afa['model']=_[_0xe9cb('0x32')](db[_0xe9cb('0x4d')]['rawAttributes']);_0x447afa[_0xe9cb('0x31')]=_[_0xe9cb('0x32')](_0x138b24[_0xe9cb('0x31')]);_0x447afa[_0xe9cb('0x33')]=_['intersection'](_0x447afa[_0xe9cb('0x30')],_0x447afa['query']);_0x490d15[_0xe9cb('0x35')]=_[_0xe9cb('0x34')](_0x447afa[_0xe9cb('0x30')],qs[_0xe9cb('0x45')](_0x138b24['query'][_0xe9cb('0x45')]));_0x490d15[_0xe9cb('0x35')]=_0x490d15[_0xe9cb('0x35')][_0xe9cb('0x46')]?_0x490d15[_0xe9cb('0x35')]:_0x447afa[_0xe9cb('0x30')];_0x490d15[_0xe9cb('0x38')]=qs[_0xe9cb('0x39')](_0x138b24[_0xe9cb('0x31')]['sort']);_0x490d15['where']=qs[_0xe9cb('0x33')](_['pick'](_0x138b24[_0xe9cb('0x31')],_0x447afa['filters']));if(_0x138b24[_0xe9cb('0x31')][_0xe9cb('0x3e')]){_0x490d15['where']=_['merge'](_0x490d15['where'],{'$or':_[_0xe9cb('0x2b')](_0x490d15[_0xe9cb('0x35')],function(_0x10c8be){var _0x1fc01d={};_0x1fc01d[_0x10c8be]={'$like':'%'+_0x138b24[_0xe9cb('0x31')][_0xe9cb('0x3e')]+'%'};return _0x1fc01d;})});}_0x490d15=_[_0xe9cb('0x3c')]({},_0x490d15,_0x138b24[_0xe9cb('0x3f')]);return _0x21b363[_0xe9cb('0x4b')](_0x490d15);}})[_0xe9cb('0x25')](function(_0x44468b){if(_0x44468b){_0x535085=_0x44468b[_0xe9cb('0x46')];if(!_0x138b24['query'][_0xe9cb('0x36')](_0xe9cb('0x37'))){_0x490d15['limit']=qs[_0xe9cb('0x1c')](_0x138b24['query'][_0xe9cb('0x1c')]);_0x490d15[_0xe9cb('0x1b')]=qs[_0xe9cb('0x1b')](_0x138b24[_0xe9cb('0x31')][_0xe9cb('0x1b')]);}return _0x21b363['getConfigurations'](_0x490d15);}})[_0xe9cb('0x25')](function(_0x591458){if(_0x591458){return _0x591458?{'count':_0x535085,'rows':_0x591458}:null;}})['then'](respondWithResult(_0x2754ea,null))[_0xe9cb('0x42')](handleError(_0x2754ea,null));};exports[_0xe9cb('0x4e')]=function(_0x167d71,_0x2e66dc,_0x28ce3a){if(_0x167d71[_0xe9cb('0x4a')]['id']){delete _0x167d71[_0xe9cb('0x4a')]['id'];}return db[_0xe9cb('0x40')]['findOne']({'where':{'id':_0x167d71[_0xe9cb('0x44')]['id']}})[_0xe9cb('0x25')](handleEntityNotFound(_0x2e66dc,null))['then'](function(_0x3744a5){if(_0x3744a5){_0x167d71[_0xe9cb('0x4a')]['AccountId']=_0x3744a5['id'];_0x167d71['body']['Subjects']=integrations[_0xe9cb('0x4f')](_0x167d71[_0xe9cb('0x4a')][_0xe9cb('0x50')],_0x167d71[_0xe9cb('0x4a')]['type']);_0x167d71[_0xe9cb('0x4a')][_0xe9cb('0x51')]=integrations[_0xe9cb('0x52')](_0x167d71[_0xe9cb('0x4a')][_0xe9cb('0x50')],_0x167d71[_0xe9cb('0x4a')]['type']);return db['SugarcrmConfiguration'][_0xe9cb('0x49')](_0x167d71[_0xe9cb('0x4a')],{'include':[{'model':db[_0xe9cb('0x53')],'as':_0xe9cb('0x54')},{'model':db[_0xe9cb('0x53')],'as':_0xe9cb('0x51')}]});}return null;})['then'](respondWithResult(_0x2e66dc,null))[_0xe9cb('0x42')](handleError(_0x2e66dc,null));};exports[_0xe9cb('0x55')]=function(_0x27a0ce,_0x1af4f5,_0x4549a0){var _0x53c5dc='';var _0x4558bf=['id',_0xe9cb('0x29'),_0xe9cb('0x56'),'created_by',_0xe9cb('0x57'),_0xe9cb('0x58'),'duration_hours',_0xe9cb('0x59'),_0xe9cb('0x5a'),'parent_type',_0xe9cb('0x5b'),_0xe9cb('0x5c')];return db[_0xe9cb('0x40')][_0xe9cb('0x4c')]({'where':{'id':_0x27a0ce['params']['id']},'attributes':['id',_0xe9cb('0x5d'),_0xe9cb('0x5e'),_0xe9cb('0x5f')]})[_0xe9cb('0x25')](handleEntityNotFound(_0x1af4f5,null))[_0xe9cb('0x25')](function(_0x1e66c4){if(_0x1e66c4){_0x53c5dc=_0x1e66c4[_0xe9cb('0x5f')];var _0x433d79=_0x53c5dc[_0xe9cb('0x60')](-0x1);if(_0x433d79==='/'){_0x53c5dc=_0x53c5dc[_0xe9cb('0x61')](0x0,_0x53c5dc[_0xe9cb('0x62')](_0x433d79));}return rp({'method':_0xe9cb('0x63'),'uri':util[_0xe9cb('0x64')](_0xe9cb('0x65'),_0x53c5dc,_0xe9cb('0x66')),'json':!![],'form':{'method':_0xe9cb('0x67'),'input_type':_0xe9cb('0x68'),'response_type':_0xe9cb('0x68'),'rest_data':JSON['stringify']({'user_auth':{'user_name':_0x1e66c4[_0xe9cb('0x5d')],'password':_0x1e66c4[_0xe9cb('0x5e')],'encryption':_0xe9cb('0x69')},'application':_0xe9cb('0x6a')})}});}})[_0xe9cb('0x25')](function(_0xb58b1b){if(_0xb58b1b&&_0xb58b1b[_0xe9cb('0x29')]!==_0xe9cb('0x6b')&&_0xb58b1b[_0xe9cb('0x29')]!=='Password\x20Expired'){return rp({'method':_0xe9cb('0x63'),'uri':util[_0xe9cb('0x64')](_0xe9cb('0x65'),_0x53c5dc,_0xe9cb('0x66')),'json':!![],'form':{'method':_0xe9cb('0x6c'),'input_type':_0xe9cb('0x68'),'response_type':'JSON','rest_data':JSON[_0xe9cb('0x6d')]({'session':_0xb58b1b['id'],'module_name':'Calls'})}})[_0xe9cb('0x25')](function(_0x5da3ad){if(_0x5da3ad){var _0x61b058=_[_0xe9cb('0x6e')](_0x5da3ad[_0xe9cb('0x6f')]);_['remove'](_0x61b058,function(_0x23564b){return _0x4558bf[_0xe9cb('0x70')](_0x23564b['name']);});return{'count':_0x61b058[_0xe9cb('0x46')],'rows':_[_0xe9cb('0x2b')](_0x61b058,function(_0x19b44a){return{'id':_0x19b44a[_0xe9cb('0x29')],'name':_0x19b44a['label'],'custom':_['endsWith'](_0x19b44a[_0xe9cb('0x29')],'_c')?!![]:![],'options':_0x19b44a[_0xe9cb('0x3f')]?_[_0xe9cb('0x2b')](_['values'](_0x19b44a[_0xe9cb('0x3f')]),function(_0x109859){return{'name':_0x109859['value'],'value':_0x109859[_0xe9cb('0x29')]};}):[]};})};}})[_0xe9cb('0x25')](respondWithResult(_0x1af4f5,null))[_0xe9cb('0x42')](function(_0x1cf0cd){var _0x3f1f3c=_0x27a0ce[_0xe9cb('0x31')]['test']?0x1f4:_0x1cf0cd['statusCode']||0x1f4;logger[_0xe9cb('0x27')](_0xe9cb('0x71'),'getFields',_0x3f1f3c,JSON[_0xe9cb('0x6d')](_0x1cf0cd));delete _0x1cf0cd['name'];if(_0x3f1f3c===0x191){_0x3f1f3c=0x190;}_0x1af4f5['status'](_0x3f1f3c)[_0xe9cb('0x2a')](_0x27a0ce[_0xe9cb('0x31')][_0xe9cb('0x72')]?{'message':_0xe9cb('0x73'),'statusCode':_0x1cf0cd[_0xe9cb('0x74')]}:_0x1cf0cd);});}else{var _0x1726a4=0x1f4;_0x1af4f5[_0xe9cb('0x1a')](_0x1726a4)[_0xe9cb('0x2a')]({'message':_0xe9cb('0x73'),'statusCode':0x190});}});};