Built motion from commit da617fac.|2.6.6
[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 _0x9601=['querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','reject','save','update','then','destroy','error','stack','name','send','index','SugarcrmAccount','fieldName','type','key','model','map','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','merge','VIRTUAL','filter','options','includeAll','include','rows','show','rawAttributes','find','create','body','catch','params','getConfigurations','findOne','SugarcrmConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','SugarcrmField','getFields','assigned_user_id','created_by','description','date_start','duration_hours','parent_id','parent_type','direction','password','remoteUri','slice','substring','POST','format','/service/v4_1/rest.php','login','JSON','PLAIN','Password\x20Expired','%s%s','stringify','Calls','values','remove','includes','endsWith','value','test','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js'];(function(_0x3ed4c9,_0x335faf){var _0xb7e48f=function(_0x359a45){while(--_0x359a45){_0x3ed4c9['push'](_0x3ed4c9['shift']());}};_0xb7e48f(++_0x335faf);}(_0x9601,0xdb));var _0x1960=function(_0x59067f,_0x2a9104){_0x59067f=_0x59067f-0x0;var _0x3d99b=_0x9601[_0x59067f];return _0x3d99b;};'use strict';var emlformat=require(_0x1960('0x0'));var rimraf=require(_0x1960('0x1'));var zipdir=require(_0x1960('0x2'));var jsonpatch=require(_0x1960('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x1960('0x4'));var Mustache=require(_0x1960('0x5'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x1960('0x6'));var ejs=require(_0x1960('0x7'));var fs=require('fs');var fs_extra=require(_0x1960('0x8'));var _=require('lodash');var squel=require(_0x1960('0x9'));var crypto=require(_0x1960('0xa'));var jsforce=require(_0x1960('0xb'));var deskjs=require(_0x1960('0xc'));var toCsv=require(_0x1960('0x6'));var querystring=require(_0x1960('0xd'));var Papa=require(_0x1960('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x1960('0xf'));var as=require(_0x1960('0x10'));var hardwareService=require(_0x1960('0x11'));var logger=require(_0x1960('0x12'))(_0x1960('0x13'));var utils=require(_0x1960('0x14'));var config=require(_0x1960('0x15'));var licenseUtil=require(_0x1960('0x16'));var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x954fd0,_0x1c7dc2){_0x1c7dc2=_0x1c7dc2||0xcc;return function(_0x4d0e74){if(_0x4d0e74){return _0x954fd0[_0x1960('0x17')](_0x1c7dc2);}return _0x954fd0[_0x1960('0x18')](_0x1c7dc2)[_0x1960('0x19')]();};}function respondWithResult(_0x17c789,_0x6cdf4f){_0x6cdf4f=_0x6cdf4f||0xc8;return function(_0x3cdec4){if(_0x3cdec4){return _0x17c789[_0x1960('0x18')](_0x6cdf4f)[_0x1960('0x1a')](_0x3cdec4);}};}function respondWithFilteredResult(_0x95c022,_0x4d879f){return function(_0x38cd74){if(_0x38cd74){var _0x505418=typeof _0x4d879f[_0x1960('0x1b')]===_0x1960('0x1c')&&typeof _0x4d879f[_0x1960('0x1d')]===_0x1960('0x1c');var _0x4ebe89=_0x38cd74[_0x1960('0x1e')];var _0x556515=_0x505418?0x0:_0x4d879f[_0x1960('0x1b')];var _0xb1edaf=_0x505418?_0x38cd74['count']:_0x4d879f[_0x1960('0x1b')]+_0x4d879f[_0x1960('0x1d')];var _0x11e12a;if(_0xb1edaf>=_0x4ebe89){_0xb1edaf=_0x4ebe89;_0x11e12a=0xc8;}else{_0x11e12a=0xce;}_0x95c022[_0x1960('0x18')](_0x11e12a);return _0x95c022['set'](_0x1960('0x1f'),_0x556515+'-'+_0xb1edaf+'/'+_0x4ebe89)[_0x1960('0x1a')](_0x38cd74);}return null;};}function patchUpdates(_0xe6de9){return function(_0x436685){try{jsonpatch['apply'](_0x436685,_0xe6de9,!![]);}catch(_0x194fe5){return BPromise[_0x1960('0x20')](_0x194fe5);}return _0x436685[_0x1960('0x21')]();};}function saveUpdates(_0x31d039,_0x103958){return function(_0x59f1b9){if(_0x59f1b9){return _0x59f1b9[_0x1960('0x22')](_0x31d039)[_0x1960('0x23')](function(_0xb24216){return _0xb24216;});}return null;};}function removeEntity(_0x4dfcac,_0x200ad2){return function(_0x37827c){if(_0x37827c){return _0x37827c[_0x1960('0x24')]()[_0x1960('0x23')](function(){_0x4dfcac[_0x1960('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x45371a,_0x48597c){return function(_0x1dd2b6){if(!_0x1dd2b6){_0x45371a[_0x1960('0x17')](0x194);}return _0x1dd2b6;};}function handleError(_0x1aa7cf,_0x23a78b){_0x23a78b=_0x23a78b||0x1f4;return function(_0x37ace3){logger[_0x1960('0x25')](_0x37ace3[_0x1960('0x26')]);if(_0x37ace3[_0x1960('0x27')]){delete _0x37ace3[_0x1960('0x27')];}_0x1aa7cf[_0x1960('0x18')](_0x23a78b)[_0x1960('0x28')](_0x37ace3);};}exports[_0x1960('0x29')]=function(_0x4976bb,_0x553319){var _0x282f54={},_0xb8dab5={},_0x522c62={'count':0x0,'rows':[]};var _0x21921e=_['map'](db[_0x1960('0x2a')]['rawAttributes'],function(_0xe8890b){return{'name':_0xe8890b[_0x1960('0x2b')],'type':_0xe8890b[_0x1960('0x2c')][_0x1960('0x2d')]};});_0xb8dab5[_0x1960('0x2e')]=_[_0x1960('0x2f')](_0x21921e,'name');_0xb8dab5['query']=_[_0x1960('0x30')](_0x4976bb[_0x1960('0x31')]);_0xb8dab5[_0x1960('0x32')]=_['intersection'](_0xb8dab5['model'],_0xb8dab5[_0x1960('0x31')]);_0x282f54[_0x1960('0x33')]=_[_0x1960('0x34')](_0xb8dab5['model'],qs[_0x1960('0x35')](_0x4976bb[_0x1960('0x31')]['fields']));_0x282f54['attributes']=_0x282f54['attributes'][_0x1960('0x36')]?_0x282f54[_0x1960('0x33')]:_0xb8dab5[_0x1960('0x2e')];if(!_0x4976bb[_0x1960('0x31')][_0x1960('0x37')](_0x1960('0x38'))){_0x282f54['limit']=qs[_0x1960('0x1d')](_0x4976bb[_0x1960('0x31')][_0x1960('0x1d')]);_0x282f54[_0x1960('0x1b')]=qs[_0x1960('0x1b')](_0x4976bb[_0x1960('0x31')][_0x1960('0x1b')]);}_0x282f54['order']=qs[_0x1960('0x39')](_0x4976bb[_0x1960('0x31')]['sort']);_0x282f54[_0x1960('0x3a')]=qs[_0x1960('0x32')](_['pick'](_0x4976bb['query'],_0xb8dab5['filters']),_0x21921e);if(_0x4976bb[_0x1960('0x31')]['filter']){_0x282f54[_0x1960('0x3a')]=_[_0x1960('0x3b')](_0x282f54[_0x1960('0x3a')],{'$or':_[_0x1960('0x2f')](_0x21921e,function(_0x28f397){if(_0x28f397[_0x1960('0x2c')]!==_0x1960('0x3c')){var _0x1a6e96={};_0x1a6e96[_0x28f397[_0x1960('0x27')]]={'$like':'%'+_0x4976bb[_0x1960('0x31')][_0x1960('0x3d')]+'%'};return _0x1a6e96;}})});}_0x282f54=_[_0x1960('0x3b')]({},_0x282f54,_0x4976bb[_0x1960('0x3e')]);var _0xde8bc5={'where':_0x282f54[_0x1960('0x3a')]};return db[_0x1960('0x2a')][_0x1960('0x1e')](_0xde8bc5)[_0x1960('0x23')](function(_0x3a72ef){_0x522c62['count']=_0x3a72ef;if(_0x4976bb[_0x1960('0x31')][_0x1960('0x3f')]){_0x282f54[_0x1960('0x40')]=[{'all':!![]}];}return db['SugarcrmAccount']['findAll'](_0x282f54);})['then'](function(_0x3d5ef6){_0x522c62[_0x1960('0x41')]=_0x3d5ef6;return _0x522c62;})[_0x1960('0x23')](respondWithFilteredResult(_0x553319,_0x282f54))['catch'](handleError(_0x553319,null));};exports[_0x1960('0x42')]=function(_0x5015fb,_0x4deb41){var _0x2b8e7e={'raw':![],'where':{'id':_0x5015fb['params']['id']}},_0x5f435b={};_0x5f435b[_0x1960('0x2e')]=_[_0x1960('0x30')](db[_0x1960('0x2a')][_0x1960('0x43')]);_0x5f435b[_0x1960('0x31')]=_[_0x1960('0x30')](_0x5015fb[_0x1960('0x31')]);_0x5f435b[_0x1960('0x32')]=_[_0x1960('0x34')](_0x5f435b['model'],_0x5f435b[_0x1960('0x31')]);_0x2b8e7e[_0x1960('0x33')]=_[_0x1960('0x34')](_0x5f435b[_0x1960('0x2e')],qs[_0x1960('0x35')](_0x5015fb[_0x1960('0x31')][_0x1960('0x35')]));_0x2b8e7e[_0x1960('0x33')]=_0x2b8e7e['attributes'][_0x1960('0x36')]?_0x2b8e7e[_0x1960('0x33')]:_0x5f435b['model'];if(_0x5015fb[_0x1960('0x31')]['includeAll']){_0x2b8e7e[_0x1960('0x40')]=[{'all':!![]}];}_0x2b8e7e=_[_0x1960('0x3b')]({},_0x2b8e7e,_0x5015fb[_0x1960('0x3e')]);return db[_0x1960('0x2a')][_0x1960('0x44')](_0x2b8e7e)['then'](handleEntityNotFound(_0x4deb41,null))[_0x1960('0x23')](respondWithResult(_0x4deb41,null))['catch'](handleError(_0x4deb41,null));};exports[_0x1960('0x45')]=function(_0x6550b6,_0x543568){return db[_0x1960('0x2a')]['create'](_0x6550b6[_0x1960('0x46')],{})[_0x1960('0x23')](respondWithResult(_0x543568,0xc9))[_0x1960('0x47')](handleError(_0x543568,null));};exports[_0x1960('0x22')]=function(_0x239553,_0x4f723f){if(_0x239553[_0x1960('0x46')]['id']){delete _0x239553[_0x1960('0x46')]['id'];}return db['SugarcrmAccount'][_0x1960('0x44')]({'where':{'id':_0x239553[_0x1960('0x48')]['id']}})[_0x1960('0x23')](handleEntityNotFound(_0x4f723f,null))[_0x1960('0x23')](saveUpdates(_0x239553['body'],null))[_0x1960('0x23')](respondWithResult(_0x4f723f,null))[_0x1960('0x47')](handleError(_0x4f723f,null));};exports[_0x1960('0x24')]=function(_0x431089,_0x124a05){return db[_0x1960('0x2a')][_0x1960('0x44')]({'where':{'id':_0x431089[_0x1960('0x48')]['id']}})[_0x1960('0x23')](handleEntityNotFound(_0x124a05,null))[_0x1960('0x23')](removeEntity(_0x124a05,null))[_0x1960('0x47')](handleError(_0x124a05,null));};exports[_0x1960('0x49')]=function(_0x259548,_0xdfe121,_0x2659e3){var _0x31117a={};var _0x501e85={};var _0x1310d8;var _0x28a7bd;return db[_0x1960('0x2a')][_0x1960('0x4a')]({'where':{'id':_0x259548[_0x1960('0x48')]['id']}})['then'](handleEntityNotFound(_0xdfe121,null))[_0x1960('0x23')](function(_0xbfc775){if(_0xbfc775){_0x1310d8=_0xbfc775;_0x501e85[_0x1960('0x2e')]=_[_0x1960('0x30')](db[_0x1960('0x4b')][_0x1960('0x43')]);_0x501e85[_0x1960('0x31')]=_[_0x1960('0x30')](_0x259548[_0x1960('0x31')]);_0x501e85[_0x1960('0x32')]=_['intersection'](_0x501e85[_0x1960('0x2e')],_0x501e85[_0x1960('0x31')]);_0x31117a[_0x1960('0x33')]=_[_0x1960('0x34')](_0x501e85['model'],qs[_0x1960('0x35')](_0x259548['query'][_0x1960('0x35')]));_0x31117a['attributes']=_0x31117a[_0x1960('0x33')][_0x1960('0x36')]?_0x31117a[_0x1960('0x33')]:_0x501e85['model'];_0x31117a['order']=qs[_0x1960('0x39')](_0x259548[_0x1960('0x31')]['sort']);_0x31117a['where']=qs[_0x1960('0x32')](_['pick'](_0x259548[_0x1960('0x31')],_0x501e85[_0x1960('0x32')]));if(_0x259548[_0x1960('0x31')][_0x1960('0x3d')]){_0x31117a['where']=_['merge'](_0x31117a[_0x1960('0x3a')],{'$or':_['map'](_0x31117a['attributes'],function(_0x308d8e){var _0x1bcfa7={};_0x1bcfa7[_0x308d8e]={'$like':'%'+_0x259548[_0x1960('0x31')][_0x1960('0x3d')]+'%'};return _0x1bcfa7;})});}_0x31117a=_[_0x1960('0x3b')]({},_0x31117a,_0x259548[_0x1960('0x3e')]);return _0x1310d8[_0x1960('0x49')](_0x31117a);}})[_0x1960('0x23')](function(_0x18d1bd){if(_0x18d1bd){_0x28a7bd=_0x18d1bd[_0x1960('0x36')];if(!_0x259548[_0x1960('0x31')][_0x1960('0x37')](_0x1960('0x38'))){_0x31117a[_0x1960('0x1d')]=qs[_0x1960('0x1d')](_0x259548[_0x1960('0x31')]['limit']);_0x31117a[_0x1960('0x1b')]=qs['offset'](_0x259548['query'][_0x1960('0x1b')]);}return _0x1310d8['getConfigurations'](_0x31117a);}})[_0x1960('0x23')](function(_0x5ba3be){if(_0x5ba3be){return _0x5ba3be?{'count':_0x28a7bd,'rows':_0x5ba3be}:null;}})[_0x1960('0x23')](respondWithResult(_0xdfe121,null))['catch'](handleError(_0xdfe121,null));};exports[_0x1960('0x4c')]=function(_0x57bea0,_0xd6c52,_0x118e1f){if(_0x57bea0[_0x1960('0x46')]['id']){delete _0x57bea0[_0x1960('0x46')]['id'];}return db[_0x1960('0x2a')]['findOne']({'where':{'id':_0x57bea0['params']['id']}})[_0x1960('0x23')](handleEntityNotFound(_0xd6c52,null))['then'](function(_0x53e9ed){if(_0x53e9ed){_0x57bea0['body'][_0x1960('0x4d')]=_0x53e9ed['id'];_0x57bea0[_0x1960('0x46')][_0x1960('0x4e')]=integrations[_0x1960('0x4f')](_0x57bea0[_0x1960('0x46')][_0x1960('0x50')],_0x57bea0['body']['type']);_0x57bea0[_0x1960('0x46')][_0x1960('0x51')]=integrations[_0x1960('0x52')](_0x57bea0[_0x1960('0x46')][_0x1960('0x50')],_0x57bea0[_0x1960('0x46')][_0x1960('0x2c')]);return db[_0x1960('0x4b')][_0x1960('0x45')](_0x57bea0[_0x1960('0x46')],{'include':[{'model':db[_0x1960('0x53')],'as':_0x1960('0x4e')},{'model':db[_0x1960('0x53')],'as':_0x1960('0x51')}]});}return null;})[_0x1960('0x23')](respondWithResult(_0xd6c52,null))[_0x1960('0x47')](handleError(_0xd6c52,null));};exports[_0x1960('0x54')]=function(_0x782846,_0x38d7a6,_0x579153){var _0x40b0f3='';var _0x3c3ff2=['id',_0x1960('0x27'),_0x1960('0x55'),_0x1960('0x56'),_0x1960('0x57'),_0x1960('0x58'),_0x1960('0x59'),'duration_minutes',_0x1960('0x5a'),_0x1960('0x5b'),'parent_name',_0x1960('0x5c')];return db['SugarcrmAccount'][_0x1960('0x4a')]({'where':{'id':_0x782846[_0x1960('0x48')]['id']},'attributes':['id','username',_0x1960('0x5d'),_0x1960('0x5e')]})[_0x1960('0x23')](handleEntityNotFound(_0x38d7a6,null))[_0x1960('0x23')](function(_0xd200f){if(_0xd200f){_0x40b0f3=_0xd200f[_0x1960('0x5e')];var _0x40f07f=_0x40b0f3[_0x1960('0x5f')](-0x1);if(_0x40f07f==='/'){_0x40b0f3=_0x40b0f3[_0x1960('0x60')](0x0,_0x40b0f3['lastIndexOf'](_0x40f07f));}return rp({'method':_0x1960('0x61'),'uri':util[_0x1960('0x62')]('%s%s',_0x40b0f3,_0x1960('0x63')),'json':!![],'form':{'method':_0x1960('0x64'),'input_type':_0x1960('0x65'),'response_type':'JSON','rest_data':JSON['stringify']({'user_auth':{'user_name':_0xd200f['username'],'password':_0xd200f['password'],'encryption':_0x1960('0x66')},'application':'xCALLY\x20Motion\x20Integration'})}});}})['then'](function(_0x19cf4e){if(_0x19cf4e&&_0x19cf4e[_0x1960('0x27')]!=='Invalid\x20Login'&&_0x19cf4e[_0x1960('0x27')]!==_0x1960('0x67')){return rp({'method':_0x1960('0x61'),'uri':util[_0x1960('0x62')](_0x1960('0x68'),_0x40b0f3,_0x1960('0x63')),'json':!![],'form':{'method':'get_module_fields','input_type':_0x1960('0x65'),'response_type':_0x1960('0x65'),'rest_data':JSON[_0x1960('0x69')]({'session':_0x19cf4e['id'],'module_name':_0x1960('0x6a')})}})[_0x1960('0x23')](function(_0x46721e){if(_0x46721e){var _0x1d21c3=_[_0x1960('0x6b')](_0x46721e['module_fields']);_[_0x1960('0x6c')](_0x1d21c3,function(_0x31bf6d){return _0x3c3ff2[_0x1960('0x6d')](_0x31bf6d[_0x1960('0x27')]);});return{'count':_0x1d21c3['length'],'rows':_[_0x1960('0x2f')](_0x1d21c3,function(_0x5e47cb){return{'id':_0x5e47cb[_0x1960('0x27')],'name':_0x5e47cb['label'],'custom':_[_0x1960('0x6e')](_0x5e47cb[_0x1960('0x27')],'_c')?!![]:![],'options':_0x5e47cb[_0x1960('0x3e')]?_[_0x1960('0x2f')](_['values'](_0x5e47cb['options']),function(_0x18a0f4){return{'name':_0x18a0f4[_0x1960('0x6f')],'value':_0x18a0f4['name']};}):[]};})};}})[_0x1960('0x23')](respondWithResult(_0x38d7a6,null))['catch'](function(_0x4f9be4){var _0x550016=_0x782846['query'][_0x1960('0x70')]?0x1f4:_0x4f9be4['statusCode']||0x1f4;logger[_0x1960('0x25')](_0x1960('0x71'),_0x1960('0x54'),_0x550016,JSON[_0x1960('0x69')](_0x4f9be4));delete _0x4f9be4[_0x1960('0x27')];if(_0x550016===0x191){_0x550016=0x190;}_0x38d7a6[_0x1960('0x18')](_0x550016)[_0x1960('0x28')](_0x782846[_0x1960('0x31')][_0x1960('0x70')]?{'message':_0x1960('0x72'),'statusCode':_0x4f9be4[_0x1960('0x73')]}:_0x4f9be4);});}else{var _0xab543b=0x1f4;_0x38d7a6[_0x1960('0x18')](_0xab543b)[_0x1960('0x28')]({'message':_0x1960('0x72'),'statusCode':0x190});}});};