6ca1bad6d06e6e9ce25b10c3887d98af21da00ce
[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 _0x8911=['label','endsWith','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','eml-format','rimraf','zip-dir','request-promise','util','path','sox','to-csv','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','end','status','json','undefined','limit','count','offset','Content-Range','reject','save','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','filters','pick','filter','where','VIRTUAL','merge','options','SugarcrmAccount','include','rows','show','params','includeAll','catch','create','body','update','find','findOne','SugarcrmConfiguration','nolimit','getConfigurations','addConfiguration','AccountId','getSubjects','channel','SugarcrmField','Descriptions','assigned_user_id','created_by','description','date_start','duration_hours','duration_minutes','parent_id','parent_type','parent_name','direction','username','password','remoteUri','slice','substring','lastIndexOf','POST','%s%s','/service/v4_1/rest.php','login','stringify','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','format','JSON','values','module_fields','remove'];(function(_0x503a0c,_0xbc78c5){var _0x3b2e83=function(_0x159994){while(--_0x159994){_0x503a0c['push'](_0x503a0c['shift']());}};_0x3b2e83(++_0xbc78c5);}(_0x8911,0xf1));var _0x1891=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8911[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x1891('0x0'));var rimraf=require(_0x1891('0x1'));var zipdir=require(_0x1891('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1891('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x1891('0x4'));var path=require(_0x1891('0x5'));var sox=require(_0x1891('0x6'));var csv=require(_0x1891('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x1891('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x1891('0x9'));var toCsv=require(_0x1891('0x7'));var querystring=require(_0x1891('0xa'));var Papa=require(_0x1891('0xb'));var Redis=require(_0x1891('0xc'));var authService=require(_0x1891('0xd'));var qs=require(_0x1891('0xe'));var as=require(_0x1891('0xf'));var hardwareService=require(_0x1891('0x10'));var logger=require(_0x1891('0x11'))('api');var utils=require(_0x1891('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x1891('0x13'));var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0xd7ccf0,_0x525aa6){_0x525aa6=_0x525aa6||0xcc;return function(_0x18a34b){if(_0x18a34b){return _0xd7ccf0['sendStatus'](_0x525aa6);}return _0xd7ccf0['status'](_0x525aa6)[_0x1891('0x14')]();};}function respondWithResult(_0xf48858,_0x28db6e){_0x28db6e=_0x28db6e||0xc8;return function(_0x438722){if(_0x438722){return _0xf48858[_0x1891('0x15')](_0x28db6e)[_0x1891('0x16')](_0x438722);}};}function respondWithFilteredResult(_0x45a373,_0x3b84d5){return function(_0x4c93c4){if(_0x4c93c4){var _0xc87e56=typeof _0x3b84d5['offset']===_0x1891('0x17')&&typeof _0x3b84d5[_0x1891('0x18')]===_0x1891('0x17');var _0x383e10=_0x4c93c4[_0x1891('0x19')];var _0x221766=_0xc87e56?0x0:_0x3b84d5[_0x1891('0x1a')];var _0x5ecc0b=_0xc87e56?_0x4c93c4[_0x1891('0x19')]:_0x3b84d5[_0x1891('0x1a')]+_0x3b84d5[_0x1891('0x18')];var _0x1860ee;if(_0x5ecc0b>=_0x383e10){_0x5ecc0b=_0x383e10;_0x1860ee=0xc8;}else{_0x1860ee=0xce;}_0x45a373[_0x1891('0x15')](_0x1860ee);return _0x45a373['set'](_0x1891('0x1b'),_0x221766+'-'+_0x5ecc0b+'/'+_0x383e10)[_0x1891('0x16')](_0x4c93c4);}return null;};}function patchUpdates(_0x342cc0){return function(_0x2ebea7){try{jsonpatch['apply'](_0x2ebea7,_0x342cc0,!![]);}catch(_0x505674){return BPromise[_0x1891('0x1c')](_0x505674);}return _0x2ebea7[_0x1891('0x1d')]();};}function saveUpdates(_0x23320f,_0x2d2d9a){return function(_0x49137a){if(_0x49137a){return _0x49137a['update'](_0x23320f)[_0x1891('0x1e')](function(_0xd1423f){return _0xd1423f;});}return null;};}function removeEntity(_0x90db75,_0x4c8e66){return function(_0x194c3a){if(_0x194c3a){return _0x194c3a[_0x1891('0x1f')]()['then'](function(){_0x90db75[_0x1891('0x15')](0xcc)[_0x1891('0x14')]();});}};}function handleEntityNotFound(_0x35c081,_0x49dbb1){return function(_0x4fc388){if(!_0x4fc388){_0x35c081['sendStatus'](0x194);}return _0x4fc388;};}function handleError(_0x47f51a,_0x423983){_0x423983=_0x423983||0x1f4;return function(_0x4db70b){logger[_0x1891('0x20')](_0x4db70b[_0x1891('0x21')]);if(_0x4db70b[_0x1891('0x22')]){delete _0x4db70b[_0x1891('0x22')];}_0x47f51a[_0x1891('0x15')](_0x423983)[_0x1891('0x23')](_0x4db70b);};}exports[_0x1891('0x24')]=function(_0x53bae0,_0x255c5f){var _0x114c66={},_0x16359d={},_0x428d60={'count':0x0,'rows':[]};var _0x1d525c=_[_0x1891('0x25')](db['SugarcrmAccount'][_0x1891('0x26')],function(_0x559aad){return{'name':_0x559aad[_0x1891('0x27')],'type':_0x559aad[_0x1891('0x28')][_0x1891('0x29')]};});_0x16359d[_0x1891('0x2a')]=_[_0x1891('0x25')](_0x1d525c,_0x1891('0x22'));_0x16359d[_0x1891('0x2b')]=_[_0x1891('0x2c')](_0x53bae0[_0x1891('0x2b')]);_0x16359d['filters']=_[_0x1891('0x2d')](_0x16359d[_0x1891('0x2a')],_0x16359d[_0x1891('0x2b')]);_0x114c66[_0x1891('0x2e')]=_[_0x1891('0x2d')](_0x16359d['model'],qs[_0x1891('0x2f')](_0x53bae0[_0x1891('0x2b')][_0x1891('0x2f')]));_0x114c66[_0x1891('0x2e')]=_0x114c66[_0x1891('0x2e')][_0x1891('0x30')]?_0x114c66[_0x1891('0x2e')]:_0x16359d[_0x1891('0x2a')];if(!_0x53bae0['query'][_0x1891('0x31')]('nolimit')){_0x114c66[_0x1891('0x18')]=qs[_0x1891('0x18')](_0x53bae0['query'][_0x1891('0x18')]);_0x114c66[_0x1891('0x1a')]=qs[_0x1891('0x1a')](_0x53bae0[_0x1891('0x2b')][_0x1891('0x1a')]);}_0x114c66[_0x1891('0x32')]=qs['sort'](_0x53bae0[_0x1891('0x2b')][_0x1891('0x33')]);_0x114c66['where']=qs[_0x1891('0x34')](_[_0x1891('0x35')](_0x53bae0[_0x1891('0x2b')],_0x16359d[_0x1891('0x34')]),_0x1d525c);if(_0x53bae0[_0x1891('0x2b')][_0x1891('0x36')]){_0x114c66['where']=_['merge'](_0x114c66[_0x1891('0x37')],{'$or':_['map'](_0x1d525c,function(_0x191fb6){if(_0x191fb6[_0x1891('0x28')]!==_0x1891('0x38')){var _0xa77418={};_0xa77418[_0x191fb6[_0x1891('0x22')]]={'$like':'%'+_0x53bae0[_0x1891('0x2b')][_0x1891('0x36')]+'%'};return _0xa77418;}})});}_0x114c66=_[_0x1891('0x39')]({},_0x114c66,_0x53bae0[_0x1891('0x3a')]);var _0x2dceae={'where':_0x114c66['where']};return db[_0x1891('0x3b')]['count'](_0x2dceae)[_0x1891('0x1e')](function(_0xd2993c){_0x428d60[_0x1891('0x19')]=_0xd2993c;if(_0x53bae0[_0x1891('0x2b')]['includeAll']){_0x114c66[_0x1891('0x3c')]=[{'all':!![]}];}return db[_0x1891('0x3b')]['findAll'](_0x114c66);})[_0x1891('0x1e')](function(_0x1f3778){_0x428d60[_0x1891('0x3d')]=_0x1f3778;return _0x428d60;})[_0x1891('0x1e')](respondWithFilteredResult(_0x255c5f,_0x114c66))['catch'](handleError(_0x255c5f,null));};exports[_0x1891('0x3e')]=function(_0xc5f96f,_0x5d4ae0){var _0x472b4c={'raw':![],'where':{'id':_0xc5f96f[_0x1891('0x3f')]['id']}},_0x2c394b={};_0x2c394b['model']=_[_0x1891('0x2c')](db[_0x1891('0x3b')]['rawAttributes']);_0x2c394b[_0x1891('0x2b')]=_[_0x1891('0x2c')](_0xc5f96f[_0x1891('0x2b')]);_0x2c394b[_0x1891('0x34')]=_[_0x1891('0x2d')](_0x2c394b[_0x1891('0x2a')],_0x2c394b[_0x1891('0x2b')]);_0x472b4c['attributes']=_[_0x1891('0x2d')](_0x2c394b[_0x1891('0x2a')],qs[_0x1891('0x2f')](_0xc5f96f[_0x1891('0x2b')][_0x1891('0x2f')]));_0x472b4c[_0x1891('0x2e')]=_0x472b4c[_0x1891('0x2e')]['length']?_0x472b4c['attributes']:_0x2c394b[_0x1891('0x2a')];if(_0xc5f96f['query'][_0x1891('0x40')]){_0x472b4c[_0x1891('0x3c')]=[{'all':!![]}];}_0x472b4c=_[_0x1891('0x39')]({},_0x472b4c,_0xc5f96f[_0x1891('0x3a')]);return db[_0x1891('0x3b')]['find'](_0x472b4c)[_0x1891('0x1e')](handleEntityNotFound(_0x5d4ae0,null))[_0x1891('0x1e')](respondWithResult(_0x5d4ae0,null))[_0x1891('0x41')](handleError(_0x5d4ae0,null));};exports[_0x1891('0x42')]=function(_0x1acb6b,_0x25bd34){return db['SugarcrmAccount'][_0x1891('0x42')](_0x1acb6b[_0x1891('0x43')],{})[_0x1891('0x1e')](respondWithResult(_0x25bd34,0xc9))[_0x1891('0x41')](handleError(_0x25bd34,null));};exports[_0x1891('0x44')]=function(_0x40c69b,_0x1573df){if(_0x40c69b[_0x1891('0x43')]['id']){delete _0x40c69b[_0x1891('0x43')]['id'];}return db[_0x1891('0x3b')][_0x1891('0x45')]({'where':{'id':_0x40c69b['params']['id']}})[_0x1891('0x1e')](handleEntityNotFound(_0x1573df,null))[_0x1891('0x1e')](saveUpdates(_0x40c69b['body'],null))[_0x1891('0x1e')](respondWithResult(_0x1573df,null))[_0x1891('0x41')](handleError(_0x1573df,null));};exports[_0x1891('0x1f')]=function(_0x34fc7d,_0x227fe0){return db[_0x1891('0x3b')][_0x1891('0x45')]({'where':{'id':_0x34fc7d['params']['id']}})[_0x1891('0x1e')](handleEntityNotFound(_0x227fe0,null))[_0x1891('0x1e')](removeEntity(_0x227fe0,null))[_0x1891('0x41')](handleError(_0x227fe0,null));};exports['getConfigurations']=function(_0x557df9,_0x87abd2,_0x26f78f){var _0x23f5b1={};var _0x43b0d5={};var _0x140ede;var _0x5722ee;return db[_0x1891('0x3b')][_0x1891('0x46')]({'where':{'id':_0x557df9[_0x1891('0x3f')]['id']}})['then'](handleEntityNotFound(_0x87abd2,null))[_0x1891('0x1e')](function(_0x2efc54){if(_0x2efc54){_0x140ede=_0x2efc54;_0x43b0d5[_0x1891('0x2a')]=_[_0x1891('0x2c')](db[_0x1891('0x47')][_0x1891('0x26')]);_0x43b0d5['query']=_['keys'](_0x557df9[_0x1891('0x2b')]);_0x43b0d5['filters']=_[_0x1891('0x2d')](_0x43b0d5[_0x1891('0x2a')],_0x43b0d5[_0x1891('0x2b')]);_0x23f5b1[_0x1891('0x2e')]=_[_0x1891('0x2d')](_0x43b0d5[_0x1891('0x2a')],qs['fields'](_0x557df9[_0x1891('0x2b')][_0x1891('0x2f')]));_0x23f5b1[_0x1891('0x2e')]=_0x23f5b1['attributes'][_0x1891('0x30')]?_0x23f5b1['attributes']:_0x43b0d5[_0x1891('0x2a')];_0x23f5b1[_0x1891('0x32')]=qs[_0x1891('0x33')](_0x557df9[_0x1891('0x2b')][_0x1891('0x33')]);_0x23f5b1[_0x1891('0x37')]=qs['filters'](_[_0x1891('0x35')](_0x557df9[_0x1891('0x2b')],_0x43b0d5['filters']));if(_0x557df9[_0x1891('0x2b')][_0x1891('0x36')]){_0x23f5b1[_0x1891('0x37')]=_[_0x1891('0x39')](_0x23f5b1[_0x1891('0x37')],{'$or':_['map'](_0x23f5b1['attributes'],function(_0x6e9092){var _0x54fa2a={};_0x54fa2a[_0x6e9092]={'$like':'%'+_0x557df9[_0x1891('0x2b')][_0x1891('0x36')]+'%'};return _0x54fa2a;})});}_0x23f5b1=_[_0x1891('0x39')]({},_0x23f5b1,_0x557df9['options']);return _0x140ede['getConfigurations'](_0x23f5b1);}})['then'](function(_0x5ec487){if(_0x5ec487){_0x5722ee=_0x5ec487[_0x1891('0x30')];if(!_0x557df9[_0x1891('0x2b')][_0x1891('0x31')](_0x1891('0x48'))){_0x23f5b1[_0x1891('0x18')]=qs['limit'](_0x557df9[_0x1891('0x2b')]['limit']);_0x23f5b1[_0x1891('0x1a')]=qs[_0x1891('0x1a')](_0x557df9['query']['offset']);}return _0x140ede[_0x1891('0x49')](_0x23f5b1);}})[_0x1891('0x1e')](function(_0x152fd2){if(_0x152fd2){return _0x152fd2?{'count':_0x5722ee,'rows':_0x152fd2}:null;}})[_0x1891('0x1e')](respondWithResult(_0x87abd2,null))[_0x1891('0x41')](handleError(_0x87abd2,null));};exports[_0x1891('0x4a')]=function(_0x13e0b3,_0x5ba122,_0x12dcb4){if(_0x13e0b3[_0x1891('0x43')]['id']){delete _0x13e0b3['body']['id'];}return db[_0x1891('0x3b')][_0x1891('0x46')]({'where':{'id':_0x13e0b3['params']['id']}})[_0x1891('0x1e')](handleEntityNotFound(_0x5ba122,null))['then'](function(_0x212679){if(_0x212679){_0x13e0b3['body'][_0x1891('0x4b')]=_0x212679['id'];_0x13e0b3[_0x1891('0x43')]['Subjects']=integrations[_0x1891('0x4c')](_0x13e0b3[_0x1891('0x43')][_0x1891('0x4d')],_0x13e0b3['body'][_0x1891('0x28')]);_0x13e0b3['body']['Descriptions']=integrations['getDescriptions'](_0x13e0b3[_0x1891('0x43')]['channel'],_0x13e0b3[_0x1891('0x43')][_0x1891('0x28')]);return db['SugarcrmConfiguration'][_0x1891('0x42')](_0x13e0b3[_0x1891('0x43')],{'include':[{'model':db[_0x1891('0x4e')],'as':'Subjects'},{'model':db[_0x1891('0x4e')],'as':_0x1891('0x4f')}]});}return null;})[_0x1891('0x1e')](respondWithResult(_0x5ba122,null))[_0x1891('0x41')](handleError(_0x5ba122,null));};exports['getFields']=function(_0x219ee8,_0x5bd77b,_0x3241d0){var _0x2b2f82='';var _0x3e86a1=['id',_0x1891('0x22'),_0x1891('0x50'),_0x1891('0x51'),_0x1891('0x52'),_0x1891('0x53'),_0x1891('0x54'),_0x1891('0x55'),_0x1891('0x56'),_0x1891('0x57'),_0x1891('0x58'),_0x1891('0x59')];return db[_0x1891('0x3b')]['findOne']({'where':{'id':_0x219ee8[_0x1891('0x3f')]['id']},'attributes':['id',_0x1891('0x5a'),_0x1891('0x5b'),_0x1891('0x5c')]})[_0x1891('0x1e')](handleEntityNotFound(_0x5bd77b,null))[_0x1891('0x1e')](function(_0x3fec0f){if(_0x3fec0f){_0x2b2f82=_0x3fec0f[_0x1891('0x5c')];var _0x2f9162=_0x2b2f82[_0x1891('0x5d')](-0x1);if(_0x2f9162==='/'){_0x2b2f82=_0x2b2f82[_0x1891('0x5e')](0x0,_0x2b2f82[_0x1891('0x5f')](_0x2f9162));}return rp({'method':_0x1891('0x60'),'uri':util['format'](_0x1891('0x61'),_0x2b2f82,_0x1891('0x62')),'json':!![],'form':{'method':_0x1891('0x63'),'input_type':'JSON','response_type':'JSON','rest_data':JSON[_0x1891('0x64')]({'user_auth':{'user_name':_0x3fec0f['username'],'password':_0x3fec0f[_0x1891('0x5b')],'encryption':_0x1891('0x65')},'application':_0x1891('0x66')})}});}})[_0x1891('0x1e')](function(_0x1449db){if(_0x1449db&&_0x1449db[_0x1891('0x22')]!==_0x1891('0x67')&&_0x1449db[_0x1891('0x22')]!==_0x1891('0x68')){return rp({'method':_0x1891('0x60'),'uri':util[_0x1891('0x69')](_0x1891('0x61'),_0x2b2f82,_0x1891('0x62')),'json':!![],'form':{'method':'get_module_fields','input_type':_0x1891('0x6a'),'response_type':_0x1891('0x6a'),'rest_data':JSON[_0x1891('0x64')]({'session':_0x1449db['id'],'module_name':'Calls'})}})['then'](function(_0x17cbe4){if(_0x17cbe4){var _0x26c315=_[_0x1891('0x6b')](_0x17cbe4[_0x1891('0x6c')]);_[_0x1891('0x6d')](_0x26c315,function(_0x6ab320){return _0x3e86a1['includes'](_0x6ab320[_0x1891('0x22')]);});return{'count':_0x26c315[_0x1891('0x30')],'rows':_['map'](_0x26c315,function(_0x107572){return{'id':_0x107572['name'],'name':_0x107572[_0x1891('0x6e')],'custom':_[_0x1891('0x6f')](_0x107572[_0x1891('0x22')],'_c')?!![]:![],'options':_0x107572['options']?_[_0x1891('0x25')](_[_0x1891('0x6b')](_0x107572['options']),function(_0x44c57b){return{'name':_0x44c57b['value'],'value':_0x44c57b['name']};}):[]};})};}})[_0x1891('0x1e')](respondWithResult(_0x5bd77b,null))[_0x1891('0x41')](function(_0x4dccfb){var _0x253462=_0x219ee8[_0x1891('0x2b')][_0x1891('0x70')]?0x1f4:_0x4dccfb[_0x1891('0x71')]||0x1f4;logger[_0x1891('0x20')](_0x1891('0x72'),_0x1891('0x73'),_0x253462,JSON[_0x1891('0x64')](_0x4dccfb));delete _0x4dccfb[_0x1891('0x22')];if(_0x253462===0x191){_0x253462=0x190;}_0x5bd77b[_0x1891('0x15')](_0x253462)[_0x1891('0x23')](_0x219ee8['query']['test']?{'message':_0x1891('0x74'),'statusCode':_0x4dccfb[_0x1891('0x71')]}:_0x4dccfb);});}else{var _0xc467c3=0x1f4;_0x5bd77b[_0x1891('0x15')](_0xc467c3)[_0x1891('0x23')]({'message':_0x1891('0x74'),'statusCode':0x190});}});};