8469298c149d3542ec32bea96880a885310d6a2b
[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 _0xc18b=['fs-extra','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/environment','../../components/integrations/configuration','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','reject','save','then','destroy','error','stack','name','send','index','SugarcrmAccount','rawAttributes','fieldName','type','key','map','keys','query','filters','intersection','model','attributes','fields','length','order','sort','where','pick','filter','merge','VIRTUAL','options','include','rows','catch','show','params','includeAll','find','create','body','update','findOne','SugarcrmConfiguration','nolimit','addConfiguration','AccountId','getSubjects','channel','Subjects','getFields','assigned_user_id','created_by','description','date_start','duration_hours','duration_minutes','parent_id','parent_type','parent_name','username','password','remoteUri','slice','substring','lastIndexOf','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','Password\x20Expired','POST','Calls','values','module_fields','remove','includes','label','value','test','statusCode','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs'];(function(_0x10b2c4,_0x4b10ed){var _0xb10a8e=function(_0x58ff68){while(--_0x58ff68){_0x10b2c4['push'](_0x10b2c4['shift']());}};_0xb10a8e(++_0x4b10ed);}(_0xc18b,0xe0));var _0xbc18=function(_0x3b96cf,_0x1592f2){_0x3b96cf=_0x3b96cf-0x0;var _0x2e315a=_0xc18b[_0x3b96cf];return _0x2e315a;};'use strict';var emlformat=require(_0xbc18('0x0'));var rimraf=require(_0xbc18('0x1'));var zipdir=require(_0xbc18('0x2'));var jsonpatch=require(_0xbc18('0x3'));var rp=require(_0xbc18('0x4'));var moment=require(_0xbc18('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xbc18('0x6'));var util=require(_0xbc18('0x7'));var path=require(_0xbc18('0x8'));var sox=require(_0xbc18('0x9'));var csv=require(_0xbc18('0xa'));var ejs=require(_0xbc18('0xb'));var fs=require('fs');var fs_extra=require(_0xbc18('0xc'));var _=require('lodash');var squel=require(_0xbc18('0xd'));var crypto=require(_0xbc18('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xbc18('0xf'));var toCsv=require(_0xbc18('0xa'));var querystring=require('querystring');var Papa=require(_0xbc18('0x10'));var Redis=require(_0xbc18('0x11'));var authService=require(_0xbc18('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbc18('0x13'));var logger=require(_0xbc18('0x14'))(_0xbc18('0x15'));var utils=require('../../config/utils');var config=require(_0xbc18('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0xbc18('0x17'));function respondWithStatusCode(_0x3f3b0f,_0x1fc513){_0x1fc513=_0x1fc513||0xcc;return function(_0x1a7536){if(_0x1a7536){return _0x3f3b0f[_0xbc18('0x18')](_0x1fc513);}return _0x3f3b0f['status'](_0x1fc513)[_0xbc18('0x19')]();};}function respondWithResult(_0x9cd86d,_0x2d90b1){_0x2d90b1=_0x2d90b1||0xc8;return function(_0x26400b){if(_0x26400b){return _0x9cd86d[_0xbc18('0x1a')](_0x2d90b1)[_0xbc18('0x1b')](_0x26400b);}};}function respondWithFilteredResult(_0x5ef1ab,_0x56a680){return function(_0x40fc85){if(_0x40fc85){var _0x49657b=typeof _0x56a680[_0xbc18('0x1c')]==='undefined'&&typeof _0x56a680[_0xbc18('0x1d')]===_0xbc18('0x1e');var _0x56115a=_0x40fc85[_0xbc18('0x1f')];var _0x1c0485=_0x49657b?0x0:_0x56a680['offset'];var _0x47a5cc=_0x49657b?_0x40fc85[_0xbc18('0x1f')]:_0x56a680['offset']+_0x56a680[_0xbc18('0x1d')];var _0x5ac51a;if(_0x47a5cc>=_0x56115a){_0x47a5cc=_0x56115a;_0x5ac51a=0xc8;}else{_0x5ac51a=0xce;}_0x5ef1ab['status'](_0x5ac51a);return _0x5ef1ab[_0xbc18('0x20')](_0xbc18('0x21'),_0x1c0485+'-'+_0x47a5cc+'/'+_0x56115a)[_0xbc18('0x1b')](_0x40fc85);}return null;};}function patchUpdates(_0x4e5819){return function(_0x285803){try{jsonpatch['apply'](_0x285803,_0x4e5819,!![]);}catch(_0x5455f6){return BPromise[_0xbc18('0x22')](_0x5455f6);}return _0x285803[_0xbc18('0x23')]();};}function saveUpdates(_0x4204c5,_0x31146b){return function(_0x44047d){if(_0x44047d){return _0x44047d['update'](_0x4204c5)[_0xbc18('0x24')](function(_0x529fc9){return _0x529fc9;});}return null;};}function removeEntity(_0x404904,_0x433860){return function(_0x33d968){if(_0x33d968){return _0x33d968[_0xbc18('0x25')]()[_0xbc18('0x24')](function(){_0x404904[_0xbc18('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x11e927,_0x55b442){return function(_0x553145){if(!_0x553145){_0x11e927[_0xbc18('0x18')](0x194);}return _0x553145;};}function handleError(_0x48b25d,_0x5c79e2){_0x5c79e2=_0x5c79e2||0x1f4;return function(_0x2068b2){logger[_0xbc18('0x26')](_0x2068b2[_0xbc18('0x27')]);if(_0x2068b2['name']){delete _0x2068b2[_0xbc18('0x28')];}_0x48b25d[_0xbc18('0x1a')](_0x5c79e2)[_0xbc18('0x29')](_0x2068b2);};}exports[_0xbc18('0x2a')]=function(_0x5da8f1,_0x5275d3){var _0x39a50e={},_0xf4e5d={},_0x154b70={'count':0x0,'rows':[]};var _0x26c02e=_['map'](db[_0xbc18('0x2b')][_0xbc18('0x2c')],function(_0x1aa264){return{'name':_0x1aa264[_0xbc18('0x2d')],'type':_0x1aa264[_0xbc18('0x2e')][_0xbc18('0x2f')]};});_0xf4e5d['model']=_[_0xbc18('0x30')](_0x26c02e,'name');_0xf4e5d['query']=_[_0xbc18('0x31')](_0x5da8f1[_0xbc18('0x32')]);_0xf4e5d[_0xbc18('0x33')]=_[_0xbc18('0x34')](_0xf4e5d[_0xbc18('0x35')],_0xf4e5d[_0xbc18('0x32')]);_0x39a50e[_0xbc18('0x36')]=_[_0xbc18('0x34')](_0xf4e5d['model'],qs[_0xbc18('0x37')](_0x5da8f1[_0xbc18('0x32')][_0xbc18('0x37')]));_0x39a50e[_0xbc18('0x36')]=_0x39a50e[_0xbc18('0x36')][_0xbc18('0x38')]?_0x39a50e['attributes']:_0xf4e5d[_0xbc18('0x35')];if(!_0x5da8f1[_0xbc18('0x32')]['hasOwnProperty']('nolimit')){_0x39a50e[_0xbc18('0x1d')]=qs[_0xbc18('0x1d')](_0x5da8f1['query']['limit']);_0x39a50e[_0xbc18('0x1c')]=qs['offset'](_0x5da8f1[_0xbc18('0x32')][_0xbc18('0x1c')]);}_0x39a50e[_0xbc18('0x39')]=qs[_0xbc18('0x3a')](_0x5da8f1[_0xbc18('0x32')][_0xbc18('0x3a')]);_0x39a50e[_0xbc18('0x3b')]=qs[_0xbc18('0x33')](_[_0xbc18('0x3c')](_0x5da8f1['query'],_0xf4e5d[_0xbc18('0x33')]),_0x26c02e);if(_0x5da8f1[_0xbc18('0x32')][_0xbc18('0x3d')]){_0x39a50e[_0xbc18('0x3b')]=_[_0xbc18('0x3e')](_0x39a50e[_0xbc18('0x3b')],{'$or':_[_0xbc18('0x30')](_0x26c02e,function(_0x170b25){if(_0x170b25[_0xbc18('0x2e')]!==_0xbc18('0x3f')){var _0x48dac5={};_0x48dac5[_0x170b25['name']]={'$like':'%'+_0x5da8f1[_0xbc18('0x32')][_0xbc18('0x3d')]+'%'};return _0x48dac5;}})});}_0x39a50e=_[_0xbc18('0x3e')]({},_0x39a50e,_0x5da8f1[_0xbc18('0x40')]);var _0x5498a0={'where':_0x39a50e[_0xbc18('0x3b')]};return db[_0xbc18('0x2b')][_0xbc18('0x1f')](_0x5498a0)['then'](function(_0x428ee2){_0x154b70[_0xbc18('0x1f')]=_0x428ee2;if(_0x5da8f1[_0xbc18('0x32')]['includeAll']){_0x39a50e[_0xbc18('0x41')]=[{'all':!![]}];}return db[_0xbc18('0x2b')]['findAll'](_0x39a50e);})[_0xbc18('0x24')](function(_0x259382){_0x154b70[_0xbc18('0x42')]=_0x259382;return _0x154b70;})['then'](respondWithFilteredResult(_0x5275d3,_0x39a50e))[_0xbc18('0x43')](handleError(_0x5275d3,null));};exports[_0xbc18('0x44')]=function(_0x3f60d8,_0x4d8b32){var _0x53dfee={'raw':![],'where':{'id':_0x3f60d8[_0xbc18('0x45')]['id']}},_0x38be8e={};_0x38be8e[_0xbc18('0x35')]=_[_0xbc18('0x31')](db[_0xbc18('0x2b')][_0xbc18('0x2c')]);_0x38be8e['query']=_[_0xbc18('0x31')](_0x3f60d8[_0xbc18('0x32')]);_0x38be8e[_0xbc18('0x33')]=_[_0xbc18('0x34')](_0x38be8e[_0xbc18('0x35')],_0x38be8e['query']);_0x53dfee[_0xbc18('0x36')]=_['intersection'](_0x38be8e['model'],qs[_0xbc18('0x37')](_0x3f60d8[_0xbc18('0x32')][_0xbc18('0x37')]));_0x53dfee[_0xbc18('0x36')]=_0x53dfee['attributes']['length']?_0x53dfee[_0xbc18('0x36')]:_0x38be8e['model'];if(_0x3f60d8[_0xbc18('0x32')][_0xbc18('0x46')]){_0x53dfee[_0xbc18('0x41')]=[{'all':!![]}];}_0x53dfee=_[_0xbc18('0x3e')]({},_0x53dfee,_0x3f60d8[_0xbc18('0x40')]);return db[_0xbc18('0x2b')][_0xbc18('0x47')](_0x53dfee)[_0xbc18('0x24')](handleEntityNotFound(_0x4d8b32,null))[_0xbc18('0x24')](respondWithResult(_0x4d8b32,null))['catch'](handleError(_0x4d8b32,null));};exports['create']=function(_0x2cd309,_0x25b643){return db['SugarcrmAccount'][_0xbc18('0x48')](_0x2cd309[_0xbc18('0x49')],{})[_0xbc18('0x24')](respondWithResult(_0x25b643,0xc9))[_0xbc18('0x43')](handleError(_0x25b643,null));};exports[_0xbc18('0x4a')]=function(_0x2f8e77,_0x5528bb){if(_0x2f8e77['body']['id']){delete _0x2f8e77['body']['id'];}return db[_0xbc18('0x2b')][_0xbc18('0x47')]({'where':{'id':_0x2f8e77[_0xbc18('0x45')]['id']}})[_0xbc18('0x24')](handleEntityNotFound(_0x5528bb,null))[_0xbc18('0x24')](saveUpdates(_0x2f8e77[_0xbc18('0x49')],null))[_0xbc18('0x24')](respondWithResult(_0x5528bb,null))[_0xbc18('0x43')](handleError(_0x5528bb,null));};exports[_0xbc18('0x25')]=function(_0x44f1b5,_0x20b6b5){return db[_0xbc18('0x2b')][_0xbc18('0x47')]({'where':{'id':_0x44f1b5[_0xbc18('0x45')]['id']}})[_0xbc18('0x24')](handleEntityNotFound(_0x20b6b5,null))[_0xbc18('0x24')](removeEntity(_0x20b6b5,null))[_0xbc18('0x43')](handleError(_0x20b6b5,null));};exports['getConfigurations']=function(_0x38732b,_0x23c96,_0x3dd3cb){var _0x18b832={};var _0x1f61cd={};var _0x2cad82;var _0x439b63;return db[_0xbc18('0x2b')][_0xbc18('0x4b')]({'where':{'id':_0x38732b['params']['id']}})['then'](handleEntityNotFound(_0x23c96,null))['then'](function(_0x23b456){if(_0x23b456){_0x2cad82=_0x23b456;_0x1f61cd[_0xbc18('0x35')]=_[_0xbc18('0x31')](db[_0xbc18('0x4c')][_0xbc18('0x2c')]);_0x1f61cd['query']=_[_0xbc18('0x31')](_0x38732b[_0xbc18('0x32')]);_0x1f61cd[_0xbc18('0x33')]=_[_0xbc18('0x34')](_0x1f61cd[_0xbc18('0x35')],_0x1f61cd['query']);_0x18b832[_0xbc18('0x36')]=_[_0xbc18('0x34')](_0x1f61cd[_0xbc18('0x35')],qs['fields'](_0x38732b[_0xbc18('0x32')][_0xbc18('0x37')]));_0x18b832[_0xbc18('0x36')]=_0x18b832[_0xbc18('0x36')][_0xbc18('0x38')]?_0x18b832[_0xbc18('0x36')]:_0x1f61cd[_0xbc18('0x35')];_0x18b832[_0xbc18('0x39')]=qs[_0xbc18('0x3a')](_0x38732b[_0xbc18('0x32')]['sort']);_0x18b832[_0xbc18('0x3b')]=qs[_0xbc18('0x33')](_['pick'](_0x38732b[_0xbc18('0x32')],_0x1f61cd[_0xbc18('0x33')]));if(_0x38732b['query'][_0xbc18('0x3d')]){_0x18b832[_0xbc18('0x3b')]=_['merge'](_0x18b832[_0xbc18('0x3b')],{'$or':_[_0xbc18('0x30')](_0x18b832[_0xbc18('0x36')],function(_0x4e962a){var _0x17cc5f={};_0x17cc5f[_0x4e962a]={'$like':'%'+_0x38732b[_0xbc18('0x32')]['filter']+'%'};return _0x17cc5f;})});}_0x18b832=_[_0xbc18('0x3e')]({},_0x18b832,_0x38732b[_0xbc18('0x40')]);return _0x2cad82['getConfigurations'](_0x18b832);}})['then'](function(_0x3455df){if(_0x3455df){_0x439b63=_0x3455df[_0xbc18('0x38')];if(!_0x38732b[_0xbc18('0x32')]['hasOwnProperty'](_0xbc18('0x4d'))){_0x18b832[_0xbc18('0x1d')]=qs[_0xbc18('0x1d')](_0x38732b[_0xbc18('0x32')][_0xbc18('0x1d')]);_0x18b832[_0xbc18('0x1c')]=qs[_0xbc18('0x1c')](_0x38732b[_0xbc18('0x32')][_0xbc18('0x1c')]);}return _0x2cad82['getConfigurations'](_0x18b832);}})[_0xbc18('0x24')](function(_0x16cb4d){if(_0x16cb4d){return _0x16cb4d?{'count':_0x439b63,'rows':_0x16cb4d}:null;}})[_0xbc18('0x24')](respondWithResult(_0x23c96,null))['catch'](handleError(_0x23c96,null));};exports[_0xbc18('0x4e')]=function(_0x4112a0,_0x130307,_0x2e254a){if(_0x4112a0['body']['id']){delete _0x4112a0[_0xbc18('0x49')]['id'];}return db[_0xbc18('0x2b')][_0xbc18('0x4b')]({'where':{'id':_0x4112a0['params']['id']}})['then'](handleEntityNotFound(_0x130307,null))['then'](function(_0x144bbe){if(_0x144bbe){_0x4112a0[_0xbc18('0x49')][_0xbc18('0x4f')]=_0x144bbe['id'];_0x4112a0['body']['Subjects']=integrations[_0xbc18('0x50')](_0x4112a0[_0xbc18('0x49')][_0xbc18('0x51')],_0x4112a0['body'][_0xbc18('0x2e')]);_0x4112a0['body']['Descriptions']=integrations['getDescriptions'](_0x4112a0[_0xbc18('0x49')][_0xbc18('0x51')],_0x4112a0['body']['type']);return db['SugarcrmConfiguration']['create'](_0x4112a0['body'],{'include':[{'model':db['SugarcrmField'],'as':_0xbc18('0x52')},{'model':db['SugarcrmField'],'as':'Descriptions'}]});}return null;})[_0xbc18('0x24')](respondWithResult(_0x130307,null))[_0xbc18('0x43')](handleError(_0x130307,null));};exports[_0xbc18('0x53')]=function(_0x3fdbd0,_0x57c007,_0x55fa44){var _0x46c5cd='';var _0xe0dc92=['id','name',_0xbc18('0x54'),_0xbc18('0x55'),_0xbc18('0x56'),_0xbc18('0x57'),_0xbc18('0x58'),_0xbc18('0x59'),_0xbc18('0x5a'),_0xbc18('0x5b'),_0xbc18('0x5c'),'direction'];return db[_0xbc18('0x2b')]['findOne']({'where':{'id':_0x3fdbd0[_0xbc18('0x45')]['id']},'attributes':['id',_0xbc18('0x5d'),_0xbc18('0x5e'),_0xbc18('0x5f')]})[_0xbc18('0x24')](handleEntityNotFound(_0x57c007,null))[_0xbc18('0x24')](function(_0x247a7e){if(_0x247a7e){_0x46c5cd=_0x247a7e['remoteUri'];var _0x320ac2=_0x46c5cd[_0xbc18('0x60')](-0x1);if(_0x320ac2==='/'){_0x46c5cd=_0x46c5cd[_0xbc18('0x61')](0x0,_0x46c5cd[_0xbc18('0x62')](_0x320ac2));}return rp({'method':'POST','uri':util[_0xbc18('0x63')](_0xbc18('0x64'),_0x46c5cd,_0xbc18('0x65')),'json':!![],'form':{'method':_0xbc18('0x66'),'input_type':_0xbc18('0x67'),'response_type':_0xbc18('0x67'),'rest_data':JSON[_0xbc18('0x68')]({'user_auth':{'user_name':_0x247a7e[_0xbc18('0x5d')],'password':_0x247a7e[_0xbc18('0x5e')],'encryption':_0xbc18('0x69')},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0xbc18('0x24')](function(_0x1a5e3f){if(_0x1a5e3f&&_0x1a5e3f[_0xbc18('0x28')]!=='Invalid\x20Login'&&_0x1a5e3f['name']!==_0xbc18('0x6a')){return rp({'method':_0xbc18('0x6b'),'uri':util[_0xbc18('0x63')]('%s%s',_0x46c5cd,_0xbc18('0x65')),'json':!![],'form':{'method':'get_module_fields','input_type':_0xbc18('0x67'),'response_type':_0xbc18('0x67'),'rest_data':JSON[_0xbc18('0x68')]({'session':_0x1a5e3f['id'],'module_name':_0xbc18('0x6c')})}})[_0xbc18('0x24')](function(_0x2fb120){if(_0x2fb120){var _0x36e568=_[_0xbc18('0x6d')](_0x2fb120[_0xbc18('0x6e')]);_[_0xbc18('0x6f')](_0x36e568,function(_0x3f28d4){return _0xe0dc92[_0xbc18('0x70')](_0x3f28d4[_0xbc18('0x28')]);});return{'count':_0x36e568['length'],'rows':_[_0xbc18('0x30')](_0x36e568,function(_0x333b6a){return{'id':_0x333b6a[_0xbc18('0x28')],'name':_0x333b6a[_0xbc18('0x71')],'custom':_['endsWith'](_0x333b6a[_0xbc18('0x28')],'_c')?!![]:![],'options':_0x333b6a['options']?_['map'](_[_0xbc18('0x6d')](_0x333b6a[_0xbc18('0x40')]),function(_0x337c10){return{'name':_0x337c10[_0xbc18('0x72')],'value':_0x337c10[_0xbc18('0x28')]};}):[]};})};}})['then'](respondWithResult(_0x57c007,null))[_0xbc18('0x43')](function(_0x5393a3){var _0x2aea7f=_0x3fdbd0[_0xbc18('0x32')][_0xbc18('0x73')]?0x1f4:_0x5393a3['statusCode']||0x1f4;logger[_0xbc18('0x26')]('getFields,\x20%s,\x20%s,\x20%s',_0xbc18('0x53'),_0x2aea7f,JSON['stringify'](_0x5393a3));delete _0x5393a3[_0xbc18('0x28')];if(_0x2aea7f===0x191){_0x2aea7f=0x190;}_0x57c007['status'](_0x2aea7f)['send'](_0x3fdbd0[_0xbc18('0x32')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x5393a3[_0xbc18('0x74')]}:_0x5393a3);});}else{var _0x116e56=0x1f4;_0x57c007['status'](_0x116e56)[_0xbc18('0x29')]({'message':_0xbc18('0x75'),'statusCode':0x190});}});};