Built motion from commit e6806ed6.|2.6.0
[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 _0x3806=['set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','index','map','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','pick','where','merge','VIRTUAL','filter','options','includeAll','include','SugarcrmAccount','findAll','rows','catch','show','length','find','create','body','params','getConfigurations','findOne','SugarcrmConfiguration','hasOwnProperty','addConfiguration','Subjects','getSubjects','channel','getDescriptions','SugarcrmField','Descriptions','assigned_user_id','created_by','description','date_start','duration_hours','duration_minutes','parent_name','direction','username','remoteUri','slice','substring','lastIndexOf','POST','format','/service/v4_1/rest.php','login','stringify','Password\x20Expired','get_module_fields','JSON','module_fields','remove','includes','label','endsWith','value','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','util','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','status','end','json','offset','undefined','count','limit'];(function(_0x414655,_0x79d916){var _0x237884=function(_0x2737d9){while(--_0x2737d9){_0x414655['push'](_0x414655['shift']());}};_0x237884(++_0x79d916);}(_0x3806,0x1bb));var _0x6380=function(_0x148c88,_0x4a1e30){_0x148c88=_0x148c88-0x0;var _0xf1bf58=_0x3806[_0x148c88];return _0xf1bf58;};'use strict';var emlformat=require(_0x6380('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6380('0x1'));var jsonpatch=require(_0x6380('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x6380('0x3'));var path=require(_0x6380('0x4'));var sox=require('sox');var csv=require(_0x6380('0x5'));var ejs=require(_0x6380('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x6380('0x7'));var crypto=require(_0x6380('0x8'));var jsforce=require(_0x6380('0x9'));var deskjs=require(_0x6380('0xa'));var toCsv=require(_0x6380('0x5'));var querystring=require(_0x6380('0xb'));var Papa=require(_0x6380('0xc'));var Redis=require('ioredis');var authService=require(_0x6380('0xd'));var qs=require(_0x6380('0xe'));var as=require(_0x6380('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6380('0x10'))(_0x6380('0x11'));var utils=require(_0x6380('0x12'));var config=require(_0x6380('0x13'));var licenseUtil=require(_0x6380('0x14'));var db=require('../../mysqldb')['db'];var integrations=require(_0x6380('0x15'));function respondWithStatusCode(_0x231d09,_0x54893c){_0x54893c=_0x54893c||0xcc;return function(_0x57497f){if(_0x57497f){return _0x231d09['sendStatus'](_0x54893c);}return _0x231d09[_0x6380('0x16')](_0x54893c)[_0x6380('0x17')]();};}function respondWithResult(_0x3d5062,_0x441833){_0x441833=_0x441833||0xc8;return function(_0x49e1b4){if(_0x49e1b4){return _0x3d5062[_0x6380('0x16')](_0x441833)[_0x6380('0x18')](_0x49e1b4);}};}function respondWithFilteredResult(_0x51351b,_0x2fb2a3){return function(_0x23b15f){if(_0x23b15f){var _0x131e02=typeof _0x2fb2a3[_0x6380('0x19')]===_0x6380('0x1a')&&typeof _0x2fb2a3['limit']===_0x6380('0x1a');var _0x111b62=_0x23b15f['count'];var _0x24d515=_0x131e02?0x0:_0x2fb2a3['offset'];var _0x2b09da=_0x131e02?_0x23b15f[_0x6380('0x1b')]:_0x2fb2a3[_0x6380('0x19')]+_0x2fb2a3[_0x6380('0x1c')];var _0x59a386;if(_0x2b09da>=_0x111b62){_0x2b09da=_0x111b62;_0x59a386=0xc8;}else{_0x59a386=0xce;}_0x51351b[_0x6380('0x16')](_0x59a386);return _0x51351b[_0x6380('0x1d')](_0x6380('0x1e'),_0x24d515+'-'+_0x2b09da+'/'+_0x111b62)[_0x6380('0x18')](_0x23b15f);}return null;};}function patchUpdates(_0x16af57){return function(_0x360aef){try{jsonpatch[_0x6380('0x1f')](_0x360aef,_0x16af57,!![]);}catch(_0x29275c){return BPromise[_0x6380('0x20')](_0x29275c);}return _0x360aef[_0x6380('0x21')]();};}function saveUpdates(_0x590a9a,_0x1de4ca){return function(_0x4492b7){if(_0x4492b7){return _0x4492b7[_0x6380('0x22')](_0x590a9a)[_0x6380('0x23')](function(_0x1ec664){return _0x1ec664;});}return null;};}function removeEntity(_0x5fd29f,_0x303857){return function(_0xabace4){if(_0xabace4){return _0xabace4[_0x6380('0x24')]()['then'](function(){_0x5fd29f[_0x6380('0x16')](0xcc)[_0x6380('0x17')]();});}};}function handleEntityNotFound(_0x174059,_0x1e59d7){return function(_0x4b8878){if(!_0x4b8878){_0x174059[_0x6380('0x25')](0x194);}return _0x4b8878;};}function handleError(_0x322b56,_0x48d45d){_0x48d45d=_0x48d45d||0x1f4;return function(_0x2cf3fc){logger[_0x6380('0x26')](_0x2cf3fc[_0x6380('0x27')]);if(_0x2cf3fc[_0x6380('0x28')]){delete _0x2cf3fc['name'];}_0x322b56[_0x6380('0x16')](_0x48d45d)[_0x6380('0x29')](_0x2cf3fc);};}exports[_0x6380('0x2a')]=function(_0x285c98,_0x2f79c8){var _0x553ac1={},_0x3b11de={},_0x1311de={'count':0x0,'rows':[]};var _0x3e6d92=_[_0x6380('0x2b')](db['SugarcrmAccount'][_0x6380('0x2c')],function(_0x38a4b6){return{'name':_0x38a4b6['fieldName'],'type':_0x38a4b6[_0x6380('0x2d')][_0x6380('0x2e')]};});_0x3b11de[_0x6380('0x2f')]=_['map'](_0x3e6d92,_0x6380('0x28'));_0x3b11de[_0x6380('0x30')]=_[_0x6380('0x31')](_0x285c98['query']);_0x3b11de[_0x6380('0x32')]=_[_0x6380('0x33')](_0x3b11de[_0x6380('0x2f')],_0x3b11de[_0x6380('0x30')]);_0x553ac1[_0x6380('0x34')]=_[_0x6380('0x33')](_0x3b11de[_0x6380('0x2f')],qs['fields'](_0x285c98[_0x6380('0x30')][_0x6380('0x35')]));_0x553ac1[_0x6380('0x34')]=_0x553ac1[_0x6380('0x34')]['length']?_0x553ac1[_0x6380('0x34')]:_0x3b11de[_0x6380('0x2f')];if(!_0x285c98[_0x6380('0x30')]['hasOwnProperty'](_0x6380('0x36'))){_0x553ac1[_0x6380('0x1c')]=qs['limit'](_0x285c98[_0x6380('0x30')]['limit']);_0x553ac1[_0x6380('0x19')]=qs[_0x6380('0x19')](_0x285c98[_0x6380('0x30')]['offset']);}_0x553ac1[_0x6380('0x37')]=qs['sort'](_0x285c98[_0x6380('0x30')][_0x6380('0x38')]);_0x553ac1['where']=qs[_0x6380('0x32')](_[_0x6380('0x39')](_0x285c98['query'],_0x3b11de['filters']),_0x3e6d92);if(_0x285c98['query']['filter']){_0x553ac1[_0x6380('0x3a')]=_[_0x6380('0x3b')](_0x553ac1['where'],{'$or':_[_0x6380('0x2b')](_0x3e6d92,function(_0x24625d){if(_0x24625d[_0x6380('0x2d')]!==_0x6380('0x3c')){var _0x2a482d={};_0x2a482d[_0x24625d[_0x6380('0x28')]]={'$like':'%'+_0x285c98[_0x6380('0x30')][_0x6380('0x3d')]+'%'};return _0x2a482d;}})});}_0x553ac1=_[_0x6380('0x3b')]({},_0x553ac1,_0x285c98[_0x6380('0x3e')]);var _0x58e6cc={'where':_0x553ac1[_0x6380('0x3a')]};return db['SugarcrmAccount'][_0x6380('0x1b')](_0x58e6cc)['then'](function(_0x418578){_0x1311de['count']=_0x418578;if(_0x285c98[_0x6380('0x30')][_0x6380('0x3f')]){_0x553ac1[_0x6380('0x40')]=[{'all':!![]}];}return db[_0x6380('0x41')][_0x6380('0x42')](_0x553ac1);})[_0x6380('0x23')](function(_0x2817b7){_0x1311de[_0x6380('0x43')]=_0x2817b7;return _0x1311de;})[_0x6380('0x23')](respondWithFilteredResult(_0x2f79c8,_0x553ac1))[_0x6380('0x44')](handleError(_0x2f79c8,null));};exports[_0x6380('0x45')]=function(_0xb1933f,_0x451f20){var _0x55d9b9={'raw':![],'where':{'id':_0xb1933f['params']['id']}},_0x21d1b0={};_0x21d1b0[_0x6380('0x2f')]=_['keys'](db[_0x6380('0x41')]['rawAttributes']);_0x21d1b0[_0x6380('0x30')]=_['keys'](_0xb1933f[_0x6380('0x30')]);_0x21d1b0['filters']=_[_0x6380('0x33')](_0x21d1b0['model'],_0x21d1b0[_0x6380('0x30')]);_0x55d9b9[_0x6380('0x34')]=_['intersection'](_0x21d1b0[_0x6380('0x2f')],qs[_0x6380('0x35')](_0xb1933f[_0x6380('0x30')][_0x6380('0x35')]));_0x55d9b9['attributes']=_0x55d9b9[_0x6380('0x34')][_0x6380('0x46')]?_0x55d9b9['attributes']:_0x21d1b0[_0x6380('0x2f')];if(_0xb1933f[_0x6380('0x30')][_0x6380('0x3f')]){_0x55d9b9[_0x6380('0x40')]=[{'all':!![]}];}_0x55d9b9=_[_0x6380('0x3b')]({},_0x55d9b9,_0xb1933f[_0x6380('0x3e')]);return db[_0x6380('0x41')][_0x6380('0x47')](_0x55d9b9)[_0x6380('0x23')](handleEntityNotFound(_0x451f20,null))[_0x6380('0x23')](respondWithResult(_0x451f20,null))[_0x6380('0x44')](handleError(_0x451f20,null));};exports['create']=function(_0x438ea2,_0x190140){return db[_0x6380('0x41')][_0x6380('0x48')](_0x438ea2[_0x6380('0x49')],{})[_0x6380('0x23')](respondWithResult(_0x190140,0xc9))['catch'](handleError(_0x190140,null));};exports[_0x6380('0x22')]=function(_0x515506,_0x1e2080){if(_0x515506['body']['id']){delete _0x515506['body']['id'];}return db['SugarcrmAccount'][_0x6380('0x47')]({'where':{'id':_0x515506[_0x6380('0x4a')]['id']}})[_0x6380('0x23')](handleEntityNotFound(_0x1e2080,null))[_0x6380('0x23')](saveUpdates(_0x515506[_0x6380('0x49')],null))[_0x6380('0x23')](respondWithResult(_0x1e2080,null))[_0x6380('0x44')](handleError(_0x1e2080,null));};exports[_0x6380('0x24')]=function(_0x47aad9,_0x3349b4){return db[_0x6380('0x41')]['find']({'where':{'id':_0x47aad9[_0x6380('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3349b4,null))[_0x6380('0x23')](removeEntity(_0x3349b4,null))[_0x6380('0x44')](handleError(_0x3349b4,null));};exports[_0x6380('0x4b')]=function(_0x371f46,_0x128caa,_0x215623){var _0x2ce350={};var _0x2ddb7f={};var _0x4577be;var _0x4fc478;return db[_0x6380('0x41')][_0x6380('0x4c')]({'where':{'id':_0x371f46[_0x6380('0x4a')]['id']}})[_0x6380('0x23')](handleEntityNotFound(_0x128caa,null))[_0x6380('0x23')](function(_0x1664fc){if(_0x1664fc){_0x4577be=_0x1664fc;_0x2ddb7f['model']=_['keys'](db[_0x6380('0x4d')][_0x6380('0x2c')]);_0x2ddb7f[_0x6380('0x30')]=_[_0x6380('0x31')](_0x371f46['query']);_0x2ddb7f['filters']=_[_0x6380('0x33')](_0x2ddb7f[_0x6380('0x2f')],_0x2ddb7f[_0x6380('0x30')]);_0x2ce350[_0x6380('0x34')]=_[_0x6380('0x33')](_0x2ddb7f[_0x6380('0x2f')],qs[_0x6380('0x35')](_0x371f46[_0x6380('0x30')][_0x6380('0x35')]));_0x2ce350[_0x6380('0x34')]=_0x2ce350[_0x6380('0x34')][_0x6380('0x46')]?_0x2ce350[_0x6380('0x34')]:_0x2ddb7f[_0x6380('0x2f')];_0x2ce350[_0x6380('0x37')]=qs[_0x6380('0x38')](_0x371f46[_0x6380('0x30')]['sort']);_0x2ce350[_0x6380('0x3a')]=qs[_0x6380('0x32')](_[_0x6380('0x39')](_0x371f46[_0x6380('0x30')],_0x2ddb7f[_0x6380('0x32')]));if(_0x371f46[_0x6380('0x30')]['filter']){_0x2ce350[_0x6380('0x3a')]=_[_0x6380('0x3b')](_0x2ce350[_0x6380('0x3a')],{'$or':_[_0x6380('0x2b')](_0x2ce350[_0x6380('0x34')],function(_0xe39096){var _0xa2784c={};_0xa2784c[_0xe39096]={'$like':'%'+_0x371f46['query'][_0x6380('0x3d')]+'%'};return _0xa2784c;})});}_0x2ce350=_[_0x6380('0x3b')]({},_0x2ce350,_0x371f46['options']);return _0x4577be[_0x6380('0x4b')](_0x2ce350);}})[_0x6380('0x23')](function(_0x4897c6){if(_0x4897c6){_0x4fc478=_0x4897c6[_0x6380('0x46')];if(!_0x371f46[_0x6380('0x30')][_0x6380('0x4e')]('nolimit')){_0x2ce350[_0x6380('0x1c')]=qs['limit'](_0x371f46[_0x6380('0x30')]['limit']);_0x2ce350[_0x6380('0x19')]=qs[_0x6380('0x19')](_0x371f46[_0x6380('0x30')][_0x6380('0x19')]);}return _0x4577be[_0x6380('0x4b')](_0x2ce350);}})['then'](function(_0x44fc56){if(_0x44fc56){return _0x44fc56?{'count':_0x4fc478,'rows':_0x44fc56}:null;}})['then'](respondWithResult(_0x128caa,null))['catch'](handleError(_0x128caa,null));};exports[_0x6380('0x4f')]=function(_0x29d923,_0x549b2f,_0x28c9cf){if(_0x29d923['body']['id']){delete _0x29d923[_0x6380('0x49')]['id'];}return db[_0x6380('0x41')][_0x6380('0x4c')]({'where':{'id':_0x29d923[_0x6380('0x4a')]['id']}})[_0x6380('0x23')](handleEntityNotFound(_0x549b2f,null))[_0x6380('0x23')](function(_0x537aa5){if(_0x537aa5){_0x29d923[_0x6380('0x49')]['AccountId']=_0x537aa5['id'];_0x29d923[_0x6380('0x49')][_0x6380('0x50')]=integrations[_0x6380('0x51')](_0x29d923[_0x6380('0x49')][_0x6380('0x52')],_0x29d923[_0x6380('0x49')][_0x6380('0x2d')]);_0x29d923[_0x6380('0x49')]['Descriptions']=integrations[_0x6380('0x53')](_0x29d923[_0x6380('0x49')]['channel'],_0x29d923[_0x6380('0x49')][_0x6380('0x2d')]);return db[_0x6380('0x4d')][_0x6380('0x48')](_0x29d923[_0x6380('0x49')],{'include':[{'model':db['SugarcrmField'],'as':_0x6380('0x50')},{'model':db[_0x6380('0x54')],'as':_0x6380('0x55')}]});}return null;})[_0x6380('0x23')](respondWithResult(_0x549b2f,null))[_0x6380('0x44')](handleError(_0x549b2f,null));};exports['getFields']=function(_0x2f2124,_0x27dbec,_0x47a888){var _0x1e5dcc='';var _0x28e753=['id','name',_0x6380('0x56'),_0x6380('0x57'),_0x6380('0x58'),_0x6380('0x59'),_0x6380('0x5a'),_0x6380('0x5b'),'parent_id','parent_type',_0x6380('0x5c'),_0x6380('0x5d')];return db[_0x6380('0x41')][_0x6380('0x4c')]({'where':{'id':_0x2f2124['params']['id']},'attributes':['id',_0x6380('0x5e'),'password',_0x6380('0x5f')]})[_0x6380('0x23')](handleEntityNotFound(_0x27dbec,null))[_0x6380('0x23')](function(_0x3e69d6){if(_0x3e69d6){_0x1e5dcc=_0x3e69d6[_0x6380('0x5f')];var _0x272c46=_0x1e5dcc[_0x6380('0x60')](-0x1);if(_0x272c46==='/'){_0x1e5dcc=_0x1e5dcc[_0x6380('0x61')](0x0,_0x1e5dcc[_0x6380('0x62')](_0x272c46));}return rp({'method':_0x6380('0x63'),'uri':util[_0x6380('0x64')]('%s%s',_0x1e5dcc,_0x6380('0x65')),'json':!![],'form':{'method':_0x6380('0x66'),'input_type':'JSON','response_type':'JSON','rest_data':JSON[_0x6380('0x67')]({'user_auth':{'user_name':_0x3e69d6[_0x6380('0x5e')],'password':_0x3e69d6['password'],'encryption':'PLAIN'},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0x6380('0x23')](function(_0x3f2ffc){if(_0x3f2ffc&&_0x3f2ffc[_0x6380('0x28')]!=='Invalid\x20Login'&&_0x3f2ffc['name']!==_0x6380('0x68')){return rp({'method':_0x6380('0x63'),'uri':util['format']('%s%s',_0x1e5dcc,_0x6380('0x65')),'json':!![],'form':{'method':_0x6380('0x69'),'input_type':_0x6380('0x6a'),'response_type':_0x6380('0x6a'),'rest_data':JSON[_0x6380('0x67')]({'session':_0x3f2ffc['id'],'module_name':'Calls'})}})[_0x6380('0x23')](function(_0x4fa1ff){if(_0x4fa1ff){var _0x189038=_['values'](_0x4fa1ff[_0x6380('0x6b')]);_[_0x6380('0x6c')](_0x189038,function(_0x2bfcc2){return _0x28e753[_0x6380('0x6d')](_0x2bfcc2[_0x6380('0x28')]);});return{'count':_0x189038['length'],'rows':_[_0x6380('0x2b')](_0x189038,function(_0x3c5501){return{'id':_0x3c5501[_0x6380('0x28')],'name':_0x3c5501[_0x6380('0x6e')],'custom':_[_0x6380('0x6f')](_0x3c5501[_0x6380('0x28')],'_c')?!![]:![],'options':_0x3c5501['options']?_[_0x6380('0x2b')](_['values'](_0x3c5501[_0x6380('0x3e')]),function(_0x52631e){return{'name':_0x52631e[_0x6380('0x70')],'value':_0x52631e[_0x6380('0x28')]};}):[]};})};}})[_0x6380('0x23')](respondWithResult(_0x27dbec,null))[_0x6380('0x44')](function(_0x139b4a){var _0x196a71=_0x2f2124[_0x6380('0x30')][_0x6380('0x71')]?0x1f4:_0x139b4a[_0x6380('0x72')]||0x1f4;logger[_0x6380('0x26')](_0x6380('0x73'),_0x6380('0x74'),_0x196a71,JSON['stringify'](_0x139b4a));delete _0x139b4a[_0x6380('0x28')];if(_0x196a71===0x191){_0x196a71=0x190;}_0x27dbec[_0x6380('0x16')](_0x196a71)['send'](_0x2f2124[_0x6380('0x30')][_0x6380('0x71')]?{'message':_0x6380('0x75'),'statusCode':_0x139b4a[_0x6380('0x72')]}:_0x139b4a);});}else{var _0x503e2b=0x1f4;_0x27dbec[_0x6380('0x16')](_0x503e2b)[_0x6380('0x29')]({'message':_0x6380('0x75'),'statusCode':0x190});}});};