dc3eb3bc5ecfd4dbc73c6dcf7e3a08b841540b04
[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 _0x8927=['util','path','sox','to-csv','ejs','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','then','request\x20sent','debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','SugarcrmAccount,\x20%s,\x20%s','message','info','result','status','end','json','count','offset','limit','set','apply','reject','save','update','destroy','sendStatus','stack','name','send','SugarcrmAccount','rawAttributes','type','key','map','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','catch','params','find','create','body','getConfigurations','findOne','SugarcrmConfiguration','addConfiguration','AccountId','Subjects','channel','Descriptions','getDescriptions','SugarcrmField','getFields','assigned_user_id','created_by','description','date_start','duration_hours','duration_minutes','parent_id','parent_name','direction','username','remoteUri','slice','substring','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','password','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','get_module_fields','Calls','values','module_fields','includes','label','test','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','moment'];(function(_0x448970,_0x44b9b4){var _0x2fa420=function(_0x10a754){while(--_0x10a754){_0x448970['push'](_0x448970['shift']());}};_0x2fa420(++_0x44b9b4);}(_0x8927,0x7b));var _0x7892=function(_0x2e31b0,_0x52a170){_0x2e31b0=_0x2e31b0-0x0;var _0x57b64e=_0x8927[_0x2e31b0];return _0x57b64e;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x7892('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7892('0x1'));var jsonpatch=require(_0x7892('0x2'));var rp=require('request-promise');var moment=require(_0x7892('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x7892('0x4'));var path=require(_0x7892('0x5'));var sox=require(_0x7892('0x6'));var csv=require(_0x7892('0x7'));var ejs=require(_0x7892('0x8'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x7892('0x9'));var deskjs=require(_0x7892('0xa'));var toCsv=require('to-csv');var querystring=require(_0x7892('0xb'));var Papa=require(_0x7892('0xc'));var Redis=require(_0x7892('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x7892('0xe'));var hardwareService=require(_0x7892('0xf'));var logger=require(_0x7892('0x10'))(_0x7892('0x11'));var utils=require('../../config/utils');var config=require(_0x7892('0x12'));var licenseUtil=require(_0x7892('0x13'));var db=require(_0x7892('0x14'))['db'];var integrations=require(_0x7892('0x15'));var jayson=require(_0x7892('0x16'));var client=jayson[_0x7892('0x17')][_0x7892('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x576330,_0x4ee21a,_0x5b64b4,_0x31d53e){return new BPromise(function(_0x57c298,_0x51156a){var _0x563dde=_0x31d53e||client;return _0x563dde['request'](_0x576330,_0x5b64b4)[_0x7892('0x19')](function(_0x32dfc8){logger['info']('SugarcrmAccount,\x20%s,\x20%s',_0x4ee21a,_0x7892('0x1a'));logger[_0x7892('0x1b')](_0x7892('0x1c'),_0x4ee21a,_0x7892('0x1a'),JSON[_0x7892('0x1d')](_0x32dfc8));if(_0x32dfc8[_0x7892('0x1e')]){if(_0x32dfc8[_0x7892('0x1e')][_0x7892('0x1f')]===0x1f4){logger[_0x7892('0x1e')](_0x7892('0x20'),_0x4ee21a,_0x32dfc8[_0x7892('0x1e')][_0x7892('0x21')]);return _0x51156a(_0x32dfc8[_0x7892('0x1e')][_0x7892('0x21')]);}logger[_0x7892('0x1e')](_0x7892('0x20'),_0x4ee21a,_0x32dfc8[_0x7892('0x1e')][_0x7892('0x21')]);return _0x57c298(_0x32dfc8[_0x7892('0x1e')][_0x7892('0x21')]);}else{logger[_0x7892('0x22')]('SugarcrmAccount,\x20%s,\x20%s',_0x4ee21a,'request\x20sent');_0x57c298(_0x32dfc8[_0x7892('0x23')][_0x7892('0x21')]);}})['catch'](function(_0x131759){logger[_0x7892('0x1e')](_0x7892('0x20'),_0x4ee21a,_0x131759);_0x51156a(_0x131759);});});}function respondWithStatusCode(_0x1930a3,_0x29776a){_0x29776a=_0x29776a||0xcc;return function(_0x5255bc){if(_0x5255bc){return _0x1930a3['sendStatus'](_0x29776a);}return _0x1930a3[_0x7892('0x24')](_0x29776a)[_0x7892('0x25')]();};}function respondWithResult(_0x1060ed,_0x324377){_0x324377=_0x324377||0xc8;return function(_0x58f4f4){if(_0x58f4f4){return _0x1060ed[_0x7892('0x24')](_0x324377)[_0x7892('0x26')](_0x58f4f4);}};}function respondWithFilteredResult(_0x9c8dc3,_0x21215f){return function(_0x5c7e0f){if(_0x5c7e0f){var _0x52945a=_0x5c7e0f[_0x7892('0x27')],_0x67a87b=_0x21215f[_0x7892('0x28')],_0x79e147=_0x21215f['offset']+_0x21215f[_0x7892('0x29')],_0x1bb7fb;if(_0x79e147>=_0x52945a){_0x79e147=_0x52945a;_0x1bb7fb=0xc8;}else{_0x1bb7fb=0xce;}_0x9c8dc3['status'](_0x1bb7fb);return _0x9c8dc3[_0x7892('0x2a')]('Content-Range',_0x67a87b+'-'+_0x79e147+'/'+_0x52945a)['json'](_0x5c7e0f);}return null;};}function patchUpdates(_0x2d38f6){return function(_0xe55b4){try{jsonpatch[_0x7892('0x2b')](_0xe55b4,_0x2d38f6,!![]);}catch(_0xbaf7ca){return BPromise[_0x7892('0x2c')](_0xbaf7ca);}return _0xe55b4[_0x7892('0x2d')]();};}function saveUpdates(_0x42707f,_0x17f7da){return function(_0x1d7417){if(_0x1d7417){return _0x1d7417[_0x7892('0x2e')](_0x42707f)[_0x7892('0x19')](function(_0x119025){return _0x119025;});}return null;};}function removeEntity(_0xb7dea2,_0x23be74){return function(_0x38d625){if(_0x38d625){return _0x38d625[_0x7892('0x2f')]()[_0x7892('0x19')](function(){_0xb7dea2[_0x7892('0x24')](0xcc)[_0x7892('0x25')]();});}};}function handleEntityNotFound(_0x23a25f,_0x2d1e55){return function(_0x11bc5c){if(!_0x11bc5c){_0x23a25f[_0x7892('0x30')](0x194);}return _0x11bc5c;};}function handleError(_0x202919,_0x253fbf){_0x253fbf=_0x253fbf||0x1f4;return function(_0xac0d7f){logger['error'](_0xac0d7f[_0x7892('0x31')]);if(_0xac0d7f[_0x7892('0x32')]){delete _0xac0d7f[_0x7892('0x32')];}_0x202919[_0x7892('0x24')](_0x253fbf)[_0x7892('0x33')](_0xac0d7f);};}exports['index']=function(_0x26d296,_0x4a2c01){var _0x35e492={},_0x23f78e={},_0x293d4b={'count':0x0,'rows':[]};var _0x43f510=_['map'](db[_0x7892('0x34')][_0x7892('0x35')],function(_0x317c60){return{'name':_0x317c60['fieldName'],'type':_0x317c60[_0x7892('0x36')][_0x7892('0x37')]};});_0x23f78e['model']=_[_0x7892('0x38')](_0x43f510,_0x7892('0x32'));_0x23f78e[_0x7892('0x39')]=_[_0x7892('0x3a')](_0x26d296[_0x7892('0x39')]);_0x23f78e[_0x7892('0x3b')]=_[_0x7892('0x3c')](_0x23f78e[_0x7892('0x3d')],_0x23f78e[_0x7892('0x39')]);_0x35e492[_0x7892('0x3e')]=_[_0x7892('0x3c')](_0x23f78e[_0x7892('0x3d')],qs[_0x7892('0x3f')](_0x26d296[_0x7892('0x39')]['fields']));_0x35e492[_0x7892('0x3e')]=_0x35e492[_0x7892('0x3e')][_0x7892('0x40')]?_0x35e492[_0x7892('0x3e')]:_0x23f78e['model'];if(!_0x26d296[_0x7892('0x39')][_0x7892('0x41')](_0x7892('0x42'))){_0x35e492[_0x7892('0x29')]=qs[_0x7892('0x29')](_0x26d296[_0x7892('0x39')][_0x7892('0x29')]);_0x35e492[_0x7892('0x28')]=qs[_0x7892('0x28')](_0x26d296[_0x7892('0x39')][_0x7892('0x28')]);}_0x35e492[_0x7892('0x43')]=qs['sort'](_0x26d296[_0x7892('0x39')][_0x7892('0x44')]);_0x35e492[_0x7892('0x45')]=qs[_0x7892('0x3b')](_[_0x7892('0x46')](_0x26d296['query'],_0x23f78e[_0x7892('0x3b')]),_0x43f510);if(_0x26d296[_0x7892('0x39')]['filter']){_0x35e492['where']=_[_0x7892('0x47')](_0x35e492[_0x7892('0x45')],{'$or':_[_0x7892('0x38')](_0x43f510,function(_0x28fd4b){if(_0x28fd4b[_0x7892('0x36')]!==_0x7892('0x48')){var _0xcaa5b={};_0xcaa5b[_0x28fd4b['name']]={'$like':'%'+_0x26d296[_0x7892('0x39')][_0x7892('0x49')]+'%'};return _0xcaa5b;}})});}_0x35e492=_[_0x7892('0x47')]({},_0x35e492,_0x26d296[_0x7892('0x4a')]);var _0x151018={'where':_0x35e492[_0x7892('0x45')]};return db[_0x7892('0x34')][_0x7892('0x27')](_0x151018)[_0x7892('0x19')](function(_0x355c9f){_0x293d4b[_0x7892('0x27')]=_0x355c9f;if(_0x26d296[_0x7892('0x39')][_0x7892('0x4b')]){_0x35e492[_0x7892('0x4c')]=[{'all':!![]}];}return db[_0x7892('0x34')][_0x7892('0x4d')](_0x35e492);})[_0x7892('0x19')](function(_0x1e485e){_0x293d4b['rows']=_0x1e485e;return _0x293d4b;})[_0x7892('0x19')](respondWithFilteredResult(_0x4a2c01,_0x35e492))[_0x7892('0x4e')](handleError(_0x4a2c01,null));};exports['show']=function(_0x11faf0,_0x271ac3){var _0x11699d={'raw':![],'where':{'id':_0x11faf0[_0x7892('0x4f')]['id']}},_0x43fd17={};_0x43fd17[_0x7892('0x3d')]=_[_0x7892('0x3a')](db[_0x7892('0x34')]['rawAttributes']);_0x43fd17[_0x7892('0x39')]=_[_0x7892('0x3a')](_0x11faf0['query']);_0x43fd17[_0x7892('0x3b')]=_[_0x7892('0x3c')](_0x43fd17[_0x7892('0x3d')],_0x43fd17[_0x7892('0x39')]);_0x11699d['attributes']=_[_0x7892('0x3c')](_0x43fd17[_0x7892('0x3d')],qs[_0x7892('0x3f')](_0x11faf0[_0x7892('0x39')]['fields']));_0x11699d[_0x7892('0x3e')]=_0x11699d[_0x7892('0x3e')][_0x7892('0x40')]?_0x11699d[_0x7892('0x3e')]:_0x43fd17['model'];if(_0x11faf0[_0x7892('0x39')][_0x7892('0x4b')]){_0x11699d[_0x7892('0x4c')]=[{'all':!![]}];}_0x11699d=_[_0x7892('0x47')]({},_0x11699d,_0x11faf0[_0x7892('0x4a')]);return db[_0x7892('0x34')][_0x7892('0x50')](_0x11699d)[_0x7892('0x19')](handleEntityNotFound(_0x271ac3,null))[_0x7892('0x19')](respondWithResult(_0x271ac3,null))[_0x7892('0x4e')](handleError(_0x271ac3,null));};exports['create']=function(_0x22c9c9,_0x52186d){return db[_0x7892('0x34')][_0x7892('0x51')](_0x22c9c9[_0x7892('0x52')],{})[_0x7892('0x19')](respondWithResult(_0x52186d,0xc9))['catch'](handleError(_0x52186d,null));};exports[_0x7892('0x2e')]=function(_0x50fcdc,_0x17511d){if(_0x50fcdc['body']['id']){delete _0x50fcdc[_0x7892('0x52')]['id'];}return db[_0x7892('0x34')][_0x7892('0x50')]({'where':{'id':_0x50fcdc[_0x7892('0x4f')]['id']}})[_0x7892('0x19')](handleEntityNotFound(_0x17511d,null))[_0x7892('0x19')](saveUpdates(_0x50fcdc['body'],null))[_0x7892('0x19')](respondWithResult(_0x17511d,null))[_0x7892('0x4e')](handleError(_0x17511d,null));};exports['destroy']=function(_0x328e3b,_0x48c1c2){return db[_0x7892('0x34')][_0x7892('0x50')]({'where':{'id':_0x328e3b[_0x7892('0x4f')]['id']}})['then'](handleEntityNotFound(_0x48c1c2,null))[_0x7892('0x19')](removeEntity(_0x48c1c2,null))['catch'](handleError(_0x48c1c2,null));};exports[_0x7892('0x53')]=function(_0x17c096,_0x32800c,_0x7334e6){var _0x6d4d82={};var _0x5999ef={};var _0x48fd98;var _0x548b05;return db[_0x7892('0x34')][_0x7892('0x54')]({'where':{'id':_0x17c096[_0x7892('0x4f')]['id']}})['then'](handleEntityNotFound(_0x32800c,null))['then'](function(_0x418391){if(_0x418391){_0x48fd98=_0x418391;_0x5999ef[_0x7892('0x3d')]=_[_0x7892('0x3a')](db[_0x7892('0x55')]['rawAttributes']);_0x5999ef[_0x7892('0x39')]=_[_0x7892('0x3a')](_0x17c096[_0x7892('0x39')]);_0x5999ef[_0x7892('0x3b')]=_[_0x7892('0x3c')](_0x5999ef[_0x7892('0x3d')],_0x5999ef[_0x7892('0x39')]);_0x6d4d82[_0x7892('0x3e')]=_[_0x7892('0x3c')](_0x5999ef['model'],qs[_0x7892('0x3f')](_0x17c096[_0x7892('0x39')][_0x7892('0x3f')]));_0x6d4d82[_0x7892('0x3e')]=_0x6d4d82[_0x7892('0x3e')][_0x7892('0x40')]?_0x6d4d82[_0x7892('0x3e')]:_0x5999ef[_0x7892('0x3d')];_0x6d4d82[_0x7892('0x43')]=qs['sort'](_0x17c096[_0x7892('0x39')]['sort']);_0x6d4d82[_0x7892('0x45')]=qs['filters'](_[_0x7892('0x46')](_0x17c096['query'],_0x5999ef[_0x7892('0x3b')]));if(_0x17c096[_0x7892('0x39')]['filter']){_0x6d4d82['where']=_[_0x7892('0x47')](_0x6d4d82[_0x7892('0x45')],{'$or':_[_0x7892('0x38')](_0x6d4d82['attributes'],function(_0x60aa3b){var _0xb8ec3a={};_0xb8ec3a[_0x60aa3b]={'$like':'%'+_0x17c096[_0x7892('0x39')][_0x7892('0x49')]+'%'};return _0xb8ec3a;})});}_0x6d4d82=_[_0x7892('0x47')]({},_0x6d4d82,_0x17c096['options']);return _0x48fd98[_0x7892('0x53')](_0x6d4d82);}})[_0x7892('0x19')](function(_0x2a3b08){if(_0x2a3b08){_0x548b05=_0x2a3b08[_0x7892('0x40')];if(!_0x17c096['query'][_0x7892('0x41')](_0x7892('0x42'))){_0x6d4d82[_0x7892('0x29')]=qs[_0x7892('0x29')](_0x17c096[_0x7892('0x39')]['limit']);_0x6d4d82[_0x7892('0x28')]=qs[_0x7892('0x28')](_0x17c096[_0x7892('0x39')][_0x7892('0x28')]);}return _0x48fd98[_0x7892('0x53')](_0x6d4d82);}})[_0x7892('0x19')](function(_0x12da06){if(_0x12da06){return _0x12da06?{'count':_0x548b05,'rows':_0x12da06}:null;}})[_0x7892('0x19')](respondWithResult(_0x32800c,null))['catch'](handleError(_0x32800c,null));};exports[_0x7892('0x56')]=function(_0x921e09,_0x1f25d9,_0x1f4ddd){if(_0x921e09[_0x7892('0x52')]['id']){delete _0x921e09['body']['id'];}return db['SugarcrmAccount'][_0x7892('0x54')]({'where':{'id':_0x921e09['params']['id']}})[_0x7892('0x19')](handleEntityNotFound(_0x1f25d9,null))[_0x7892('0x19')](function(_0x438c63){if(_0x438c63){_0x921e09['body'][_0x7892('0x57')]=_0x438c63['id'];_0x921e09[_0x7892('0x52')][_0x7892('0x58')]=integrations['getSubjects'](_0x921e09[_0x7892('0x52')][_0x7892('0x59')],_0x921e09[_0x7892('0x52')]['type']);_0x921e09[_0x7892('0x52')][_0x7892('0x5a')]=integrations[_0x7892('0x5b')](_0x921e09[_0x7892('0x52')]['channel'],_0x921e09[_0x7892('0x52')][_0x7892('0x36')]);return db[_0x7892('0x55')][_0x7892('0x51')](_0x921e09[_0x7892('0x52')],{'include':[{'model':db[_0x7892('0x5c')],'as':_0x7892('0x58')},{'model':db[_0x7892('0x5c')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x1f25d9,null))[_0x7892('0x4e')](handleError(_0x1f25d9,null));};exports[_0x7892('0x5d')]=function(_0x5c23a5,_0x6907a3,_0x57021b){var _0x2f105b='';var _0x53c79b=['id',_0x7892('0x32'),_0x7892('0x5e'),_0x7892('0x5f'),_0x7892('0x60'),_0x7892('0x61'),_0x7892('0x62'),_0x7892('0x63'),_0x7892('0x64'),'parent_type',_0x7892('0x65'),_0x7892('0x66')];return db[_0x7892('0x34')][_0x7892('0x54')]({'where':{'id':_0x5c23a5[_0x7892('0x4f')]['id']},'attributes':['id',_0x7892('0x67'),'password','remoteUri']})[_0x7892('0x19')](handleEntityNotFound(_0x6907a3,null))['then'](function(_0xbcd5c2){if(_0xbcd5c2){_0x2f105b=_0xbcd5c2[_0x7892('0x68')];var _0x40d55f=_0x2f105b[_0x7892('0x69')](-0x1);if(_0x40d55f==='/'){_0x2f105b=_0x2f105b[_0x7892('0x6a')](0x0,_0x2f105b['lastIndexOf'](_0x40d55f));}return rp({'method':_0x7892('0x6b'),'uri':util[_0x7892('0x6c')](_0x7892('0x6d'),_0x2f105b,_0x7892('0x6e')),'json':!![],'form':{'method':_0x7892('0x6f'),'input_type':_0x7892('0x70'),'response_type':_0x7892('0x70'),'rest_data':JSON[_0x7892('0x1d')]({'user_auth':{'user_name':_0xbcd5c2[_0x7892('0x67')],'password':_0xbcd5c2[_0x7892('0x71')],'encryption':_0x7892('0x72')},'application':_0x7892('0x73')})}});}})[_0x7892('0x19')](function(_0x2c39d4){if(_0x2c39d4&&_0x2c39d4[_0x7892('0x32')]!==_0x7892('0x74')&&_0x2c39d4[_0x7892('0x32')]!==_0x7892('0x75')){return rp({'method':'POST','uri':util[_0x7892('0x6c')]('%s%s',_0x2f105b,_0x7892('0x6e')),'json':!![],'form':{'method':_0x7892('0x76'),'input_type':_0x7892('0x70'),'response_type':_0x7892('0x70'),'rest_data':JSON[_0x7892('0x1d')]({'session':_0x2c39d4['id'],'module_name':_0x7892('0x77')})}})[_0x7892('0x19')](function(_0x518b76){if(_0x518b76){var _0xe52104=_[_0x7892('0x78')](_0x518b76[_0x7892('0x79')]);_['remove'](_0xe52104,function(_0x436c60){return _0x53c79b[_0x7892('0x7a')](_0x436c60[_0x7892('0x32')]);});return{'count':_0xe52104[_0x7892('0x40')],'rows':_['map'](_0xe52104,function(_0x430bba){return{'id':_0x430bba[_0x7892('0x32')],'name':_0x430bba[_0x7892('0x7b')],'custom':_['endsWith'](_0x430bba['name'],'_c')?!![]:![],'options':_0x430bba['options']?_['map'](_['values'](_0x430bba[_0x7892('0x4a')]),function(_0x54e84b){return{'name':_0x54e84b['value'],'value':_0x54e84b['name']};}):[]};})};}})[_0x7892('0x19')](respondWithResult(_0x6907a3,null))[_0x7892('0x4e')](function(_0x3b75f0){var _0x5726d6=_0x5c23a5[_0x7892('0x39')][_0x7892('0x7c')]?0x1f4:_0x3b75f0['statusCode']||0x1f4;logger[_0x7892('0x1e')](_0x7892('0x7d'),_0x7892('0x5d'),_0x5726d6,JSON['stringify'](_0x3b75f0));delete _0x3b75f0[_0x7892('0x32')];if(_0x5726d6===0x191){_0x5726d6=0x190;}_0x6907a3[_0x7892('0x24')](_0x5726d6)[_0x7892('0x33')](_0x5c23a5[_0x7892('0x39')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x3b75f0['statusCode']}:_0x3b75f0);});}else{var _0x156397=0x1f4;_0x6907a3['status'](_0x156397)[_0x7892('0x33')]({'message':_0x7892('0x7e'),'statusCode':0x190});}});};