Built motion from commit 9d7072cc.|2.5.39
[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 _0x307d=['sort','where','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','keys','create','body','find','getConfigurations','SugarcrmConfiguration','pick','addConfiguration','findOne','AccountId','Subjects','channel','Descriptions','getDescriptions','SugarcrmField','date_start','duration_hours','duration_minutes','parent_id','parent_type','parent_name','direction','username','remoteUri','slice','lastIndexOf','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','password','Invalid\x20Login','POST','get_module_fields','values','module_fields','remove','includes','endsWith','value','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','name','send','index','SugarcrmAccount','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','offset','order'];(function(_0x166d93,_0x301f09){var _0xba708=function(_0x349bf7){while(--_0x349bf7){_0x166d93['push'](_0x166d93['shift']());}};_0xba708(++_0x301f09);}(_0x307d,0x129));var _0xd307=function(_0xce4555,_0x15d886){_0xce4555=_0xce4555-0x0;var _0x490785=_0x307d[_0xce4555];return _0x490785;};'use strict';var emlformat=require(_0xd307('0x0'));var rimraf=require(_0xd307('0x1'));var zipdir=require(_0xd307('0x2'));var jsonpatch=require(_0xd307('0x3'));var rp=require(_0xd307('0x4'));var moment=require('moment');var BPromise=require(_0xd307('0x5'));var Mustache=require(_0xd307('0x6'));var util=require(_0xd307('0x7'));var path=require(_0xd307('0x8'));var sox=require('sox');var csv=require(_0xd307('0x9'));var ejs=require(_0xd307('0xa'));var fs=require('fs');var fs_extra=require(_0xd307('0xb'));var _=require('lodash');var squel=require(_0xd307('0xc'));var crypto=require('crypto');var jsforce=require(_0xd307('0xd'));var deskjs=require(_0xd307('0xe'));var toCsv=require(_0xd307('0x9'));var querystring=require(_0xd307('0xf'));var Papa=require('papaparse');var Redis=require(_0xd307('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xd307('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd307('0x12'));var logger=require(_0xd307('0x13'))(_0xd307('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xd307('0x15'));var db=require(_0xd307('0x16'))['db'];var integrations=require(_0xd307('0x17'));function respondWithStatusCode(_0x5b9802,_0x53d357){_0x53d357=_0x53d357||0xcc;return function(_0xe94b26){if(_0xe94b26){return _0x5b9802[_0xd307('0x18')](_0x53d357);}return _0x5b9802[_0xd307('0x19')](_0x53d357)[_0xd307('0x1a')]();};}function respondWithResult(_0x9fbe07,_0x897458){_0x897458=_0x897458||0xc8;return function(_0x16992b){if(_0x16992b){return _0x9fbe07['status'](_0x897458)[_0xd307('0x1b')](_0x16992b);}};}function respondWithFilteredResult(_0x25c21d,_0x28b1c4){return function(_0x2fe9d4){if(_0x2fe9d4){var _0x7d10ea=typeof _0x28b1c4['offset']===_0xd307('0x1c')&&typeof _0x28b1c4[_0xd307('0x1d')]===_0xd307('0x1c');var _0x1367e3=_0x2fe9d4[_0xd307('0x1e')];var _0x5de76b=_0x7d10ea?0x0:_0x28b1c4['offset'];var _0x2b2b89=_0x7d10ea?_0x2fe9d4[_0xd307('0x1e')]:_0x28b1c4['offset']+_0x28b1c4['limit'];var _0x3aa754;if(_0x2b2b89>=_0x1367e3){_0x2b2b89=_0x1367e3;_0x3aa754=0xc8;}else{_0x3aa754=0xce;}_0x25c21d['status'](_0x3aa754);return _0x25c21d[_0xd307('0x1f')](_0xd307('0x20'),_0x5de76b+'-'+_0x2b2b89+'/'+_0x1367e3)['json'](_0x2fe9d4);}return null;};}function patchUpdates(_0x269359){return function(_0x322320){try{jsonpatch[_0xd307('0x21')](_0x322320,_0x269359,!![]);}catch(_0x2498f5){return BPromise[_0xd307('0x22')](_0x2498f5);}return _0x322320[_0xd307('0x23')]();};}function saveUpdates(_0x4c0b8f,_0x3bc6ab){return function(_0x24e08b){if(_0x24e08b){return _0x24e08b[_0xd307('0x24')](_0x4c0b8f)[_0xd307('0x25')](function(_0x120985){return _0x120985;});}return null;};}function removeEntity(_0x5b6226,_0x15966a){return function(_0x58d3db){if(_0x58d3db){return _0x58d3db[_0xd307('0x26')]()[_0xd307('0x25')](function(){_0x5b6226[_0xd307('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2d09fb,_0x3730d5){return function(_0x58dca3){if(!_0x58dca3){_0x2d09fb[_0xd307('0x18')](0x194);}return _0x58dca3;};}function handleError(_0x159629,_0x522e83){_0x522e83=_0x522e83||0x1f4;return function(_0x4f535a){logger[_0xd307('0x27')](_0x4f535a['stack']);if(_0x4f535a[_0xd307('0x28')]){delete _0x4f535a['name'];}_0x159629['status'](_0x522e83)[_0xd307('0x29')](_0x4f535a);};}exports[_0xd307('0x2a')]=function(_0x5badeb,_0x825f4d){var _0xeb0f55={},_0x2577ec={},_0x2d7c29={'count':0x0,'rows':[]};var _0x1b3668=_['map'](db[_0xd307('0x2b')][_0xd307('0x2c')],function(_0x1e6807){return{'name':_0x1e6807[_0xd307('0x2d')],'type':_0x1e6807[_0xd307('0x2e')][_0xd307('0x2f')]};});_0x2577ec[_0xd307('0x30')]=_[_0xd307('0x31')](_0x1b3668,'name');_0x2577ec[_0xd307('0x32')]=_['keys'](_0x5badeb[_0xd307('0x32')]);_0x2577ec[_0xd307('0x33')]=_[_0xd307('0x34')](_0x2577ec[_0xd307('0x30')],_0x2577ec[_0xd307('0x32')]);_0xeb0f55['attributes']=_[_0xd307('0x34')](_0x2577ec[_0xd307('0x30')],qs[_0xd307('0x35')](_0x5badeb['query'][_0xd307('0x35')]));_0xeb0f55[_0xd307('0x36')]=_0xeb0f55[_0xd307('0x36')][_0xd307('0x37')]?_0xeb0f55['attributes']:_0x2577ec[_0xd307('0x30')];if(!_0x5badeb[_0xd307('0x32')][_0xd307('0x38')](_0xd307('0x39'))){_0xeb0f55['limit']=qs[_0xd307('0x1d')](_0x5badeb['query'][_0xd307('0x1d')]);_0xeb0f55[_0xd307('0x3a')]=qs[_0xd307('0x3a')](_0x5badeb[_0xd307('0x32')][_0xd307('0x3a')]);}_0xeb0f55[_0xd307('0x3b')]=qs[_0xd307('0x3c')](_0x5badeb[_0xd307('0x32')][_0xd307('0x3c')]);_0xeb0f55[_0xd307('0x3d')]=qs[_0xd307('0x33')](_['pick'](_0x5badeb[_0xd307('0x32')],_0x2577ec[_0xd307('0x33')]),_0x1b3668);if(_0x5badeb[_0xd307('0x32')][_0xd307('0x3e')]){_0xeb0f55[_0xd307('0x3d')]=_[_0xd307('0x3f')](_0xeb0f55[_0xd307('0x3d')],{'$or':_[_0xd307('0x31')](_0x1b3668,function(_0x73b318){if(_0x73b318[_0xd307('0x2e')]!==_0xd307('0x40')){var _0x570e13={};_0x570e13[_0x73b318[_0xd307('0x28')]]={'$like':'%'+_0x5badeb[_0xd307('0x32')]['filter']+'%'};return _0x570e13;}})});}_0xeb0f55=_[_0xd307('0x3f')]({},_0xeb0f55,_0x5badeb[_0xd307('0x41')]);var _0x418847={'where':_0xeb0f55[_0xd307('0x3d')]};return db['SugarcrmAccount']['count'](_0x418847)[_0xd307('0x25')](function(_0x22054e){_0x2d7c29[_0xd307('0x1e')]=_0x22054e;if(_0x5badeb[_0xd307('0x32')][_0xd307('0x42')]){_0xeb0f55[_0xd307('0x43')]=[{'all':!![]}];}return db['SugarcrmAccount']['findAll'](_0xeb0f55);})[_0xd307('0x25')](function(_0x3bcba7){_0x2d7c29[_0xd307('0x44')]=_0x3bcba7;return _0x2d7c29;})[_0xd307('0x25')](respondWithFilteredResult(_0x825f4d,_0xeb0f55))[_0xd307('0x45')](handleError(_0x825f4d,null));};exports[_0xd307('0x46')]=function(_0xab6213,_0x1e23f2){var _0x2fecab={'raw':![],'where':{'id':_0xab6213[_0xd307('0x47')]['id']}},_0x552a6f={};_0x552a6f['model']=_[_0xd307('0x48')](db[_0xd307('0x2b')][_0xd307('0x2c')]);_0x552a6f[_0xd307('0x32')]=_['keys'](_0xab6213[_0xd307('0x32')]);_0x552a6f['filters']=_['intersection'](_0x552a6f[_0xd307('0x30')],_0x552a6f[_0xd307('0x32')]);_0x2fecab[_0xd307('0x36')]=_[_0xd307('0x34')](_0x552a6f[_0xd307('0x30')],qs[_0xd307('0x35')](_0xab6213['query'][_0xd307('0x35')]));_0x2fecab[_0xd307('0x36')]=_0x2fecab[_0xd307('0x36')]['length']?_0x2fecab[_0xd307('0x36')]:_0x552a6f[_0xd307('0x30')];if(_0xab6213['query'][_0xd307('0x42')]){_0x2fecab['include']=[{'all':!![]}];}_0x2fecab=_[_0xd307('0x3f')]({},_0x2fecab,_0xab6213[_0xd307('0x41')]);return db[_0xd307('0x2b')]['find'](_0x2fecab)[_0xd307('0x25')](handleEntityNotFound(_0x1e23f2,null))[_0xd307('0x25')](respondWithResult(_0x1e23f2,null))[_0xd307('0x45')](handleError(_0x1e23f2,null));};exports[_0xd307('0x49')]=function(_0x556732,_0x335511){return db[_0xd307('0x2b')][_0xd307('0x49')](_0x556732[_0xd307('0x4a')],{})[_0xd307('0x25')](respondWithResult(_0x335511,0xc9))['catch'](handleError(_0x335511,null));};exports[_0xd307('0x24')]=function(_0xd47c4e,_0x15d0ed){if(_0xd47c4e['body']['id']){delete _0xd47c4e['body']['id'];}return db[_0xd307('0x2b')][_0xd307('0x4b')]({'where':{'id':_0xd47c4e[_0xd307('0x47')]['id']}})[_0xd307('0x25')](handleEntityNotFound(_0x15d0ed,null))[_0xd307('0x25')](saveUpdates(_0xd47c4e['body'],null))[_0xd307('0x25')](respondWithResult(_0x15d0ed,null))[_0xd307('0x45')](handleError(_0x15d0ed,null));};exports[_0xd307('0x26')]=function(_0x3b5c78,_0x1ef2e6){return db[_0xd307('0x2b')][_0xd307('0x4b')]({'where':{'id':_0x3b5c78[_0xd307('0x47')]['id']}})[_0xd307('0x25')](handleEntityNotFound(_0x1ef2e6,null))[_0xd307('0x25')](removeEntity(_0x1ef2e6,null))[_0xd307('0x45')](handleError(_0x1ef2e6,null));};exports[_0xd307('0x4c')]=function(_0xdedd4d,_0x22e834,_0x478147){var _0x3fd6db={};var _0x5b2425={};var _0x498874;var _0x12cfdd;return db['SugarcrmAccount']['findOne']({'where':{'id':_0xdedd4d[_0xd307('0x47')]['id']}})[_0xd307('0x25')](handleEntityNotFound(_0x22e834,null))['then'](function(_0x382016){if(_0x382016){_0x498874=_0x382016;_0x5b2425['model']=_['keys'](db[_0xd307('0x4d')][_0xd307('0x2c')]);_0x5b2425['query']=_['keys'](_0xdedd4d[_0xd307('0x32')]);_0x5b2425[_0xd307('0x33')]=_[_0xd307('0x34')](_0x5b2425[_0xd307('0x30')],_0x5b2425[_0xd307('0x32')]);_0x3fd6db['attributes']=_['intersection'](_0x5b2425[_0xd307('0x30')],qs['fields'](_0xdedd4d[_0xd307('0x32')][_0xd307('0x35')]));_0x3fd6db['attributes']=_0x3fd6db[_0xd307('0x36')][_0xd307('0x37')]?_0x3fd6db[_0xd307('0x36')]:_0x5b2425[_0xd307('0x30')];_0x3fd6db[_0xd307('0x3b')]=qs[_0xd307('0x3c')](_0xdedd4d[_0xd307('0x32')]['sort']);_0x3fd6db[_0xd307('0x3d')]=qs['filters'](_[_0xd307('0x4e')](_0xdedd4d[_0xd307('0x32')],_0x5b2425[_0xd307('0x33')]));if(_0xdedd4d[_0xd307('0x32')][_0xd307('0x3e')]){_0x3fd6db['where']=_[_0xd307('0x3f')](_0x3fd6db[_0xd307('0x3d')],{'$or':_[_0xd307('0x31')](_0x3fd6db[_0xd307('0x36')],function(_0x376df8){var _0x28290a={};_0x28290a[_0x376df8]={'$like':'%'+_0xdedd4d['query'][_0xd307('0x3e')]+'%'};return _0x28290a;})});}_0x3fd6db=_['merge']({},_0x3fd6db,_0xdedd4d[_0xd307('0x41')]);return _0x498874[_0xd307('0x4c')](_0x3fd6db);}})[_0xd307('0x25')](function(_0x4a6a44){if(_0x4a6a44){_0x12cfdd=_0x4a6a44['length'];if(!_0xdedd4d[_0xd307('0x32')][_0xd307('0x38')](_0xd307('0x39'))){_0x3fd6db[_0xd307('0x1d')]=qs[_0xd307('0x1d')](_0xdedd4d[_0xd307('0x32')][_0xd307('0x1d')]);_0x3fd6db[_0xd307('0x3a')]=qs[_0xd307('0x3a')](_0xdedd4d[_0xd307('0x32')][_0xd307('0x3a')]);}return _0x498874[_0xd307('0x4c')](_0x3fd6db);}})['then'](function(_0x59a2e9){if(_0x59a2e9){return _0x59a2e9?{'count':_0x12cfdd,'rows':_0x59a2e9}:null;}})[_0xd307('0x25')](respondWithResult(_0x22e834,null))[_0xd307('0x45')](handleError(_0x22e834,null));};exports[_0xd307('0x4f')]=function(_0x14e933,_0x32451d,_0x5e4313){if(_0x14e933['body']['id']){delete _0x14e933[_0xd307('0x4a')]['id'];}return db[_0xd307('0x2b')][_0xd307('0x50')]({'where':{'id':_0x14e933[_0xd307('0x47')]['id']}})[_0xd307('0x25')](handleEntityNotFound(_0x32451d,null))[_0xd307('0x25')](function(_0x2d4059){if(_0x2d4059){_0x14e933['body'][_0xd307('0x51')]=_0x2d4059['id'];_0x14e933[_0xd307('0x4a')][_0xd307('0x52')]=integrations['getSubjects'](_0x14e933[_0xd307('0x4a')][_0xd307('0x53')],_0x14e933[_0xd307('0x4a')][_0xd307('0x2e')]);_0x14e933[_0xd307('0x4a')][_0xd307('0x54')]=integrations[_0xd307('0x55')](_0x14e933['body']['channel'],_0x14e933[_0xd307('0x4a')][_0xd307('0x2e')]);return db[_0xd307('0x4d')][_0xd307('0x49')](_0x14e933['body'],{'include':[{'model':db[_0xd307('0x56')],'as':_0xd307('0x52')},{'model':db[_0xd307('0x56')],'as':_0xd307('0x54')}]});}return null;})[_0xd307('0x25')](respondWithResult(_0x32451d,null))[_0xd307('0x45')](handleError(_0x32451d,null));};exports['getFields']=function(_0x2ecbc6,_0x267c83,_0x530453){var _0x3ee427='';var _0xeb516=['id','name','assigned_user_id','created_by','description',_0xd307('0x57'),_0xd307('0x58'),_0xd307('0x59'),_0xd307('0x5a'),_0xd307('0x5b'),_0xd307('0x5c'),_0xd307('0x5d')];return db['SugarcrmAccount'][_0xd307('0x50')]({'where':{'id':_0x2ecbc6[_0xd307('0x47')]['id']},'attributes':['id',_0xd307('0x5e'),'password',_0xd307('0x5f')]})['then'](handleEntityNotFound(_0x267c83,null))[_0xd307('0x25')](function(_0xb5b08e){if(_0xb5b08e){_0x3ee427=_0xb5b08e[_0xd307('0x5f')];var _0x8077d2=_0x3ee427[_0xd307('0x60')](-0x1);if(_0x8077d2==='/'){_0x3ee427=_0x3ee427['substring'](0x0,_0x3ee427[_0xd307('0x61')](_0x8077d2));}return rp({'method':'POST','uri':util[_0xd307('0x62')](_0xd307('0x63'),_0x3ee427,_0xd307('0x64')),'json':!![],'form':{'method':_0xd307('0x65'),'input_type':_0xd307('0x66'),'response_type':_0xd307('0x66'),'rest_data':JSON[_0xd307('0x67')]({'user_auth':{'user_name':_0xb5b08e['username'],'password':_0xb5b08e[_0xd307('0x68')],'encryption':'PLAIN'},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0xd307('0x25')](function(_0x3eb307){if(_0x3eb307&&_0x3eb307['name']!==_0xd307('0x69')&&_0x3eb307[_0xd307('0x28')]!=='Password\x20Expired'){return rp({'method':_0xd307('0x6a'),'uri':util['format'](_0xd307('0x63'),_0x3ee427,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0xd307('0x6b'),'input_type':'JSON','response_type':_0xd307('0x66'),'rest_data':JSON[_0xd307('0x67')]({'session':_0x3eb307['id'],'module_name':'Calls'})}})['then'](function(_0x1b34e0){if(_0x1b34e0){var _0x3ad76f=_[_0xd307('0x6c')](_0x1b34e0[_0xd307('0x6d')]);_[_0xd307('0x6e')](_0x3ad76f,function(_0x26e6b4){return _0xeb516[_0xd307('0x6f')](_0x26e6b4[_0xd307('0x28')]);});return{'count':_0x3ad76f['length'],'rows':_[_0xd307('0x31')](_0x3ad76f,function(_0x384664){return{'id':_0x384664[_0xd307('0x28')],'name':_0x384664['label'],'custom':_[_0xd307('0x70')](_0x384664['name'],'_c')?!![]:![],'options':_0x384664[_0xd307('0x41')]?_[_0xd307('0x31')](_[_0xd307('0x6c')](_0x384664['options']),function(_0x339b41){return{'name':_0x339b41[_0xd307('0x71')],'value':_0x339b41[_0xd307('0x28')]};}):[]};})};}})[_0xd307('0x25')](respondWithResult(_0x267c83,null))['catch'](function(_0x379288){var _0x42089b=_0x2ecbc6[_0xd307('0x32')][_0xd307('0x72')]?0x1f4:_0x379288[_0xd307('0x73')]||0x1f4;logger[_0xd307('0x27')](_0xd307('0x74'),_0xd307('0x75'),_0x42089b,JSON[_0xd307('0x67')](_0x379288));delete _0x379288[_0xd307('0x28')];if(_0x42089b===0x191){_0x42089b=0x190;}_0x267c83[_0xd307('0x19')](_0x42089b)[_0xd307('0x29')](_0x2ecbc6[_0xd307('0x32')][_0xd307('0x72')]?{'message':'Wrong\x20credentials','statusCode':_0x379288[_0xd307('0x73')]}:_0x379288);});}else{var _0x3866cf=0x1f4;_0x267c83['status'](_0x3866cf)[_0xd307('0x29')]({'message':_0xd307('0x76'),'statusCode':0x190});}});};