f17bbe4d121279837ba6d23f94a8dd925e61f867
[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 _0x6c77=['status','json','offset','limit','count','set','apply','reject','then','destroy','end','sendStatus','error','stack','name','send','index','map','SugarcrmAccount','rawAttributes','fieldName','type','key','model','keys','filters','intersection','query','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','options','includeAll','include','rows','catch','show','length','create','body','find','params','SugarcrmConfiguration','filter','getConfigurations','addConfiguration','findOne','AccountId','Subjects','getSubjects','Descriptions','channel','SugarcrmField','getFields','assigned_user_id','description','date_start','duration_hours','duration_minutes','parent_id','parent_type','username','remoteUri','slice','lastIndexOf','POST','format','%s%s','login','JSON','stringify','password','PLAIN','Invalid\x20Login','/service/v4_1/rest.php','get_module_fields','module_fields','remove','includes','label','values','value','statusCode','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration'];(function(_0x1fbb69,_0x541d33){var _0x4bb876=function(_0x499882){while(--_0x499882){_0x1fbb69['push'](_0x1fbb69['shift']());}};_0x4bb876(++_0x541d33);}(_0x6c77,0x143));var _0x76c7=function(_0x1c47b0,_0x19e61c){_0x1c47b0=_0x1c47b0-0x0;var _0x5ae2e3=_0x6c77[_0x1c47b0];return _0x5ae2e3;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x76c7('0x0'));var zipdir=require(_0x76c7('0x1'));var jsonpatch=require(_0x76c7('0x2'));var rp=require(_0x76c7('0x3'));var moment=require('moment');var BPromise=require(_0x76c7('0x4'));var Mustache=require(_0x76c7('0x5'));var util=require(_0x76c7('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x76c7('0x7'));var ejs=require(_0x76c7('0x8'));var fs=require('fs');var fs_extra=require(_0x76c7('0x9'));var _=require(_0x76c7('0xa'));var squel=require(_0x76c7('0xb'));var crypto=require(_0x76c7('0xc'));var jsforce=require(_0x76c7('0xd'));var deskjs=require(_0x76c7('0xe'));var toCsv=require(_0x76c7('0x7'));var querystring=require(_0x76c7('0xf'));var Papa=require(_0x76c7('0x10'));var Redis=require(_0x76c7('0x11'));var authService=require(_0x76c7('0x12'));var qs=require(_0x76c7('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x76c7('0x14'))('api');var utils=require(_0x76c7('0x15'));var config=require(_0x76c7('0x16'));var licenseUtil=require(_0x76c7('0x17'));var db=require('../../mysqldb')['db'];var integrations=require(_0x76c7('0x18'));function respondWithStatusCode(_0x166c2e,_0x1842bc){_0x1842bc=_0x1842bc||0xcc;return function(_0x3a4cf1){if(_0x3a4cf1){return _0x166c2e['sendStatus'](_0x1842bc);}return _0x166c2e['status'](_0x1842bc)['end']();};}function respondWithResult(_0x19d239,_0x4d7a40){_0x4d7a40=_0x4d7a40||0xc8;return function(_0x439507){if(_0x439507){return _0x19d239[_0x76c7('0x19')](_0x4d7a40)[_0x76c7('0x1a')](_0x439507);}};}function respondWithFilteredResult(_0x2ba6e1,_0x39dfc9){return function(_0xd2f189){if(_0xd2f189){var _0x544bf6=typeof _0x39dfc9[_0x76c7('0x1b')]==='undefined'&&typeof _0x39dfc9[_0x76c7('0x1c')]==='undefined';var _0xcabbd8=_0xd2f189[_0x76c7('0x1d')];var _0x3a630e=_0x544bf6?0x0:_0x39dfc9['offset'];var _0x1062e6=_0x544bf6?_0xd2f189[_0x76c7('0x1d')]:_0x39dfc9[_0x76c7('0x1b')]+_0x39dfc9[_0x76c7('0x1c')];var _0x2763e4;if(_0x1062e6>=_0xcabbd8){_0x1062e6=_0xcabbd8;_0x2763e4=0xc8;}else{_0x2763e4=0xce;}_0x2ba6e1['status'](_0x2763e4);return _0x2ba6e1[_0x76c7('0x1e')]('Content-Range',_0x3a630e+'-'+_0x1062e6+'/'+_0xcabbd8)[_0x76c7('0x1a')](_0xd2f189);}return null;};}function patchUpdates(_0x435986){return function(_0x3cd65b){try{jsonpatch[_0x76c7('0x1f')](_0x3cd65b,_0x435986,!![]);}catch(_0x30ed83){return BPromise[_0x76c7('0x20')](_0x30ed83);}return _0x3cd65b['save']();};}function saveUpdates(_0x301998,_0x47b101){return function(_0x2f6bc1){if(_0x2f6bc1){return _0x2f6bc1['update'](_0x301998)[_0x76c7('0x21')](function(_0x443c8d){return _0x443c8d;});}return null;};}function removeEntity(_0x1a38a9,_0x4e9d53){return function(_0x147a9f){if(_0x147a9f){return _0x147a9f[_0x76c7('0x22')]()[_0x76c7('0x21')](function(){_0x1a38a9[_0x76c7('0x19')](0xcc)[_0x76c7('0x23')]();});}};}function handleEntityNotFound(_0x1de46c,_0x2c2638){return function(_0x4a8991){if(!_0x4a8991){_0x1de46c[_0x76c7('0x24')](0x194);}return _0x4a8991;};}function handleError(_0x8e8569,_0x38dcd5){_0x38dcd5=_0x38dcd5||0x1f4;return function(_0x54950f){logger[_0x76c7('0x25')](_0x54950f[_0x76c7('0x26')]);if(_0x54950f[_0x76c7('0x27')]){delete _0x54950f[_0x76c7('0x27')];}_0x8e8569[_0x76c7('0x19')](_0x38dcd5)[_0x76c7('0x28')](_0x54950f);};}exports[_0x76c7('0x29')]=function(_0xa0a3c9,_0x3729dd){var _0x5a7e14={},_0x13db2c={},_0x3d3ffb={'count':0x0,'rows':[]};var _0x2d158d=_[_0x76c7('0x2a')](db[_0x76c7('0x2b')][_0x76c7('0x2c')],function(_0x74a30e){return{'name':_0x74a30e[_0x76c7('0x2d')],'type':_0x74a30e[_0x76c7('0x2e')][_0x76c7('0x2f')]};});_0x13db2c[_0x76c7('0x30')]=_[_0x76c7('0x2a')](_0x2d158d,_0x76c7('0x27'));_0x13db2c['query']=_[_0x76c7('0x31')](_0xa0a3c9['query']);_0x13db2c[_0x76c7('0x32')]=_[_0x76c7('0x33')](_0x13db2c[_0x76c7('0x30')],_0x13db2c[_0x76c7('0x34')]);_0x5a7e14['attributes']=_[_0x76c7('0x33')](_0x13db2c['model'],qs[_0x76c7('0x35')](_0xa0a3c9[_0x76c7('0x34')][_0x76c7('0x35')]));_0x5a7e14[_0x76c7('0x36')]=_0x5a7e14[_0x76c7('0x36')]['length']?_0x5a7e14[_0x76c7('0x36')]:_0x13db2c[_0x76c7('0x30')];if(!_0xa0a3c9[_0x76c7('0x34')][_0x76c7('0x37')](_0x76c7('0x38'))){_0x5a7e14[_0x76c7('0x1c')]=qs[_0x76c7('0x1c')](_0xa0a3c9[_0x76c7('0x34')]['limit']);_0x5a7e14['offset']=qs[_0x76c7('0x1b')](_0xa0a3c9[_0x76c7('0x34')][_0x76c7('0x1b')]);}_0x5a7e14[_0x76c7('0x39')]=qs[_0x76c7('0x3a')](_0xa0a3c9[_0x76c7('0x34')][_0x76c7('0x3a')]);_0x5a7e14[_0x76c7('0x3b')]=qs[_0x76c7('0x32')](_[_0x76c7('0x3c')](_0xa0a3c9[_0x76c7('0x34')],_0x13db2c[_0x76c7('0x32')]),_0x2d158d);if(_0xa0a3c9['query']['filter']){_0x5a7e14[_0x76c7('0x3b')]=_[_0x76c7('0x3d')](_0x5a7e14[_0x76c7('0x3b')],{'$or':_[_0x76c7('0x2a')](_0x2d158d,function(_0x4e1565){if(_0x4e1565[_0x76c7('0x2e')]!==_0x76c7('0x3e')){var _0x524fb6={};_0x524fb6[_0x4e1565[_0x76c7('0x27')]]={'$like':'%'+_0xa0a3c9[_0x76c7('0x34')]['filter']+'%'};return _0x524fb6;}})});}_0x5a7e14=_[_0x76c7('0x3d')]({},_0x5a7e14,_0xa0a3c9[_0x76c7('0x3f')]);var _0x55a284={'where':_0x5a7e14[_0x76c7('0x3b')]};return db[_0x76c7('0x2b')][_0x76c7('0x1d')](_0x55a284)[_0x76c7('0x21')](function(_0x39aad1){_0x3d3ffb[_0x76c7('0x1d')]=_0x39aad1;if(_0xa0a3c9[_0x76c7('0x34')][_0x76c7('0x40')]){_0x5a7e14[_0x76c7('0x41')]=[{'all':!![]}];}return db[_0x76c7('0x2b')]['findAll'](_0x5a7e14);})[_0x76c7('0x21')](function(_0x241c6c){_0x3d3ffb[_0x76c7('0x42')]=_0x241c6c;return _0x3d3ffb;})[_0x76c7('0x21')](respondWithFilteredResult(_0x3729dd,_0x5a7e14))[_0x76c7('0x43')](handleError(_0x3729dd,null));};exports[_0x76c7('0x44')]=function(_0x1ec193,_0x532666){var _0x3ad283={'raw':![],'where':{'id':_0x1ec193['params']['id']}},_0x170373={};_0x170373[_0x76c7('0x30')]=_[_0x76c7('0x31')](db[_0x76c7('0x2b')]['rawAttributes']);_0x170373[_0x76c7('0x34')]=_[_0x76c7('0x31')](_0x1ec193['query']);_0x170373[_0x76c7('0x32')]=_['intersection'](_0x170373[_0x76c7('0x30')],_0x170373['query']);_0x3ad283[_0x76c7('0x36')]=_[_0x76c7('0x33')](_0x170373[_0x76c7('0x30')],qs[_0x76c7('0x35')](_0x1ec193[_0x76c7('0x34')][_0x76c7('0x35')]));_0x3ad283[_0x76c7('0x36')]=_0x3ad283['attributes'][_0x76c7('0x45')]?_0x3ad283[_0x76c7('0x36')]:_0x170373[_0x76c7('0x30')];if(_0x1ec193[_0x76c7('0x34')][_0x76c7('0x40')]){_0x3ad283[_0x76c7('0x41')]=[{'all':!![]}];}_0x3ad283=_[_0x76c7('0x3d')]({},_0x3ad283,_0x1ec193['options']);return db[_0x76c7('0x2b')]['find'](_0x3ad283)[_0x76c7('0x21')](handleEntityNotFound(_0x532666,null))[_0x76c7('0x21')](respondWithResult(_0x532666,null))[_0x76c7('0x43')](handleError(_0x532666,null));};exports[_0x76c7('0x46')]=function(_0x50c5a0,_0x48aa31){return db[_0x76c7('0x2b')]['create'](_0x50c5a0[_0x76c7('0x47')],{})[_0x76c7('0x21')](respondWithResult(_0x48aa31,0xc9))['catch'](handleError(_0x48aa31,null));};exports['update']=function(_0x5d0788,_0x1aa61c){if(_0x5d0788['body']['id']){delete _0x5d0788[_0x76c7('0x47')]['id'];}return db[_0x76c7('0x2b')][_0x76c7('0x48')]({'where':{'id':_0x5d0788['params']['id']}})[_0x76c7('0x21')](handleEntityNotFound(_0x1aa61c,null))[_0x76c7('0x21')](saveUpdates(_0x5d0788[_0x76c7('0x47')],null))[_0x76c7('0x21')](respondWithResult(_0x1aa61c,null))[_0x76c7('0x43')](handleError(_0x1aa61c,null));};exports[_0x76c7('0x22')]=function(_0x533bfc,_0x1b3616){return db['SugarcrmAccount'][_0x76c7('0x48')]({'where':{'id':_0x533bfc[_0x76c7('0x49')]['id']}})[_0x76c7('0x21')](handleEntityNotFound(_0x1b3616,null))[_0x76c7('0x21')](removeEntity(_0x1b3616,null))[_0x76c7('0x43')](handleError(_0x1b3616,null));};exports['getConfigurations']=function(_0x1bf53c,_0x4f5a21,_0x16ba57){var _0x4782da={};var _0x496e7d={};var _0x1e950d;var _0x465cf1;return db[_0x76c7('0x2b')]['findOne']({'where':{'id':_0x1bf53c[_0x76c7('0x49')]['id']}})['then'](handleEntityNotFound(_0x4f5a21,null))['then'](function(_0x1bb9f7){if(_0x1bb9f7){_0x1e950d=_0x1bb9f7;_0x496e7d[_0x76c7('0x30')]=_[_0x76c7('0x31')](db[_0x76c7('0x4a')][_0x76c7('0x2c')]);_0x496e7d['query']=_[_0x76c7('0x31')](_0x1bf53c[_0x76c7('0x34')]);_0x496e7d[_0x76c7('0x32')]=_[_0x76c7('0x33')](_0x496e7d['model'],_0x496e7d[_0x76c7('0x34')]);_0x4782da[_0x76c7('0x36')]=_[_0x76c7('0x33')](_0x496e7d[_0x76c7('0x30')],qs[_0x76c7('0x35')](_0x1bf53c[_0x76c7('0x34')][_0x76c7('0x35')]));_0x4782da[_0x76c7('0x36')]=_0x4782da[_0x76c7('0x36')]['length']?_0x4782da[_0x76c7('0x36')]:_0x496e7d[_0x76c7('0x30')];_0x4782da[_0x76c7('0x39')]=qs[_0x76c7('0x3a')](_0x1bf53c[_0x76c7('0x34')][_0x76c7('0x3a')]);_0x4782da[_0x76c7('0x3b')]=qs[_0x76c7('0x32')](_[_0x76c7('0x3c')](_0x1bf53c[_0x76c7('0x34')],_0x496e7d['filters']));if(_0x1bf53c[_0x76c7('0x34')][_0x76c7('0x4b')]){_0x4782da[_0x76c7('0x3b')]=_[_0x76c7('0x3d')](_0x4782da[_0x76c7('0x3b')],{'$or':_[_0x76c7('0x2a')](_0x4782da['attributes'],function(_0x58280d){var _0x368465={};_0x368465[_0x58280d]={'$like':'%'+_0x1bf53c[_0x76c7('0x34')][_0x76c7('0x4b')]+'%'};return _0x368465;})});}_0x4782da=_[_0x76c7('0x3d')]({},_0x4782da,_0x1bf53c[_0x76c7('0x3f')]);return _0x1e950d[_0x76c7('0x4c')](_0x4782da);}})[_0x76c7('0x21')](function(_0x1ddfd2){if(_0x1ddfd2){_0x465cf1=_0x1ddfd2[_0x76c7('0x45')];if(!_0x1bf53c[_0x76c7('0x34')][_0x76c7('0x37')]('nolimit')){_0x4782da[_0x76c7('0x1c')]=qs['limit'](_0x1bf53c[_0x76c7('0x34')][_0x76c7('0x1c')]);_0x4782da[_0x76c7('0x1b')]=qs[_0x76c7('0x1b')](_0x1bf53c[_0x76c7('0x34')][_0x76c7('0x1b')]);}return _0x1e950d[_0x76c7('0x4c')](_0x4782da);}})[_0x76c7('0x21')](function(_0x3ba835){if(_0x3ba835){return _0x3ba835?{'count':_0x465cf1,'rows':_0x3ba835}:null;}})[_0x76c7('0x21')](respondWithResult(_0x4f5a21,null))[_0x76c7('0x43')](handleError(_0x4f5a21,null));};exports[_0x76c7('0x4d')]=function(_0x3a6e83,_0x39c0a4,_0x549b8c){if(_0x3a6e83[_0x76c7('0x47')]['id']){delete _0x3a6e83['body']['id'];}return db[_0x76c7('0x2b')][_0x76c7('0x4e')]({'where':{'id':_0x3a6e83[_0x76c7('0x49')]['id']}})[_0x76c7('0x21')](handleEntityNotFound(_0x39c0a4,null))[_0x76c7('0x21')](function(_0x91b6f2){if(_0x91b6f2){_0x3a6e83[_0x76c7('0x47')][_0x76c7('0x4f')]=_0x91b6f2['id'];_0x3a6e83[_0x76c7('0x47')][_0x76c7('0x50')]=integrations[_0x76c7('0x51')](_0x3a6e83[_0x76c7('0x47')]['channel'],_0x3a6e83['body'][_0x76c7('0x2e')]);_0x3a6e83[_0x76c7('0x47')][_0x76c7('0x52')]=integrations['getDescriptions'](_0x3a6e83[_0x76c7('0x47')][_0x76c7('0x53')],_0x3a6e83[_0x76c7('0x47')]['type']);return db['SugarcrmConfiguration']['create'](_0x3a6e83[_0x76c7('0x47')],{'include':[{'model':db['SugarcrmField'],'as':_0x76c7('0x50')},{'model':db[_0x76c7('0x54')],'as':_0x76c7('0x52')}]});}return null;})[_0x76c7('0x21')](respondWithResult(_0x39c0a4,null))['catch'](handleError(_0x39c0a4,null));};exports[_0x76c7('0x55')]=function(_0x34abcc,_0x2a3d10,_0x12e57d){var _0x748a5f='';var _0x186c2f=['id','name',_0x76c7('0x56'),'created_by',_0x76c7('0x57'),_0x76c7('0x58'),_0x76c7('0x59'),_0x76c7('0x5a'),_0x76c7('0x5b'),_0x76c7('0x5c'),'parent_name','direction'];return db[_0x76c7('0x2b')][_0x76c7('0x4e')]({'where':{'id':_0x34abcc[_0x76c7('0x49')]['id']},'attributes':['id',_0x76c7('0x5d'),'password','remoteUri']})[_0x76c7('0x21')](handleEntityNotFound(_0x2a3d10,null))[_0x76c7('0x21')](function(_0x3dcf88){if(_0x3dcf88){_0x748a5f=_0x3dcf88[_0x76c7('0x5e')];var _0x2efa62=_0x748a5f[_0x76c7('0x5f')](-0x1);if(_0x2efa62==='/'){_0x748a5f=_0x748a5f['substring'](0x0,_0x748a5f[_0x76c7('0x60')](_0x2efa62));}return rp({'method':_0x76c7('0x61'),'uri':util[_0x76c7('0x62')](_0x76c7('0x63'),_0x748a5f,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0x76c7('0x64'),'input_type':'JSON','response_type':_0x76c7('0x65'),'rest_data':JSON[_0x76c7('0x66')]({'user_auth':{'user_name':_0x3dcf88[_0x76c7('0x5d')],'password':_0x3dcf88[_0x76c7('0x67')],'encryption':_0x76c7('0x68')},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0x76c7('0x21')](function(_0x16e5f0){if(_0x16e5f0&&_0x16e5f0['name']!==_0x76c7('0x69')&&_0x16e5f0[_0x76c7('0x27')]!=='Password\x20Expired'){return rp({'method':_0x76c7('0x61'),'uri':util[_0x76c7('0x62')](_0x76c7('0x63'),_0x748a5f,_0x76c7('0x6a')),'json':!![],'form':{'method':_0x76c7('0x6b'),'input_type':_0x76c7('0x65'),'response_type':'JSON','rest_data':JSON[_0x76c7('0x66')]({'session':_0x16e5f0['id'],'module_name':'Calls'})}})[_0x76c7('0x21')](function(_0x1fd3f7){if(_0x1fd3f7){var _0x4801dd=_['values'](_0x1fd3f7[_0x76c7('0x6c')]);_[_0x76c7('0x6d')](_0x4801dd,function(_0x4ff97d){return _0x186c2f[_0x76c7('0x6e')](_0x4ff97d[_0x76c7('0x27')]);});return{'count':_0x4801dd['length'],'rows':_['map'](_0x4801dd,function(_0x23eaea){return{'id':_0x23eaea[_0x76c7('0x27')],'name':_0x23eaea[_0x76c7('0x6f')],'custom':_['endsWith'](_0x23eaea['name'],'_c')?!![]:![],'options':_0x23eaea['options']?_[_0x76c7('0x2a')](_[_0x76c7('0x70')](_0x23eaea[_0x76c7('0x3f')]),function(_0x1738cc){return{'name':_0x1738cc[_0x76c7('0x71')],'value':_0x1738cc[_0x76c7('0x27')]};}):[]};})};}})[_0x76c7('0x21')](respondWithResult(_0x2a3d10,null))[_0x76c7('0x43')](function(_0x64b780){var _0xd77d9d=_0x34abcc[_0x76c7('0x34')]['test']?0x1f4:_0x64b780[_0x76c7('0x72')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x76c7('0x55'),_0xd77d9d,JSON[_0x76c7('0x66')](_0x64b780));delete _0x64b780[_0x76c7('0x27')];if(_0xd77d9d===0x191){_0xd77d9d=0x190;}_0x2a3d10['status'](_0xd77d9d)[_0x76c7('0x28')](_0x34abcc[_0x76c7('0x34')]['test']?{'message':_0x76c7('0x73'),'statusCode':_0x64b780[_0x76c7('0x72')]}:_0x64b780);});}else{var _0x512c76=0x1f4;_0x2a3d10[_0x76c7('0x19')](_0x512c76)[_0x76c7('0x28')]({'message':_0x76c7('0x73'),'statusCode':0x190});}});};