Built motion from commit 3c2ce842.|2.6.31
[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 _0x9277=['SugarcrmConfiguration','filter','addConfiguration','AccountId','getSubjects','Descriptions','getDescriptions','channel','SugarcrmField','Subjects','getFields','assigned_user_id','created_by','date_start','duration_minutes','parent_id','parent_type','parent_name','direction','password','remoteUri','slice','substring','POST','format','%s%s','/service/v4_1/rest.php','JSON','stringify','username','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','get_module_fields','values','module_fields','includes','label','endsWith','statusCode','test','Wrong\x20credentials','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','end','error','name','send','index','map','SugarcrmAccount','fieldName','type','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','merge','includeAll','include','catch','show','keys','rawAttributes','options','find','create','body','params','getConfigurations','findOne'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x9277,0x195));var _0x7927=function(_0x53618a,_0x3ce1c8){_0x53618a=_0x53618a-0x0;var _0x588ddb=_0x9277[_0x53618a];return _0x588ddb;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x7927('0x0'));var jsonpatch=require(_0x7927('0x1'));var rp=require(_0x7927('0x2'));var moment=require(_0x7927('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x7927('0x4'));var path=require(_0x7927('0x5'));var sox=require(_0x7927('0x6'));var csv=require('to-csv');var ejs=require(_0x7927('0x7'));var fs=require('fs');var fs_extra=require(_0x7927('0x8'));var _=require(_0x7927('0x9'));var squel=require(_0x7927('0xa'));var crypto=require('crypto');var jsforce=require(_0x7927('0xb'));var deskjs=require(_0x7927('0xc'));var toCsv=require(_0x7927('0xd'));var querystring=require(_0x7927('0xe'));var Papa=require(_0x7927('0xf'));var Redis=require(_0x7927('0x10'));var authService=require(_0x7927('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x7927('0x12'));var hardwareService=require(_0x7927('0x13'));var logger=require(_0x7927('0x14'))(_0x7927('0x15'));var utils=require(_0x7927('0x16'));var config=require(_0x7927('0x17'));var licenseUtil=require(_0x7927('0x18'));var db=require(_0x7927('0x19'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x46d796,_0x5ac794){_0x5ac794=_0x5ac794||0xcc;return function(_0x1964c0){if(_0x1964c0){return _0x46d796[_0x7927('0x1a')](_0x5ac794);}return _0x46d796[_0x7927('0x1b')](_0x5ac794)['end']();};}function respondWithResult(_0x454da0,_0x2091b7){_0x2091b7=_0x2091b7||0xc8;return function(_0x3be15e){if(_0x3be15e){return _0x454da0[_0x7927('0x1b')](_0x2091b7)[_0x7927('0x1c')](_0x3be15e);}};}function respondWithFilteredResult(_0x336164,_0x2eb2a2){return function(_0x199f14){if(_0x199f14){var _0x27f332=typeof _0x2eb2a2[_0x7927('0x1d')]===_0x7927('0x1e')&&typeof _0x2eb2a2[_0x7927('0x1f')]===_0x7927('0x1e');var _0x43cf3=_0x199f14[_0x7927('0x20')];var _0x454615=_0x27f332?0x0:_0x2eb2a2[_0x7927('0x1d')];var _0x4db4de=_0x27f332?_0x199f14['count']:_0x2eb2a2[_0x7927('0x1d')]+_0x2eb2a2[_0x7927('0x1f')];var _0x1c3d56;if(_0x4db4de>=_0x43cf3){_0x4db4de=_0x43cf3;_0x1c3d56=0xc8;}else{_0x1c3d56=0xce;}_0x336164[_0x7927('0x1b')](_0x1c3d56);return _0x336164[_0x7927('0x21')](_0x7927('0x22'),_0x454615+'-'+_0x4db4de+'/'+_0x43cf3)[_0x7927('0x1c')](_0x199f14);}return null;};}function patchUpdates(_0x2a176e){return function(_0x3eae0a){try{jsonpatch[_0x7927('0x23')](_0x3eae0a,_0x2a176e,!![]);}catch(_0x40afa3){return BPromise[_0x7927('0x24')](_0x40afa3);}return _0x3eae0a[_0x7927('0x25')]();};}function saveUpdates(_0x28071d,_0x2be819){return function(_0xc9af99){if(_0xc9af99){return _0xc9af99[_0x7927('0x26')](_0x28071d)[_0x7927('0x27')](function(_0x1333f2){return _0x1333f2;});}return null;};}function removeEntity(_0xe499dc,_0x96a0c9){return function(_0x15187f){if(_0x15187f){return _0x15187f[_0x7927('0x28')]()[_0x7927('0x27')](function(){_0xe499dc[_0x7927('0x1b')](0xcc)[_0x7927('0x29')]();});}};}function handleEntityNotFound(_0x5858e3,_0x9dba05){return function(_0x5b3d8b){if(!_0x5b3d8b){_0x5858e3[_0x7927('0x1a')](0x194);}return _0x5b3d8b;};}function handleError(_0x3e59a6,_0x2750ce){_0x2750ce=_0x2750ce||0x1f4;return function(_0x8459f4){logger[_0x7927('0x2a')](_0x8459f4['stack']);if(_0x8459f4[_0x7927('0x2b')]){delete _0x8459f4[_0x7927('0x2b')];}_0x3e59a6[_0x7927('0x1b')](_0x2750ce)[_0x7927('0x2c')](_0x8459f4);};}exports[_0x7927('0x2d')]=function(_0x578d9c,_0x26bd40){var _0x3917b5={},_0x392eaf={},_0x2910a9={'count':0x0,'rows':[]};var _0x3abcbc=_[_0x7927('0x2e')](db[_0x7927('0x2f')]['rawAttributes'],function(_0x57139b){return{'name':_0x57139b[_0x7927('0x30')],'type':_0x57139b[_0x7927('0x31')][_0x7927('0x32')]};});_0x392eaf[_0x7927('0x33')]=_['map'](_0x3abcbc,'name');_0x392eaf[_0x7927('0x34')]=_['keys'](_0x578d9c[_0x7927('0x34')]);_0x392eaf[_0x7927('0x35')]=_[_0x7927('0x36')](_0x392eaf[_0x7927('0x33')],_0x392eaf[_0x7927('0x34')]);_0x3917b5['attributes']=_[_0x7927('0x36')](_0x392eaf['model'],qs[_0x7927('0x37')](_0x578d9c['query'][_0x7927('0x37')]));_0x3917b5[_0x7927('0x38')]=_0x3917b5['attributes'][_0x7927('0x39')]?_0x3917b5[_0x7927('0x38')]:_0x392eaf['model'];if(!_0x578d9c[_0x7927('0x34')][_0x7927('0x3a')](_0x7927('0x3b'))){_0x3917b5['limit']=qs[_0x7927('0x1f')](_0x578d9c[_0x7927('0x34')][_0x7927('0x1f')]);_0x3917b5[_0x7927('0x1d')]=qs[_0x7927('0x1d')](_0x578d9c[_0x7927('0x34')][_0x7927('0x1d')]);}_0x3917b5[_0x7927('0x3c')]=qs['sort'](_0x578d9c[_0x7927('0x34')][_0x7927('0x3d')]);_0x3917b5[_0x7927('0x3e')]=qs[_0x7927('0x35')](_[_0x7927('0x3f')](_0x578d9c[_0x7927('0x34')],_0x392eaf[_0x7927('0x35')]),_0x3abcbc);if(_0x578d9c[_0x7927('0x34')]['filter']){_0x3917b5['where']=_['merge'](_0x3917b5[_0x7927('0x3e')],{'$or':_[_0x7927('0x2e')](_0x3abcbc,function(_0x1de4d1){if(_0x1de4d1[_0x7927('0x31')]!==_0x7927('0x40')){var _0x103911={};_0x103911[_0x1de4d1[_0x7927('0x2b')]]={'$like':'%'+_0x578d9c[_0x7927('0x34')]['filter']+'%'};return _0x103911;}})});}_0x3917b5=_[_0x7927('0x41')]({},_0x3917b5,_0x578d9c['options']);var _0x3ab01a={'where':_0x3917b5[_0x7927('0x3e')]};return db[_0x7927('0x2f')][_0x7927('0x20')](_0x3ab01a)[_0x7927('0x27')](function(_0x382cc6){_0x2910a9[_0x7927('0x20')]=_0x382cc6;if(_0x578d9c[_0x7927('0x34')][_0x7927('0x42')]){_0x3917b5[_0x7927('0x43')]=[{'all':!![]}];}return db[_0x7927('0x2f')]['findAll'](_0x3917b5);})[_0x7927('0x27')](function(_0x28cec7){_0x2910a9['rows']=_0x28cec7;return _0x2910a9;})[_0x7927('0x27')](respondWithFilteredResult(_0x26bd40,_0x3917b5))[_0x7927('0x44')](handleError(_0x26bd40,null));};exports[_0x7927('0x45')]=function(_0x5d5058,_0x51e937){var _0x5f1076={'raw':![],'where':{'id':_0x5d5058['params']['id']}},_0xdbcedc={};_0xdbcedc[_0x7927('0x33')]=_[_0x7927('0x46')](db[_0x7927('0x2f')][_0x7927('0x47')]);_0xdbcedc[_0x7927('0x34')]=_[_0x7927('0x46')](_0x5d5058['query']);_0xdbcedc[_0x7927('0x35')]=_[_0x7927('0x36')](_0xdbcedc[_0x7927('0x33')],_0xdbcedc[_0x7927('0x34')]);_0x5f1076['attributes']=_[_0x7927('0x36')](_0xdbcedc[_0x7927('0x33')],qs['fields'](_0x5d5058[_0x7927('0x34')][_0x7927('0x37')]));_0x5f1076['attributes']=_0x5f1076['attributes'][_0x7927('0x39')]?_0x5f1076[_0x7927('0x38')]:_0xdbcedc['model'];if(_0x5d5058[_0x7927('0x34')][_0x7927('0x42')]){_0x5f1076[_0x7927('0x43')]=[{'all':!![]}];}_0x5f1076=_[_0x7927('0x41')]({},_0x5f1076,_0x5d5058[_0x7927('0x48')]);return db['SugarcrmAccount'][_0x7927('0x49')](_0x5f1076)[_0x7927('0x27')](handleEntityNotFound(_0x51e937,null))[_0x7927('0x27')](respondWithResult(_0x51e937,null))['catch'](handleError(_0x51e937,null));};exports[_0x7927('0x4a')]=function(_0x559ba9,_0x4d7f64){return db[_0x7927('0x2f')]['create'](_0x559ba9[_0x7927('0x4b')],{})[_0x7927('0x27')](respondWithResult(_0x4d7f64,0xc9))[_0x7927('0x44')](handleError(_0x4d7f64,null));};exports['update']=function(_0x3f5f6e,_0x38a2dd){if(_0x3f5f6e[_0x7927('0x4b')]['id']){delete _0x3f5f6e[_0x7927('0x4b')]['id'];}return db[_0x7927('0x2f')][_0x7927('0x49')]({'where':{'id':_0x3f5f6e[_0x7927('0x4c')]['id']}})[_0x7927('0x27')](handleEntityNotFound(_0x38a2dd,null))[_0x7927('0x27')](saveUpdates(_0x3f5f6e[_0x7927('0x4b')],null))[_0x7927('0x27')](respondWithResult(_0x38a2dd,null))[_0x7927('0x44')](handleError(_0x38a2dd,null));};exports[_0x7927('0x28')]=function(_0x3e7638,_0x1b8e1c){return db[_0x7927('0x2f')][_0x7927('0x49')]({'where':{'id':_0x3e7638[_0x7927('0x4c')]['id']}})[_0x7927('0x27')](handleEntityNotFound(_0x1b8e1c,null))[_0x7927('0x27')](removeEntity(_0x1b8e1c,null))[_0x7927('0x44')](handleError(_0x1b8e1c,null));};exports[_0x7927('0x4d')]=function(_0x11acd7,_0x3cfc5a,_0x459c35){var _0x3c7f1c={};var _0x24841e={};var _0x32cf67;var _0x590830;return db[_0x7927('0x2f')][_0x7927('0x4e')]({'where':{'id':_0x11acd7[_0x7927('0x4c')]['id']}})[_0x7927('0x27')](handleEntityNotFound(_0x3cfc5a,null))[_0x7927('0x27')](function(_0x33f8c1){if(_0x33f8c1){_0x32cf67=_0x33f8c1;_0x24841e['model']=_[_0x7927('0x46')](db[_0x7927('0x4f')]['rawAttributes']);_0x24841e[_0x7927('0x34')]=_[_0x7927('0x46')](_0x11acd7[_0x7927('0x34')]);_0x24841e[_0x7927('0x35')]=_['intersection'](_0x24841e[_0x7927('0x33')],_0x24841e[_0x7927('0x34')]);_0x3c7f1c['attributes']=_[_0x7927('0x36')](_0x24841e[_0x7927('0x33')],qs['fields'](_0x11acd7[_0x7927('0x34')]['fields']));_0x3c7f1c[_0x7927('0x38')]=_0x3c7f1c[_0x7927('0x38')][_0x7927('0x39')]?_0x3c7f1c[_0x7927('0x38')]:_0x24841e[_0x7927('0x33')];_0x3c7f1c[_0x7927('0x3c')]=qs[_0x7927('0x3d')](_0x11acd7[_0x7927('0x34')][_0x7927('0x3d')]);_0x3c7f1c[_0x7927('0x3e')]=qs['filters'](_[_0x7927('0x3f')](_0x11acd7[_0x7927('0x34')],_0x24841e['filters']));if(_0x11acd7[_0x7927('0x34')][_0x7927('0x50')]){_0x3c7f1c[_0x7927('0x3e')]=_[_0x7927('0x41')](_0x3c7f1c[_0x7927('0x3e')],{'$or':_[_0x7927('0x2e')](_0x3c7f1c[_0x7927('0x38')],function(_0x3cfe20){var _0x39eca8={};_0x39eca8[_0x3cfe20]={'$like':'%'+_0x11acd7[_0x7927('0x34')][_0x7927('0x50')]+'%'};return _0x39eca8;})});}_0x3c7f1c=_[_0x7927('0x41')]({},_0x3c7f1c,_0x11acd7[_0x7927('0x48')]);return _0x32cf67[_0x7927('0x4d')](_0x3c7f1c);}})[_0x7927('0x27')](function(_0x12e1f4){if(_0x12e1f4){_0x590830=_0x12e1f4[_0x7927('0x39')];if(!_0x11acd7['query'][_0x7927('0x3a')]('nolimit')){_0x3c7f1c[_0x7927('0x1f')]=qs[_0x7927('0x1f')](_0x11acd7[_0x7927('0x34')]['limit']);_0x3c7f1c[_0x7927('0x1d')]=qs[_0x7927('0x1d')](_0x11acd7['query']['offset']);}return _0x32cf67['getConfigurations'](_0x3c7f1c);}})[_0x7927('0x27')](function(_0x45f5ca){if(_0x45f5ca){return _0x45f5ca?{'count':_0x590830,'rows':_0x45f5ca}:null;}})[_0x7927('0x27')](respondWithResult(_0x3cfc5a,null))[_0x7927('0x44')](handleError(_0x3cfc5a,null));};exports[_0x7927('0x51')]=function(_0x1d5c31,_0x5ae646,_0x2221c1){if(_0x1d5c31['body']['id']){delete _0x1d5c31[_0x7927('0x4b')]['id'];}return db[_0x7927('0x2f')][_0x7927('0x4e')]({'where':{'id':_0x1d5c31[_0x7927('0x4c')]['id']}})[_0x7927('0x27')](handleEntityNotFound(_0x5ae646,null))[_0x7927('0x27')](function(_0x529090){if(_0x529090){_0x1d5c31[_0x7927('0x4b')][_0x7927('0x52')]=_0x529090['id'];_0x1d5c31['body']['Subjects']=integrations[_0x7927('0x53')](_0x1d5c31[_0x7927('0x4b')]['channel'],_0x1d5c31[_0x7927('0x4b')][_0x7927('0x31')]);_0x1d5c31[_0x7927('0x4b')][_0x7927('0x54')]=integrations[_0x7927('0x55')](_0x1d5c31[_0x7927('0x4b')][_0x7927('0x56')],_0x1d5c31[_0x7927('0x4b')]['type']);return db[_0x7927('0x4f')][_0x7927('0x4a')](_0x1d5c31['body'],{'include':[{'model':db[_0x7927('0x57')],'as':_0x7927('0x58')},{'model':db[_0x7927('0x57')],'as':_0x7927('0x54')}]});}return null;})[_0x7927('0x27')](respondWithResult(_0x5ae646,null))[_0x7927('0x44')](handleError(_0x5ae646,null));};exports[_0x7927('0x59')]=function(_0x58215f,_0x5e6e40,_0x50f5a6){var _0x2c70ce='';var _0x563732=['id',_0x7927('0x2b'),_0x7927('0x5a'),_0x7927('0x5b'),'description',_0x7927('0x5c'),'duration_hours',_0x7927('0x5d'),_0x7927('0x5e'),_0x7927('0x5f'),_0x7927('0x60'),_0x7927('0x61')];return db[_0x7927('0x2f')][_0x7927('0x4e')]({'where':{'id':_0x58215f[_0x7927('0x4c')]['id']},'attributes':['id','username',_0x7927('0x62'),_0x7927('0x63')]})[_0x7927('0x27')](handleEntityNotFound(_0x5e6e40,null))[_0x7927('0x27')](function(_0x203367){if(_0x203367){_0x2c70ce=_0x203367[_0x7927('0x63')];var _0x4d8e48=_0x2c70ce[_0x7927('0x64')](-0x1);if(_0x4d8e48==='/'){_0x2c70ce=_0x2c70ce[_0x7927('0x65')](0x0,_0x2c70ce['lastIndexOf'](_0x4d8e48));}return rp({'method':_0x7927('0x66'),'uri':util[_0x7927('0x67')](_0x7927('0x68'),_0x2c70ce,_0x7927('0x69')),'json':!![],'form':{'method':'login','input_type':'JSON','response_type':_0x7927('0x6a'),'rest_data':JSON[_0x7927('0x6b')]({'user_auth':{'user_name':_0x203367[_0x7927('0x6c')],'password':_0x203367[_0x7927('0x62')],'encryption':_0x7927('0x6d')},'application':_0x7927('0x6e')})}});}})[_0x7927('0x27')](function(_0x49b18d){if(_0x49b18d&&_0x49b18d['name']!==_0x7927('0x6f')&&_0x49b18d[_0x7927('0x2b')]!=='Password\x20Expired'){return rp({'method':_0x7927('0x66'),'uri':util[_0x7927('0x67')](_0x7927('0x68'),_0x2c70ce,_0x7927('0x69')),'json':!![],'form':{'method':_0x7927('0x70'),'input_type':_0x7927('0x6a'),'response_type':_0x7927('0x6a'),'rest_data':JSON['stringify']({'session':_0x49b18d['id'],'module_name':'Calls'})}})[_0x7927('0x27')](function(_0xc87f18){if(_0xc87f18){var _0x4f5cbf=_[_0x7927('0x71')](_0xc87f18[_0x7927('0x72')]);_['remove'](_0x4f5cbf,function(_0x5870c5){return _0x563732[_0x7927('0x73')](_0x5870c5[_0x7927('0x2b')]);});return{'count':_0x4f5cbf[_0x7927('0x39')],'rows':_[_0x7927('0x2e')](_0x4f5cbf,function(_0x3491ac){return{'id':_0x3491ac[_0x7927('0x2b')],'name':_0x3491ac[_0x7927('0x74')],'custom':_[_0x7927('0x75')](_0x3491ac['name'],'_c')?!![]:![],'options':_0x3491ac[_0x7927('0x48')]?_[_0x7927('0x2e')](_[_0x7927('0x71')](_0x3491ac['options']),function(_0x25dc6c){return{'name':_0x25dc6c['value'],'value':_0x25dc6c[_0x7927('0x2b')]};}):[]};})};}})[_0x7927('0x27')](respondWithResult(_0x5e6e40,null))[_0x7927('0x44')](function(_0xcb19fa){var _0x16c903=_0x58215f[_0x7927('0x34')]['test']?0x1f4:_0xcb19fa[_0x7927('0x76')]||0x1f4;logger[_0x7927('0x2a')]('getFields,\x20%s,\x20%s,\x20%s',_0x7927('0x59'),_0x16c903,JSON[_0x7927('0x6b')](_0xcb19fa));delete _0xcb19fa[_0x7927('0x2b')];if(_0x16c903===0x191){_0x16c903=0x190;}_0x5e6e40[_0x7927('0x1b')](_0x16c903)[_0x7927('0x2c')](_0x58215f[_0x7927('0x34')][_0x7927('0x77')]?{'message':'Wrong\x20credentials','statusCode':_0xcb19fa[_0x7927('0x76')]}:_0xcb19fa);});}else{var _0x1b5626=0x1f4;_0x5e6e40[_0x7927('0x1b')](_0x1b5626)[_0x7927('0x2c')]({'message':_0x7927('0x78'),'statusCode':0x190});}});};