Built motion from commit 10af8726.|2.6.34
[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 _0x27e9=['statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','map','SugarcrmAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','pick','filter','where','VIRTUAL','options','includeAll','include','rows','catch','params','merge','find','create','body','SugarcrmConfiguration','order','getConfigurations','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','SugarcrmField','getFields','assigned_user_id','created_by','description','duration_hours','parent_id','parent_type','parent_name','password','remoteUri','substring','lastIndexOf','POST','format','/service/v4_1/rest.php','login','JSON','stringify','username','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','%s%s','values','module_fields','includes','value','test'];(function(_0x56916d,_0x37b935){var _0x2b7f1f=function(_0x206eb1){while(--_0x206eb1){_0x56916d['push'](_0x56916d['shift']());}};_0x2b7f1f(++_0x37b935);}(_0x27e9,0x7a));var _0x927e=function(_0x56ee20,_0x274c93){_0x56ee20=_0x56ee20-0x0;var _0x31b2bb=_0x27e9[_0x56ee20];return _0x31b2bb;};'use strict';var emlformat=require(_0x927e('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x927e('0x1'));var jsonpatch=require(_0x927e('0x2'));var rp=require('request-promise');var moment=require(_0x927e('0x3'));var BPromise=require(_0x927e('0x4'));var Mustache=require(_0x927e('0x5'));var util=require(_0x927e('0x6'));var path=require(_0x927e('0x7'));var sox=require('sox');var csv=require(_0x927e('0x8'));var ejs=require(_0x927e('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x927e('0xa'));var squel=require(_0x927e('0xb'));var crypto=require(_0x927e('0xc'));var jsforce=require(_0x927e('0xd'));var deskjs=require(_0x927e('0xe'));var toCsv=require(_0x927e('0x8'));var querystring=require(_0x927e('0xf'));var Papa=require(_0x927e('0x10'));var Redis=require(_0x927e('0x11'));var authService=require(_0x927e('0x12'));var qs=require(_0x927e('0x13'));var as=require(_0x927e('0x14'));var hardwareService=require(_0x927e('0x15'));var logger=require(_0x927e('0x16'))(_0x927e('0x17'));var utils=require(_0x927e('0x18'));var config=require(_0x927e('0x19'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x219dac,_0x53a219){_0x53a219=_0x53a219||0xcc;return function(_0x5a9960){if(_0x5a9960){return _0x219dac[_0x927e('0x1a')](_0x53a219);}return _0x219dac[_0x927e('0x1b')](_0x53a219)[_0x927e('0x1c')]();};}function respondWithResult(_0xa886d2,_0x25c6dc){_0x25c6dc=_0x25c6dc||0xc8;return function(_0x84e779){if(_0x84e779){return _0xa886d2[_0x927e('0x1b')](_0x25c6dc)[_0x927e('0x1d')](_0x84e779);}};}function respondWithFilteredResult(_0x1ac0ac,_0x5c9d87){return function(_0x18e5f0){if(_0x18e5f0){var _0x519eb8=typeof _0x5c9d87[_0x927e('0x1e')]===_0x927e('0x1f')&&typeof _0x5c9d87[_0x927e('0x20')]==='undefined';var _0x58e914=_0x18e5f0[_0x927e('0x21')];var _0xc3230f=_0x519eb8?0x0:_0x5c9d87['offset'];var _0x43f7d1=_0x519eb8?_0x18e5f0[_0x927e('0x21')]:_0x5c9d87['offset']+_0x5c9d87[_0x927e('0x20')];var _0x917786;if(_0x43f7d1>=_0x58e914){_0x43f7d1=_0x58e914;_0x917786=0xc8;}else{_0x917786=0xce;}_0x1ac0ac[_0x927e('0x1b')](_0x917786);return _0x1ac0ac[_0x927e('0x22')](_0x927e('0x23'),_0xc3230f+'-'+_0x43f7d1+'/'+_0x58e914)['json'](_0x18e5f0);}return null;};}function patchUpdates(_0x2553be){return function(_0x171e13){try{jsonpatch[_0x927e('0x24')](_0x171e13,_0x2553be,!![]);}catch(_0x13439e){return BPromise[_0x927e('0x25')](_0x13439e);}return _0x171e13[_0x927e('0x26')]();};}function saveUpdates(_0x426b1f,_0x21dfe3){return function(_0x3eab37){if(_0x3eab37){return _0x3eab37['update'](_0x426b1f)[_0x927e('0x27')](function(_0x32d5c4){return _0x32d5c4;});}return null;};}function removeEntity(_0xab5356,_0x19eb4d){return function(_0x2add9f){if(_0x2add9f){return _0x2add9f[_0x927e('0x28')]()[_0x927e('0x27')](function(){_0xab5356[_0x927e('0x1b')](0xcc)[_0x927e('0x1c')]();});}};}function handleEntityNotFound(_0x1e44eb,_0x4e4f1f){return function(_0x291bff){if(!_0x291bff){_0x1e44eb[_0x927e('0x1a')](0x194);}return _0x291bff;};}function handleError(_0x5c12b3,_0x59d0dc){_0x59d0dc=_0x59d0dc||0x1f4;return function(_0x5e09f8){logger[_0x927e('0x29')](_0x5e09f8[_0x927e('0x2a')]);if(_0x5e09f8[_0x927e('0x2b')]){delete _0x5e09f8['name'];}_0x5c12b3['status'](_0x59d0dc)[_0x927e('0x2c')](_0x5e09f8);};}exports['index']=function(_0x331df7,_0x2f045e){var _0x4c76e1={},_0x621011={},_0x27edde={'count':0x0,'rows':[]};var _0x445171=_[_0x927e('0x2d')](db[_0x927e('0x2e')][_0x927e('0x2f')],function(_0x4af765){return{'name':_0x4af765[_0x927e('0x30')],'type':_0x4af765[_0x927e('0x31')][_0x927e('0x32')]};});_0x621011[_0x927e('0x33')]=_[_0x927e('0x2d')](_0x445171,'name');_0x621011[_0x927e('0x34')]=_[_0x927e('0x35')](_0x331df7[_0x927e('0x34')]);_0x621011[_0x927e('0x36')]=_[_0x927e('0x37')](_0x621011[_0x927e('0x33')],_0x621011[_0x927e('0x34')]);_0x4c76e1['attributes']=_[_0x927e('0x37')](_0x621011[_0x927e('0x33')],qs[_0x927e('0x38')](_0x331df7[_0x927e('0x34')][_0x927e('0x38')]));_0x4c76e1[_0x927e('0x39')]=_0x4c76e1[_0x927e('0x39')][_0x927e('0x3a')]?_0x4c76e1['attributes']:_0x621011[_0x927e('0x33')];if(!_0x331df7['query'][_0x927e('0x3b')](_0x927e('0x3c'))){_0x4c76e1['limit']=qs['limit'](_0x331df7[_0x927e('0x34')][_0x927e('0x20')]);_0x4c76e1[_0x927e('0x1e')]=qs[_0x927e('0x1e')](_0x331df7[_0x927e('0x34')]['offset']);}_0x4c76e1['order']=qs[_0x927e('0x3d')](_0x331df7[_0x927e('0x34')][_0x927e('0x3d')]);_0x4c76e1['where']=qs[_0x927e('0x36')](_[_0x927e('0x3e')](_0x331df7[_0x927e('0x34')],_0x621011[_0x927e('0x36')]),_0x445171);if(_0x331df7[_0x927e('0x34')][_0x927e('0x3f')]){_0x4c76e1['where']=_['merge'](_0x4c76e1[_0x927e('0x40')],{'$or':_[_0x927e('0x2d')](_0x445171,function(_0x4dd4d9){if(_0x4dd4d9[_0x927e('0x31')]!==_0x927e('0x41')){var _0x403267={};_0x403267[_0x4dd4d9[_0x927e('0x2b')]]={'$like':'%'+_0x331df7[_0x927e('0x34')]['filter']+'%'};return _0x403267;}})});}_0x4c76e1=_['merge']({},_0x4c76e1,_0x331df7[_0x927e('0x42')]);var _0x50a29b={'where':_0x4c76e1[_0x927e('0x40')]};return db[_0x927e('0x2e')][_0x927e('0x21')](_0x50a29b)['then'](function(_0x472ff3){_0x27edde[_0x927e('0x21')]=_0x472ff3;if(_0x331df7[_0x927e('0x34')][_0x927e('0x43')]){_0x4c76e1[_0x927e('0x44')]=[{'all':!![]}];}return db[_0x927e('0x2e')]['findAll'](_0x4c76e1);})[_0x927e('0x27')](function(_0x4b0a8c){_0x27edde[_0x927e('0x45')]=_0x4b0a8c;return _0x27edde;})[_0x927e('0x27')](respondWithFilteredResult(_0x2f045e,_0x4c76e1))[_0x927e('0x46')](handleError(_0x2f045e,null));};exports['show']=function(_0x1349da,_0x5d34f5){var _0x3dad98={'raw':![],'where':{'id':_0x1349da[_0x927e('0x47')]['id']}},_0x4f3887={};_0x4f3887[_0x927e('0x33')]=_[_0x927e('0x35')](db[_0x927e('0x2e')][_0x927e('0x2f')]);_0x4f3887[_0x927e('0x34')]=_[_0x927e('0x35')](_0x1349da[_0x927e('0x34')]);_0x4f3887['filters']=_[_0x927e('0x37')](_0x4f3887[_0x927e('0x33')],_0x4f3887['query']);_0x3dad98[_0x927e('0x39')]=_[_0x927e('0x37')](_0x4f3887[_0x927e('0x33')],qs[_0x927e('0x38')](_0x1349da[_0x927e('0x34')][_0x927e('0x38')]));_0x3dad98['attributes']=_0x3dad98['attributes'][_0x927e('0x3a')]?_0x3dad98[_0x927e('0x39')]:_0x4f3887[_0x927e('0x33')];if(_0x1349da[_0x927e('0x34')][_0x927e('0x43')]){_0x3dad98[_0x927e('0x44')]=[{'all':!![]}];}_0x3dad98=_[_0x927e('0x48')]({},_0x3dad98,_0x1349da[_0x927e('0x42')]);return db['SugarcrmAccount'][_0x927e('0x49')](_0x3dad98)[_0x927e('0x27')](handleEntityNotFound(_0x5d34f5,null))[_0x927e('0x27')](respondWithResult(_0x5d34f5,null))[_0x927e('0x46')](handleError(_0x5d34f5,null));};exports['create']=function(_0x1e988a,_0x33418a){return db[_0x927e('0x2e')][_0x927e('0x4a')](_0x1e988a[_0x927e('0x4b')],{})[_0x927e('0x27')](respondWithResult(_0x33418a,0xc9))[_0x927e('0x46')](handleError(_0x33418a,null));};exports['update']=function(_0x80a81c,_0x4c2d0c){if(_0x80a81c['body']['id']){delete _0x80a81c[_0x927e('0x4b')]['id'];}return db[_0x927e('0x2e')][_0x927e('0x49')]({'where':{'id':_0x80a81c[_0x927e('0x47')]['id']}})[_0x927e('0x27')](handleEntityNotFound(_0x4c2d0c,null))['then'](saveUpdates(_0x80a81c[_0x927e('0x4b')],null))[_0x927e('0x27')](respondWithResult(_0x4c2d0c,null))['catch'](handleError(_0x4c2d0c,null));};exports[_0x927e('0x28')]=function(_0x4eac21,_0x3e7c96){return db[_0x927e('0x2e')][_0x927e('0x49')]({'where':{'id':_0x4eac21[_0x927e('0x47')]['id']}})['then'](handleEntityNotFound(_0x3e7c96,null))[_0x927e('0x27')](removeEntity(_0x3e7c96,null))[_0x927e('0x46')](handleError(_0x3e7c96,null));};exports['getConfigurations']=function(_0x56029c,_0x25ee1e,_0x2f9ee9){var _0x5f4506={};var _0x12d951={};var _0x16aa32;var _0x299c3c;return db[_0x927e('0x2e')]['findOne']({'where':{'id':_0x56029c[_0x927e('0x47')]['id']}})['then'](handleEntityNotFound(_0x25ee1e,null))[_0x927e('0x27')](function(_0x345c6d){if(_0x345c6d){_0x16aa32=_0x345c6d;_0x12d951[_0x927e('0x33')]=_[_0x927e('0x35')](db[_0x927e('0x4c')][_0x927e('0x2f')]);_0x12d951[_0x927e('0x34')]=_[_0x927e('0x35')](_0x56029c[_0x927e('0x34')]);_0x12d951[_0x927e('0x36')]=_[_0x927e('0x37')](_0x12d951[_0x927e('0x33')],_0x12d951[_0x927e('0x34')]);_0x5f4506[_0x927e('0x39')]=_[_0x927e('0x37')](_0x12d951[_0x927e('0x33')],qs['fields'](_0x56029c[_0x927e('0x34')][_0x927e('0x38')]));_0x5f4506[_0x927e('0x39')]=_0x5f4506[_0x927e('0x39')][_0x927e('0x3a')]?_0x5f4506['attributes']:_0x12d951[_0x927e('0x33')];_0x5f4506[_0x927e('0x4d')]=qs[_0x927e('0x3d')](_0x56029c[_0x927e('0x34')]['sort']);_0x5f4506[_0x927e('0x40')]=qs[_0x927e('0x36')](_[_0x927e('0x3e')](_0x56029c['query'],_0x12d951['filters']));if(_0x56029c['query'][_0x927e('0x3f')]){_0x5f4506[_0x927e('0x40')]=_['merge'](_0x5f4506[_0x927e('0x40')],{'$or':_[_0x927e('0x2d')](_0x5f4506['attributes'],function(_0x160899){var _0x1d71b7={};_0x1d71b7[_0x160899]={'$like':'%'+_0x56029c['query'][_0x927e('0x3f')]+'%'};return _0x1d71b7;})});}_0x5f4506=_[_0x927e('0x48')]({},_0x5f4506,_0x56029c['options']);return _0x16aa32['getConfigurations'](_0x5f4506);}})[_0x927e('0x27')](function(_0x2f29e4){if(_0x2f29e4){_0x299c3c=_0x2f29e4['length'];if(!_0x56029c[_0x927e('0x34')][_0x927e('0x3b')]('nolimit')){_0x5f4506[_0x927e('0x20')]=qs[_0x927e('0x20')](_0x56029c[_0x927e('0x34')][_0x927e('0x20')]);_0x5f4506[_0x927e('0x1e')]=qs[_0x927e('0x1e')](_0x56029c[_0x927e('0x34')]['offset']);}return _0x16aa32[_0x927e('0x4e')](_0x5f4506);}})[_0x927e('0x27')](function(_0x3de77a){if(_0x3de77a){return _0x3de77a?{'count':_0x299c3c,'rows':_0x3de77a}:null;}})['then'](respondWithResult(_0x25ee1e,null))[_0x927e('0x46')](handleError(_0x25ee1e,null));};exports[_0x927e('0x4f')]=function(_0x1948b0,_0x15d8d2,_0x3d9f45){if(_0x1948b0['body']['id']){delete _0x1948b0[_0x927e('0x4b')]['id'];}return db[_0x927e('0x2e')]['findOne']({'where':{'id':_0x1948b0[_0x927e('0x47')]['id']}})[_0x927e('0x27')](handleEntityNotFound(_0x15d8d2,null))['then'](function(_0x29bc84){if(_0x29bc84){_0x1948b0[_0x927e('0x4b')][_0x927e('0x50')]=_0x29bc84['id'];_0x1948b0[_0x927e('0x4b')][_0x927e('0x51')]=integrations[_0x927e('0x52')](_0x1948b0['body'][_0x927e('0x53')],_0x1948b0['body']['type']);_0x1948b0[_0x927e('0x4b')][_0x927e('0x54')]=integrations[_0x927e('0x55')](_0x1948b0[_0x927e('0x4b')][_0x927e('0x53')],_0x1948b0['body'][_0x927e('0x31')]);return db['SugarcrmConfiguration'][_0x927e('0x4a')](_0x1948b0[_0x927e('0x4b')],{'include':[{'model':db[_0x927e('0x56')],'as':_0x927e('0x51')},{'model':db[_0x927e('0x56')],'as':_0x927e('0x54')}]});}return null;})[_0x927e('0x27')](respondWithResult(_0x15d8d2,null))['catch'](handleError(_0x15d8d2,null));};exports[_0x927e('0x57')]=function(_0x2769dc,_0x25a7b1,_0x47f0b7){var _0x16adf4='';var _0x4d311c=['id',_0x927e('0x2b'),_0x927e('0x58'),_0x927e('0x59'),_0x927e('0x5a'),'date_start',_0x927e('0x5b'),'duration_minutes',_0x927e('0x5c'),_0x927e('0x5d'),_0x927e('0x5e'),'direction'];return db['SugarcrmAccount']['findOne']({'where':{'id':_0x2769dc[_0x927e('0x47')]['id']},'attributes':['id','username',_0x927e('0x5f'),'remoteUri']})['then'](handleEntityNotFound(_0x25a7b1,null))[_0x927e('0x27')](function(_0x1d7643){if(_0x1d7643){_0x16adf4=_0x1d7643[_0x927e('0x60')];var _0x17ef40=_0x16adf4['slice'](-0x1);if(_0x17ef40==='/'){_0x16adf4=_0x16adf4[_0x927e('0x61')](0x0,_0x16adf4[_0x927e('0x62')](_0x17ef40));}return rp({'method':_0x927e('0x63'),'uri':util[_0x927e('0x64')]('%s%s',_0x16adf4,_0x927e('0x65')),'json':!![],'form':{'method':_0x927e('0x66'),'input_type':_0x927e('0x67'),'response_type':_0x927e('0x67'),'rest_data':JSON[_0x927e('0x68')]({'user_auth':{'user_name':_0x1d7643[_0x927e('0x69')],'password':_0x1d7643['password'],'encryption':_0x927e('0x6a')},'application':_0x927e('0x6b')})}});}})[_0x927e('0x27')](function(_0x81136f){if(_0x81136f&&_0x81136f['name']!==_0x927e('0x6c')&&_0x81136f[_0x927e('0x2b')]!==_0x927e('0x6d')){return rp({'method':_0x927e('0x63'),'uri':util[_0x927e('0x64')](_0x927e('0x6e'),_0x16adf4,'/service/v4_1/rest.php'),'json':!![],'form':{'method':'get_module_fields','input_type':'JSON','response_type':_0x927e('0x67'),'rest_data':JSON[_0x927e('0x68')]({'session':_0x81136f['id'],'module_name':'Calls'})}})[_0x927e('0x27')](function(_0x3966e4){if(_0x3966e4){var _0x5e3b86=_[_0x927e('0x6f')](_0x3966e4[_0x927e('0x70')]);_['remove'](_0x5e3b86,function(_0x57d2d8){return _0x4d311c[_0x927e('0x71')](_0x57d2d8[_0x927e('0x2b')]);});return{'count':_0x5e3b86[_0x927e('0x3a')],'rows':_[_0x927e('0x2d')](_0x5e3b86,function(_0x50d5e1){return{'id':_0x50d5e1[_0x927e('0x2b')],'name':_0x50d5e1['label'],'custom':_['endsWith'](_0x50d5e1['name'],'_c')?!![]:![],'options':_0x50d5e1[_0x927e('0x42')]?_['map'](_[_0x927e('0x6f')](_0x50d5e1[_0x927e('0x42')]),function(_0x1a4454){return{'name':_0x1a4454[_0x927e('0x72')],'value':_0x1a4454[_0x927e('0x2b')]};}):[]};})};}})['then'](respondWithResult(_0x25a7b1,null))[_0x927e('0x46')](function(_0x3c6bd8){var _0xd6a2a=_0x2769dc[_0x927e('0x34')][_0x927e('0x73')]?0x1f4:_0x3c6bd8[_0x927e('0x74')]||0x1f4;logger[_0x927e('0x29')](_0x927e('0x75'),'getFields',_0xd6a2a,JSON['stringify'](_0x3c6bd8));delete _0x3c6bd8['name'];if(_0xd6a2a===0x191){_0xd6a2a=0x190;}_0x25a7b1[_0x927e('0x1b')](_0xd6a2a)['send'](_0x2769dc[_0x927e('0x34')][_0x927e('0x73')]?{'message':_0x927e('0x76'),'statusCode':_0x3c6bd8[_0x927e('0x74')]}:_0x3c6bd8);});}else{var _0x34fef9=0x1f4;_0x25a7b1['status'](_0x34fef9)['send']({'message':'Wrong\x20credentials','statusCode':0x190});}});};