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 _0x1542=['Subjects','getFields','assigned_user_id','created_by','description','date_start','duration_minutes','parent_id','parent_type','password','remoteUri','slice','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','username','xCALLY\x20Motion\x20Integration','Invalid\x20Login','get_module_fields','JSON','stringify','Calls','values','module_fields','remove','includes','label','value','statusCode','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','offset','limit','undefined','count','set','Content-Range','apply','save','then','destroy','end','error','stack','name','send','index','map','SugarcrmAccount','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filters','filter','VIRTUAL','merge','includeAll','findAll','rows','catch','show','include','options','create','update','body','params','find','getConfigurations','findOne','SugarcrmConfiguration','addConfiguration','AccountId','getSubjects','channel','Descriptions','getDescriptions','SugarcrmField'];(function(_0x32b331,_0x493ebc){var _0x3d5c26=function(_0x423e7c){while(--_0x423e7c){_0x32b331['push'](_0x32b331['shift']());}};_0x3d5c26(++_0x493ebc);}(_0x1542,0x116));var _0x2154=function(_0x475132,_0x1b91cd){_0x475132=_0x475132-0x0;var _0x1c239f=_0x1542[_0x475132];return _0x1c239f;};'use strict';var emlformat=require(_0x2154('0x0'));var rimraf=require(_0x2154('0x1'));var zipdir=require(_0x2154('0x2'));var jsonpatch=require(_0x2154('0x3'));var rp=require(_0x2154('0x4'));var moment=require('moment');var BPromise=require(_0x2154('0x5'));var Mustache=require(_0x2154('0x6'));var util=require(_0x2154('0x7'));var path=require('path');var sox=require(_0x2154('0x8'));var csv=require(_0x2154('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2154('0xa'));var _=require(_0x2154('0xb'));var squel=require(_0x2154('0xc'));var crypto=require(_0x2154('0xd'));var jsforce=require(_0x2154('0xe'));var deskjs=require(_0x2154('0xf'));var toCsv=require(_0x2154('0x9'));var querystring=require(_0x2154('0x10'));var Papa=require(_0x2154('0x11'));var Redis=require(_0x2154('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x2154('0x13'));var as=require(_0x2154('0x14'));var hardwareService=require(_0x2154('0x15'));var logger=require(_0x2154('0x16'))('api');var utils=require(_0x2154('0x17'));var config=require(_0x2154('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x2154('0x19'))['db'];var integrations=require(_0x2154('0x1a'));function respondWithStatusCode(_0x3daa7d,_0x2a79eb){_0x2a79eb=_0x2a79eb||0xcc;return function(_0x9f4e9b){if(_0x9f4e9b){return _0x3daa7d[_0x2154('0x1b')](_0x2a79eb);}return _0x3daa7d[_0x2154('0x1c')](_0x2a79eb)['end']();};}function respondWithResult(_0x5363f6,_0x160517){_0x160517=_0x160517||0xc8;return function(_0x5e1aee){if(_0x5e1aee){return _0x5363f6[_0x2154('0x1c')](_0x160517)['json'](_0x5e1aee);}};}function respondWithFilteredResult(_0x48f188,_0x5b34b9){return function(_0x46c995){if(_0x46c995){var _0x57e662=typeof _0x5b34b9[_0x2154('0x1d')]==='undefined'&&typeof _0x5b34b9[_0x2154('0x1e')]===_0x2154('0x1f');var _0x324a0f=_0x46c995[_0x2154('0x20')];var _0x14d29a=_0x57e662?0x0:_0x5b34b9[_0x2154('0x1d')];var _0x15c197=_0x57e662?_0x46c995[_0x2154('0x20')]:_0x5b34b9[_0x2154('0x1d')]+_0x5b34b9[_0x2154('0x1e')];var _0x50ed9b;if(_0x15c197>=_0x324a0f){_0x15c197=_0x324a0f;_0x50ed9b=0xc8;}else{_0x50ed9b=0xce;}_0x48f188[_0x2154('0x1c')](_0x50ed9b);return _0x48f188[_0x2154('0x21')](_0x2154('0x22'),_0x14d29a+'-'+_0x15c197+'/'+_0x324a0f)['json'](_0x46c995);}return null;};}function patchUpdates(_0x2af3dd){return function(_0x349387){try{jsonpatch[_0x2154('0x23')](_0x349387,_0x2af3dd,!![]);}catch(_0x31db14){return BPromise['reject'](_0x31db14);}return _0x349387[_0x2154('0x24')]();};}function saveUpdates(_0xb10044,_0x3f4387){return function(_0x4efdde){if(_0x4efdde){return _0x4efdde['update'](_0xb10044)[_0x2154('0x25')](function(_0xa40b17){return _0xa40b17;});}return null;};}function removeEntity(_0x166b0d,_0x4ef4f7){return function(_0x54ba3b){if(_0x54ba3b){return _0x54ba3b[_0x2154('0x26')]()[_0x2154('0x25')](function(){_0x166b0d[_0x2154('0x1c')](0xcc)[_0x2154('0x27')]();});}};}function handleEntityNotFound(_0x5c954c,_0x1b3f89){return function(_0x34c860){if(!_0x34c860){_0x5c954c[_0x2154('0x1b')](0x194);}return _0x34c860;};}function handleError(_0x5c5dbb,_0x4afbb4){_0x4afbb4=_0x4afbb4||0x1f4;return function(_0x128d6d){logger[_0x2154('0x28')](_0x128d6d[_0x2154('0x29')]);if(_0x128d6d['name']){delete _0x128d6d[_0x2154('0x2a')];}_0x5c5dbb[_0x2154('0x1c')](_0x4afbb4)[_0x2154('0x2b')](_0x128d6d);};}exports[_0x2154('0x2c')]=function(_0x375a57,_0x5cd152){var _0x23f1bc={},_0x215a2c={},_0x661cff={'count':0x0,'rows':[]};var _0x156f1a=_[_0x2154('0x2d')](db[_0x2154('0x2e')][_0x2154('0x2f')],function(_0x5661d9){return{'name':_0x5661d9[_0x2154('0x30')],'type':_0x5661d9[_0x2154('0x31')]['key']};});_0x215a2c[_0x2154('0x32')]=_['map'](_0x156f1a,'name');_0x215a2c[_0x2154('0x33')]=_[_0x2154('0x34')](_0x375a57[_0x2154('0x33')]);_0x215a2c['filters']=_[_0x2154('0x35')](_0x215a2c[_0x2154('0x32')],_0x215a2c[_0x2154('0x33')]);_0x23f1bc[_0x2154('0x36')]=_[_0x2154('0x35')](_0x215a2c[_0x2154('0x32')],qs[_0x2154('0x37')](_0x375a57[_0x2154('0x33')]['fields']));_0x23f1bc[_0x2154('0x36')]=_0x23f1bc['attributes'][_0x2154('0x38')]?_0x23f1bc[_0x2154('0x36')]:_0x215a2c[_0x2154('0x32')];if(!_0x375a57[_0x2154('0x33')][_0x2154('0x39')]('nolimit')){_0x23f1bc['limit']=qs[_0x2154('0x1e')](_0x375a57[_0x2154('0x33')][_0x2154('0x1e')]);_0x23f1bc[_0x2154('0x1d')]=qs[_0x2154('0x1d')](_0x375a57[_0x2154('0x33')][_0x2154('0x1d')]);}_0x23f1bc[_0x2154('0x3a')]=qs[_0x2154('0x3b')](_0x375a57[_0x2154('0x33')]['sort']);_0x23f1bc[_0x2154('0x3c')]=qs['filters'](_[_0x2154('0x3d')](_0x375a57[_0x2154('0x33')],_0x215a2c[_0x2154('0x3e')]),_0x156f1a);if(_0x375a57[_0x2154('0x33')][_0x2154('0x3f')]){_0x23f1bc[_0x2154('0x3c')]=_['merge'](_0x23f1bc[_0x2154('0x3c')],{'$or':_[_0x2154('0x2d')](_0x156f1a,function(_0x401c93){if(_0x401c93[_0x2154('0x31')]!==_0x2154('0x40')){var _0x12e7c5={};_0x12e7c5[_0x401c93[_0x2154('0x2a')]]={'$like':'%'+_0x375a57[_0x2154('0x33')][_0x2154('0x3f')]+'%'};return _0x12e7c5;}})});}_0x23f1bc=_[_0x2154('0x41')]({},_0x23f1bc,_0x375a57['options']);var _0x5d77b0={'where':_0x23f1bc[_0x2154('0x3c')]};return db[_0x2154('0x2e')]['count'](_0x5d77b0)[_0x2154('0x25')](function(_0x1cd56b){_0x661cff['count']=_0x1cd56b;if(_0x375a57[_0x2154('0x33')][_0x2154('0x42')]){_0x23f1bc['include']=[{'all':!![]}];}return db['SugarcrmAccount'][_0x2154('0x43')](_0x23f1bc);})[_0x2154('0x25')](function(_0x169344){_0x661cff[_0x2154('0x44')]=_0x169344;return _0x661cff;})[_0x2154('0x25')](respondWithFilteredResult(_0x5cd152,_0x23f1bc))[_0x2154('0x45')](handleError(_0x5cd152,null));};exports[_0x2154('0x46')]=function(_0x2f0bba,_0x337296){var _0x417663={'raw':![],'where':{'id':_0x2f0bba['params']['id']}},_0x3ae9e2={};_0x3ae9e2['model']=_[_0x2154('0x34')](db['SugarcrmAccount'][_0x2154('0x2f')]);_0x3ae9e2[_0x2154('0x33')]=_[_0x2154('0x34')](_0x2f0bba[_0x2154('0x33')]);_0x3ae9e2['filters']=_[_0x2154('0x35')](_0x3ae9e2[_0x2154('0x32')],_0x3ae9e2[_0x2154('0x33')]);_0x417663[_0x2154('0x36')]=_[_0x2154('0x35')](_0x3ae9e2[_0x2154('0x32')],qs['fields'](_0x2f0bba['query']['fields']));_0x417663[_0x2154('0x36')]=_0x417663['attributes']['length']?_0x417663[_0x2154('0x36')]:_0x3ae9e2[_0x2154('0x32')];if(_0x2f0bba[_0x2154('0x33')][_0x2154('0x42')]){_0x417663[_0x2154('0x47')]=[{'all':!![]}];}_0x417663=_[_0x2154('0x41')]({},_0x417663,_0x2f0bba[_0x2154('0x48')]);return db[_0x2154('0x2e')]['find'](_0x417663)[_0x2154('0x25')](handleEntityNotFound(_0x337296,null))[_0x2154('0x25')](respondWithResult(_0x337296,null))[_0x2154('0x45')](handleError(_0x337296,null));};exports['create']=function(_0x5a82b0,_0x14666c){return db[_0x2154('0x2e')][_0x2154('0x49')](_0x5a82b0['body'],{})[_0x2154('0x25')](respondWithResult(_0x14666c,0xc9))[_0x2154('0x45')](handleError(_0x14666c,null));};exports[_0x2154('0x4a')]=function(_0x7027c1,_0x44ec66){if(_0x7027c1[_0x2154('0x4b')]['id']){delete _0x7027c1[_0x2154('0x4b')]['id'];}return db[_0x2154('0x2e')]['find']({'where':{'id':_0x7027c1[_0x2154('0x4c')]['id']}})[_0x2154('0x25')](handleEntityNotFound(_0x44ec66,null))[_0x2154('0x25')](saveUpdates(_0x7027c1[_0x2154('0x4b')],null))['then'](respondWithResult(_0x44ec66,null))[_0x2154('0x45')](handleError(_0x44ec66,null));};exports['destroy']=function(_0x5e4c51,_0xd745bf){return db[_0x2154('0x2e')][_0x2154('0x4d')]({'where':{'id':_0x5e4c51[_0x2154('0x4c')]['id']}})[_0x2154('0x25')](handleEntityNotFound(_0xd745bf,null))[_0x2154('0x25')](removeEntity(_0xd745bf,null))[_0x2154('0x45')](handleError(_0xd745bf,null));};exports[_0x2154('0x4e')]=function(_0x2049c9,_0x3e7e43,_0x54fd3c){var _0x5d85db={};var _0x3c1200={};var _0x56fd16;var _0x336f8b;return db['SugarcrmAccount'][_0x2154('0x4f')]({'where':{'id':_0x2049c9[_0x2154('0x4c')]['id']}})[_0x2154('0x25')](handleEntityNotFound(_0x3e7e43,null))[_0x2154('0x25')](function(_0xfa774b){if(_0xfa774b){_0x56fd16=_0xfa774b;_0x3c1200[_0x2154('0x32')]=_[_0x2154('0x34')](db[_0x2154('0x50')][_0x2154('0x2f')]);_0x3c1200[_0x2154('0x33')]=_[_0x2154('0x34')](_0x2049c9[_0x2154('0x33')]);_0x3c1200[_0x2154('0x3e')]=_[_0x2154('0x35')](_0x3c1200['model'],_0x3c1200['query']);_0x5d85db[_0x2154('0x36')]=_[_0x2154('0x35')](_0x3c1200[_0x2154('0x32')],qs[_0x2154('0x37')](_0x2049c9[_0x2154('0x33')]['fields']));_0x5d85db['attributes']=_0x5d85db[_0x2154('0x36')][_0x2154('0x38')]?_0x5d85db[_0x2154('0x36')]:_0x3c1200[_0x2154('0x32')];_0x5d85db[_0x2154('0x3a')]=qs['sort'](_0x2049c9[_0x2154('0x33')][_0x2154('0x3b')]);_0x5d85db[_0x2154('0x3c')]=qs[_0x2154('0x3e')](_[_0x2154('0x3d')](_0x2049c9['query'],_0x3c1200[_0x2154('0x3e')]));if(_0x2049c9['query'][_0x2154('0x3f')]){_0x5d85db[_0x2154('0x3c')]=_[_0x2154('0x41')](_0x5d85db[_0x2154('0x3c')],{'$or':_[_0x2154('0x2d')](_0x5d85db[_0x2154('0x36')],function(_0x572ee2){var _0x10c6b9={};_0x10c6b9[_0x572ee2]={'$like':'%'+_0x2049c9[_0x2154('0x33')][_0x2154('0x3f')]+'%'};return _0x10c6b9;})});}_0x5d85db=_[_0x2154('0x41')]({},_0x5d85db,_0x2049c9[_0x2154('0x48')]);return _0x56fd16[_0x2154('0x4e')](_0x5d85db);}})[_0x2154('0x25')](function(_0x4cd45e){if(_0x4cd45e){_0x336f8b=_0x4cd45e[_0x2154('0x38')];if(!_0x2049c9[_0x2154('0x33')][_0x2154('0x39')]('nolimit')){_0x5d85db['limit']=qs['limit'](_0x2049c9[_0x2154('0x33')]['limit']);_0x5d85db[_0x2154('0x1d')]=qs['offset'](_0x2049c9['query'][_0x2154('0x1d')]);}return _0x56fd16['getConfigurations'](_0x5d85db);}})[_0x2154('0x25')](function(_0x21bd73){if(_0x21bd73){return _0x21bd73?{'count':_0x336f8b,'rows':_0x21bd73}:null;}})[_0x2154('0x25')](respondWithResult(_0x3e7e43,null))['catch'](handleError(_0x3e7e43,null));};exports[_0x2154('0x51')]=function(_0x58e592,_0x5edf0e,_0x1f37ec){if(_0x58e592[_0x2154('0x4b')]['id']){delete _0x58e592[_0x2154('0x4b')]['id'];}return db[_0x2154('0x2e')][_0x2154('0x4f')]({'where':{'id':_0x58e592['params']['id']}})[_0x2154('0x25')](handleEntityNotFound(_0x5edf0e,null))['then'](function(_0x9407e1){if(_0x9407e1){_0x58e592[_0x2154('0x4b')][_0x2154('0x52')]=_0x9407e1['id'];_0x58e592[_0x2154('0x4b')]['Subjects']=integrations[_0x2154('0x53')](_0x58e592['body'][_0x2154('0x54')],_0x58e592[_0x2154('0x4b')]['type']);_0x58e592[_0x2154('0x4b')][_0x2154('0x55')]=integrations[_0x2154('0x56')](_0x58e592['body']['channel'],_0x58e592[_0x2154('0x4b')][_0x2154('0x31')]);return db['SugarcrmConfiguration'][_0x2154('0x49')](_0x58e592[_0x2154('0x4b')],{'include':[{'model':db[_0x2154('0x57')],'as':_0x2154('0x58')},{'model':db[_0x2154('0x57')],'as':_0x2154('0x55')}]});}return null;})[_0x2154('0x25')](respondWithResult(_0x5edf0e,null))[_0x2154('0x45')](handleError(_0x5edf0e,null));};exports[_0x2154('0x59')]=function(_0xba05b8,_0x59e144,_0x147927){var _0x2f9a07='';var _0x305b09=['id',_0x2154('0x2a'),_0x2154('0x5a'),_0x2154('0x5b'),_0x2154('0x5c'),_0x2154('0x5d'),'duration_hours',_0x2154('0x5e'),_0x2154('0x5f'),_0x2154('0x60'),'parent_name','direction'];return db[_0x2154('0x2e')]['findOne']({'where':{'id':_0xba05b8['params']['id']},'attributes':['id','username',_0x2154('0x61'),_0x2154('0x62')]})[_0x2154('0x25')](handleEntityNotFound(_0x59e144,null))[_0x2154('0x25')](function(_0x2605ec){if(_0x2605ec){_0x2f9a07=_0x2605ec['remoteUri'];var _0x26b0d0=_0x2f9a07[_0x2154('0x63')](-0x1);if(_0x26b0d0==='/'){_0x2f9a07=_0x2f9a07['substring'](0x0,_0x2f9a07[_0x2154('0x64')](_0x26b0d0));}return rp({'method':_0x2154('0x65'),'uri':util[_0x2154('0x66')](_0x2154('0x67'),_0x2f9a07,_0x2154('0x68')),'json':!![],'form':{'method':'login','input_type':'JSON','response_type':'JSON','rest_data':JSON['stringify']({'user_auth':{'user_name':_0x2605ec[_0x2154('0x69')],'password':_0x2605ec[_0x2154('0x61')],'encryption':'PLAIN'},'application':_0x2154('0x6a')})}});}})[_0x2154('0x25')](function(_0x201689){if(_0x201689&&_0x201689['name']!==_0x2154('0x6b')&&_0x201689[_0x2154('0x2a')]!=='Password\x20Expired'){return rp({'method':_0x2154('0x65'),'uri':util[_0x2154('0x66')](_0x2154('0x67'),_0x2f9a07,_0x2154('0x68')),'json':!![],'form':{'method':_0x2154('0x6c'),'input_type':_0x2154('0x6d'),'response_type':'JSON','rest_data':JSON[_0x2154('0x6e')]({'session':_0x201689['id'],'module_name':_0x2154('0x6f')})}})[_0x2154('0x25')](function(_0x33e328){if(_0x33e328){var _0x152691=_[_0x2154('0x70')](_0x33e328[_0x2154('0x71')]);_[_0x2154('0x72')](_0x152691,function(_0x48df7b){return _0x305b09[_0x2154('0x73')](_0x48df7b[_0x2154('0x2a')]);});return{'count':_0x152691[_0x2154('0x38')],'rows':_['map'](_0x152691,function(_0x284287){return{'id':_0x284287[_0x2154('0x2a')],'name':_0x284287[_0x2154('0x74')],'custom':_['endsWith'](_0x284287[_0x2154('0x2a')],'_c')?!![]:![],'options':_0x284287[_0x2154('0x48')]?_[_0x2154('0x2d')](_[_0x2154('0x70')](_0x284287[_0x2154('0x48')]),function(_0x573db3){return{'name':_0x573db3[_0x2154('0x75')],'value':_0x573db3[_0x2154('0x2a')]};}):[]};})};}})[_0x2154('0x25')](respondWithResult(_0x59e144,null))[_0x2154('0x45')](function(_0x4b8bed){var _0x3d3d8b=_0xba05b8[_0x2154('0x33')]['test']?0x1f4:_0x4b8bed[_0x2154('0x76')]||0x1f4;logger[_0x2154('0x28')](_0x2154('0x77'),'getFields',_0x3d3d8b,JSON[_0x2154('0x6e')](_0x4b8bed));delete _0x4b8bed[_0x2154('0x2a')];if(_0x3d3d8b===0x191){_0x3d3d8b=0x190;}_0x59e144['status'](_0x3d3d8b)[_0x2154('0x2b')](_0xba05b8['query'][_0x2154('0x78')]?{'message':_0x2154('0x79'),'statusCode':_0x4b8bed[_0x2154('0x76')]}:_0x4b8bed);});}else{var _0x1ef06b=0x1f4;_0x59e144['status'](_0x1ef06b)[_0x2154('0x2b')]({'message':_0x2154('0x79'),'statusCode':0x190});}});};