Built motion from commit 953226e6.|2.6.32
[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 _0xd7c0=['SugarcrmConfiguration','sort','AccountId','Subjects','channel','getDescriptions','SugarcrmField','Descriptions','getFields','assigned_user_id','created_by','date_start','duration_hours','duration_minutes','parent_id','parent_type','parent_name','direction','password','remoteUri','slice','substring','lastIndexOf','format','%s%s','login','JSON','stringify','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','POST','/service/v4_1/rest.php','get_module_fields','Calls','module_fields','remove','includes','endsWith','values','value','statusCode','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','map','SugarcrmAccount','rawAttributes','fieldName','type','model','keys','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','where','pick','filters','VIRTUAL','filter','merge','options','findAll','rows','catch','show','params','length','includeAll','create','body','find','getConfigurations','findOne'];(function(_0x6aad74,_0x32ecf4){var _0x5b1c38=function(_0x567477){while(--_0x567477){_0x6aad74['push'](_0x6aad74['shift']());}};_0x5b1c38(++_0x32ecf4);}(_0xd7c0,0x19a));var _0x0d7c=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0xd7c0[_0x3ab51d];return _0x29a04e;};'use strict';var emlformat=require(_0x0d7c('0x0'));var rimraf=require(_0x0d7c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0d7c('0x2'));var rp=require(_0x0d7c('0x3'));var moment=require(_0x0d7c('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x0d7c('0x5'));var path=require(_0x0d7c('0x6'));var sox=require(_0x0d7c('0x7'));var csv=require(_0x0d7c('0x8'));var ejs=require(_0x0d7c('0x9'));var fs=require('fs');var fs_extra=require(_0x0d7c('0xa'));var _=require(_0x0d7c('0xb'));var squel=require(_0x0d7c('0xc'));var crypto=require(_0x0d7c('0xd'));var jsforce=require(_0x0d7c('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x0d7c('0x8'));var querystring=require(_0x0d7c('0xf'));var Papa=require(_0x0d7c('0x10'));var Redis=require('ioredis');var authService=require(_0x0d7c('0x11'));var qs=require(_0x0d7c('0x12'));var as=require(_0x0d7c('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0d7c('0x14'))(_0x0d7c('0x15'));var utils=require(_0x0d7c('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x0d7c('0x17'));var db=require(_0x0d7c('0x18'))['db'];var integrations=require(_0x0d7c('0x19'));function respondWithStatusCode(_0x293c06,_0x38d2b7){_0x38d2b7=_0x38d2b7||0xcc;return function(_0x48ddec){if(_0x48ddec){return _0x293c06[_0x0d7c('0x1a')](_0x38d2b7);}return _0x293c06[_0x0d7c('0x1b')](_0x38d2b7)['end']();};}function respondWithResult(_0x405839,_0x8d0026){_0x8d0026=_0x8d0026||0xc8;return function(_0x19a19a){if(_0x19a19a){return _0x405839[_0x0d7c('0x1b')](_0x8d0026)[_0x0d7c('0x1c')](_0x19a19a);}};}function respondWithFilteredResult(_0x84afbf,_0x58e518){return function(_0x2c3fb6){if(_0x2c3fb6){var _0x3fb52e=typeof _0x58e518['offset']===_0x0d7c('0x1d')&&typeof _0x58e518[_0x0d7c('0x1e')]===_0x0d7c('0x1d');var _0x7566e5=_0x2c3fb6[_0x0d7c('0x1f')];var _0xaf0499=_0x3fb52e?0x0:_0x58e518[_0x0d7c('0x20')];var _0x2bdf6e=_0x3fb52e?_0x2c3fb6[_0x0d7c('0x1f')]:_0x58e518[_0x0d7c('0x20')]+_0x58e518['limit'];var _0x2a1fb6;if(_0x2bdf6e>=_0x7566e5){_0x2bdf6e=_0x7566e5;_0x2a1fb6=0xc8;}else{_0x2a1fb6=0xce;}_0x84afbf[_0x0d7c('0x1b')](_0x2a1fb6);return _0x84afbf[_0x0d7c('0x21')](_0x0d7c('0x22'),_0xaf0499+'-'+_0x2bdf6e+'/'+_0x7566e5)['json'](_0x2c3fb6);}return null;};}function patchUpdates(_0x31dcef){return function(_0x1a2d78){try{jsonpatch[_0x0d7c('0x23')](_0x1a2d78,_0x31dcef,!![]);}catch(_0x2e8709){return BPromise[_0x0d7c('0x24')](_0x2e8709);}return _0x1a2d78[_0x0d7c('0x25')]();};}function saveUpdates(_0x11367b,_0x4aa9b4){return function(_0x1fe218){if(_0x1fe218){return _0x1fe218[_0x0d7c('0x26')](_0x11367b)[_0x0d7c('0x27')](function(_0x32b376){return _0x32b376;});}return null;};}function removeEntity(_0x45af84,_0xc132f9){return function(_0x2f8947){if(_0x2f8947){return _0x2f8947[_0x0d7c('0x28')]()[_0x0d7c('0x27')](function(){_0x45af84[_0x0d7c('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3a454e,_0x4e35aa){return function(_0x134382){if(!_0x134382){_0x3a454e[_0x0d7c('0x1a')](0x194);}return _0x134382;};}function handleError(_0x44eb3d,_0x536eb1){_0x536eb1=_0x536eb1||0x1f4;return function(_0x5421e5){logger[_0x0d7c('0x29')](_0x5421e5[_0x0d7c('0x2a')]);if(_0x5421e5[_0x0d7c('0x2b')]){delete _0x5421e5[_0x0d7c('0x2b')];}_0x44eb3d[_0x0d7c('0x1b')](_0x536eb1)[_0x0d7c('0x2c')](_0x5421e5);};}exports['index']=function(_0x2d67f5,_0x36a1a4){var _0x635b0f={},_0x2f47cd={},_0x453303={'count':0x0,'rows':[]};var _0x3284aa=_[_0x0d7c('0x2d')](db[_0x0d7c('0x2e')][_0x0d7c('0x2f')],function(_0x5b1e58){return{'name':_0x5b1e58[_0x0d7c('0x30')],'type':_0x5b1e58[_0x0d7c('0x31')]['key']};});_0x2f47cd[_0x0d7c('0x32')]=_['map'](_0x3284aa,'name');_0x2f47cd['query']=_[_0x0d7c('0x33')](_0x2d67f5[_0x0d7c('0x34')]);_0x2f47cd['filters']=_[_0x0d7c('0x35')](_0x2f47cd[_0x0d7c('0x32')],_0x2f47cd['query']);_0x635b0f[_0x0d7c('0x36')]=_[_0x0d7c('0x35')](_0x2f47cd[_0x0d7c('0x32')],qs['fields'](_0x2d67f5[_0x0d7c('0x34')][_0x0d7c('0x37')]));_0x635b0f[_0x0d7c('0x36')]=_0x635b0f[_0x0d7c('0x36')]['length']?_0x635b0f[_0x0d7c('0x36')]:_0x2f47cd[_0x0d7c('0x32')];if(!_0x2d67f5[_0x0d7c('0x34')][_0x0d7c('0x38')](_0x0d7c('0x39'))){_0x635b0f[_0x0d7c('0x1e')]=qs[_0x0d7c('0x1e')](_0x2d67f5[_0x0d7c('0x34')]['limit']);_0x635b0f['offset']=qs[_0x0d7c('0x20')](_0x2d67f5[_0x0d7c('0x34')]['offset']);}_0x635b0f[_0x0d7c('0x3a')]=qs['sort'](_0x2d67f5[_0x0d7c('0x34')]['sort']);_0x635b0f[_0x0d7c('0x3b')]=qs['filters'](_[_0x0d7c('0x3c')](_0x2d67f5[_0x0d7c('0x34')],_0x2f47cd[_0x0d7c('0x3d')]),_0x3284aa);if(_0x2d67f5[_0x0d7c('0x34')]['filter']){_0x635b0f[_0x0d7c('0x3b')]=_['merge'](_0x635b0f['where'],{'$or':_[_0x0d7c('0x2d')](_0x3284aa,function(_0x48c7c7){if(_0x48c7c7[_0x0d7c('0x31')]!==_0x0d7c('0x3e')){var _0x57acaf={};_0x57acaf[_0x48c7c7[_0x0d7c('0x2b')]]={'$like':'%'+_0x2d67f5[_0x0d7c('0x34')][_0x0d7c('0x3f')]+'%'};return _0x57acaf;}})});}_0x635b0f=_[_0x0d7c('0x40')]({},_0x635b0f,_0x2d67f5[_0x0d7c('0x41')]);var _0x3b037b={'where':_0x635b0f[_0x0d7c('0x3b')]};return db[_0x0d7c('0x2e')][_0x0d7c('0x1f')](_0x3b037b)['then'](function(_0x3dff42){_0x453303[_0x0d7c('0x1f')]=_0x3dff42;if(_0x2d67f5[_0x0d7c('0x34')]['includeAll']){_0x635b0f['include']=[{'all':!![]}];}return db[_0x0d7c('0x2e')][_0x0d7c('0x42')](_0x635b0f);})[_0x0d7c('0x27')](function(_0x2b23f1){_0x453303[_0x0d7c('0x43')]=_0x2b23f1;return _0x453303;})['then'](respondWithFilteredResult(_0x36a1a4,_0x635b0f))[_0x0d7c('0x44')](handleError(_0x36a1a4,null));};exports[_0x0d7c('0x45')]=function(_0x2be574,_0x2ec3c9){var _0x1f97f5={'raw':![],'where':{'id':_0x2be574[_0x0d7c('0x46')]['id']}},_0xbdbaac={};_0xbdbaac[_0x0d7c('0x32')]=_[_0x0d7c('0x33')](db[_0x0d7c('0x2e')][_0x0d7c('0x2f')]);_0xbdbaac[_0x0d7c('0x34')]=_['keys'](_0x2be574['query']);_0xbdbaac[_0x0d7c('0x3d')]=_['intersection'](_0xbdbaac[_0x0d7c('0x32')],_0xbdbaac[_0x0d7c('0x34')]);_0x1f97f5['attributes']=_[_0x0d7c('0x35')](_0xbdbaac['model'],qs['fields'](_0x2be574['query'][_0x0d7c('0x37')]));_0x1f97f5[_0x0d7c('0x36')]=_0x1f97f5[_0x0d7c('0x36')][_0x0d7c('0x47')]?_0x1f97f5[_0x0d7c('0x36')]:_0xbdbaac[_0x0d7c('0x32')];if(_0x2be574['query'][_0x0d7c('0x48')]){_0x1f97f5['include']=[{'all':!![]}];}_0x1f97f5=_['merge']({},_0x1f97f5,_0x2be574['options']);return db['SugarcrmAccount']['find'](_0x1f97f5)[_0x0d7c('0x27')](handleEntityNotFound(_0x2ec3c9,null))[_0x0d7c('0x27')](respondWithResult(_0x2ec3c9,null))[_0x0d7c('0x44')](handleError(_0x2ec3c9,null));};exports['create']=function(_0xe3487b,_0x5cc92e){return db[_0x0d7c('0x2e')][_0x0d7c('0x49')](_0xe3487b[_0x0d7c('0x4a')],{})[_0x0d7c('0x27')](respondWithResult(_0x5cc92e,0xc9))[_0x0d7c('0x44')](handleError(_0x5cc92e,null));};exports[_0x0d7c('0x26')]=function(_0x48c70e,_0x32a126){if(_0x48c70e[_0x0d7c('0x4a')]['id']){delete _0x48c70e[_0x0d7c('0x4a')]['id'];}return db['SugarcrmAccount']['find']({'where':{'id':_0x48c70e[_0x0d7c('0x46')]['id']}})[_0x0d7c('0x27')](handleEntityNotFound(_0x32a126,null))['then'](saveUpdates(_0x48c70e[_0x0d7c('0x4a')],null))[_0x0d7c('0x27')](respondWithResult(_0x32a126,null))[_0x0d7c('0x44')](handleError(_0x32a126,null));};exports[_0x0d7c('0x28')]=function(_0x27b105,_0x656815){return db[_0x0d7c('0x2e')][_0x0d7c('0x4b')]({'where':{'id':_0x27b105[_0x0d7c('0x46')]['id']}})[_0x0d7c('0x27')](handleEntityNotFound(_0x656815,null))['then'](removeEntity(_0x656815,null))[_0x0d7c('0x44')](handleError(_0x656815,null));};exports[_0x0d7c('0x4c')]=function(_0x583c2d,_0x3cca6f,_0x1a66e4){var _0x4e4dd1={};var _0x218535={};var _0x1f4ef0;var _0xc0b75e;return db['SugarcrmAccount'][_0x0d7c('0x4d')]({'where':{'id':_0x583c2d[_0x0d7c('0x46')]['id']}})[_0x0d7c('0x27')](handleEntityNotFound(_0x3cca6f,null))['then'](function(_0x360f86){if(_0x360f86){_0x1f4ef0=_0x360f86;_0x218535[_0x0d7c('0x32')]=_['keys'](db[_0x0d7c('0x4e')]['rawAttributes']);_0x218535[_0x0d7c('0x34')]=_['keys'](_0x583c2d[_0x0d7c('0x34')]);_0x218535[_0x0d7c('0x3d')]=_[_0x0d7c('0x35')](_0x218535[_0x0d7c('0x32')],_0x218535[_0x0d7c('0x34')]);_0x4e4dd1[_0x0d7c('0x36')]=_[_0x0d7c('0x35')](_0x218535[_0x0d7c('0x32')],qs[_0x0d7c('0x37')](_0x583c2d[_0x0d7c('0x34')][_0x0d7c('0x37')]));_0x4e4dd1[_0x0d7c('0x36')]=_0x4e4dd1[_0x0d7c('0x36')][_0x0d7c('0x47')]?_0x4e4dd1[_0x0d7c('0x36')]:_0x218535[_0x0d7c('0x32')];_0x4e4dd1[_0x0d7c('0x3a')]=qs[_0x0d7c('0x4f')](_0x583c2d['query'][_0x0d7c('0x4f')]);_0x4e4dd1[_0x0d7c('0x3b')]=qs[_0x0d7c('0x3d')](_[_0x0d7c('0x3c')](_0x583c2d['query'],_0x218535[_0x0d7c('0x3d')]));if(_0x583c2d[_0x0d7c('0x34')][_0x0d7c('0x3f')]){_0x4e4dd1[_0x0d7c('0x3b')]=_[_0x0d7c('0x40')](_0x4e4dd1[_0x0d7c('0x3b')],{'$or':_[_0x0d7c('0x2d')](_0x4e4dd1[_0x0d7c('0x36')],function(_0x31e883){var _0x1502b3={};_0x1502b3[_0x31e883]={'$like':'%'+_0x583c2d['query']['filter']+'%'};return _0x1502b3;})});}_0x4e4dd1=_[_0x0d7c('0x40')]({},_0x4e4dd1,_0x583c2d[_0x0d7c('0x41')]);return _0x1f4ef0['getConfigurations'](_0x4e4dd1);}})[_0x0d7c('0x27')](function(_0x15a7d7){if(_0x15a7d7){_0xc0b75e=_0x15a7d7[_0x0d7c('0x47')];if(!_0x583c2d[_0x0d7c('0x34')][_0x0d7c('0x38')](_0x0d7c('0x39'))){_0x4e4dd1[_0x0d7c('0x1e')]=qs[_0x0d7c('0x1e')](_0x583c2d[_0x0d7c('0x34')][_0x0d7c('0x1e')]);_0x4e4dd1[_0x0d7c('0x20')]=qs['offset'](_0x583c2d[_0x0d7c('0x34')]['offset']);}return _0x1f4ef0[_0x0d7c('0x4c')](_0x4e4dd1);}})['then'](function(_0x258b82){if(_0x258b82){return _0x258b82?{'count':_0xc0b75e,'rows':_0x258b82}:null;}})['then'](respondWithResult(_0x3cca6f,null))[_0x0d7c('0x44')](handleError(_0x3cca6f,null));};exports['addConfiguration']=function(_0x348fa4,_0x596338,_0x19a021){if(_0x348fa4['body']['id']){delete _0x348fa4[_0x0d7c('0x4a')]['id'];}return db[_0x0d7c('0x2e')]['findOne']({'where':{'id':_0x348fa4[_0x0d7c('0x46')]['id']}})[_0x0d7c('0x27')](handleEntityNotFound(_0x596338,null))[_0x0d7c('0x27')](function(_0x24cf1d){if(_0x24cf1d){_0x348fa4[_0x0d7c('0x4a')][_0x0d7c('0x50')]=_0x24cf1d['id'];_0x348fa4['body'][_0x0d7c('0x51')]=integrations['getSubjects'](_0x348fa4['body'][_0x0d7c('0x52')],_0x348fa4[_0x0d7c('0x4a')][_0x0d7c('0x31')]);_0x348fa4['body']['Descriptions']=integrations[_0x0d7c('0x53')](_0x348fa4[_0x0d7c('0x4a')][_0x0d7c('0x52')],_0x348fa4['body'][_0x0d7c('0x31')]);return db[_0x0d7c('0x4e')][_0x0d7c('0x49')](_0x348fa4[_0x0d7c('0x4a')],{'include':[{'model':db['SugarcrmField'],'as':_0x0d7c('0x51')},{'model':db[_0x0d7c('0x54')],'as':_0x0d7c('0x55')}]});}return null;})[_0x0d7c('0x27')](respondWithResult(_0x596338,null))[_0x0d7c('0x44')](handleError(_0x596338,null));};exports[_0x0d7c('0x56')]=function(_0x4a8dfd,_0x416476,_0x5f2ee5){var _0x39c756='';var _0x5d6f0d=['id',_0x0d7c('0x2b'),_0x0d7c('0x57'),_0x0d7c('0x58'),'description',_0x0d7c('0x59'),_0x0d7c('0x5a'),_0x0d7c('0x5b'),_0x0d7c('0x5c'),_0x0d7c('0x5d'),_0x0d7c('0x5e'),_0x0d7c('0x5f')];return db[_0x0d7c('0x2e')][_0x0d7c('0x4d')]({'where':{'id':_0x4a8dfd[_0x0d7c('0x46')]['id']},'attributes':['id','username',_0x0d7c('0x60'),_0x0d7c('0x61')]})[_0x0d7c('0x27')](handleEntityNotFound(_0x416476,null))[_0x0d7c('0x27')](function(_0x514428){if(_0x514428){_0x39c756=_0x514428['remoteUri'];var _0x27936e=_0x39c756[_0x0d7c('0x62')](-0x1);if(_0x27936e==='/'){_0x39c756=_0x39c756[_0x0d7c('0x63')](0x0,_0x39c756[_0x0d7c('0x64')](_0x27936e));}return rp({'method':'POST','uri':util[_0x0d7c('0x65')](_0x0d7c('0x66'),_0x39c756,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0x0d7c('0x67'),'input_type':_0x0d7c('0x68'),'response_type':'JSON','rest_data':JSON[_0x0d7c('0x69')]({'user_auth':{'user_name':_0x514428['username'],'password':_0x514428[_0x0d7c('0x60')],'encryption':_0x0d7c('0x6a')},'application':_0x0d7c('0x6b')})}});}})[_0x0d7c('0x27')](function(_0x3df5b7){if(_0x3df5b7&&_0x3df5b7[_0x0d7c('0x2b')]!==_0x0d7c('0x6c')&&_0x3df5b7[_0x0d7c('0x2b')]!==_0x0d7c('0x6d')){return rp({'method':_0x0d7c('0x6e'),'uri':util[_0x0d7c('0x65')]('%s%s',_0x39c756,_0x0d7c('0x6f')),'json':!![],'form':{'method':_0x0d7c('0x70'),'input_type':_0x0d7c('0x68'),'response_type':'JSON','rest_data':JSON[_0x0d7c('0x69')]({'session':_0x3df5b7['id'],'module_name':_0x0d7c('0x71')})}})[_0x0d7c('0x27')](function(_0x4e591){if(_0x4e591){var _0x4580e2=_['values'](_0x4e591[_0x0d7c('0x72')]);_[_0x0d7c('0x73')](_0x4580e2,function(_0x3fd56c){return _0x5d6f0d[_0x0d7c('0x74')](_0x3fd56c[_0x0d7c('0x2b')]);});return{'count':_0x4580e2[_0x0d7c('0x47')],'rows':_['map'](_0x4580e2,function(_0x43d879){return{'id':_0x43d879[_0x0d7c('0x2b')],'name':_0x43d879['label'],'custom':_[_0x0d7c('0x75')](_0x43d879[_0x0d7c('0x2b')],'_c')?!![]:![],'options':_0x43d879[_0x0d7c('0x41')]?_['map'](_[_0x0d7c('0x76')](_0x43d879['options']),function(_0xfbd3be){return{'name':_0xfbd3be[_0x0d7c('0x77')],'value':_0xfbd3be['name']};}):[]};})};}})[_0x0d7c('0x27')](respondWithResult(_0x416476,null))[_0x0d7c('0x44')](function(_0xf0be7d){var _0x35acd5=_0x4a8dfd['query']['test']?0x1f4:_0xf0be7d[_0x0d7c('0x78')]||0x1f4;logger[_0x0d7c('0x29')]('getFields,\x20%s,\x20%s,\x20%s',_0x0d7c('0x56'),_0x35acd5,JSON[_0x0d7c('0x69')](_0xf0be7d));delete _0xf0be7d[_0x0d7c('0x2b')];if(_0x35acd5===0x191){_0x35acd5=0x190;}_0x416476[_0x0d7c('0x1b')](_0x35acd5)[_0x0d7c('0x2c')](_0x4a8dfd[_0x0d7c('0x34')]['test']?{'message':'Wrong\x20credentials','statusCode':_0xf0be7d[_0x0d7c('0x78')]}:_0xf0be7d);});}else{var _0x5452be=0x1f4;_0x416476[_0x0d7c('0x1b')](_0x5452be)[_0x0d7c('0x2c')]({'message':_0x0d7c('0x79'),'statusCode':0x190});}});};