7e194699aa0f664ae93ecf171132bc01438f40a3
[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 _0x279d=['/service/v4_1/rest.php','login','stringify','username','PLAIN','POST','JSON','values','module_fields','label','endsWith','value','statusCode','test','Wrong\x20credentials','send','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','Content-Range','apply','reject','then','destroy','error','stack','name','index','map','SugarcrmAccount','rawAttributes','type','key','model','query','keys','filters','attributes','intersection','fields','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','rows','catch','find','create','body','update','params','findOne','length','getConfigurations','hasOwnProperty','addConfiguration','AccountId','Subjects','channel','getDescriptions','SugarcrmConfiguration','SugarcrmField','Descriptions','getFields','assigned_user_id','created_by','description','duration_hours','parent_id','parent_type','password','remoteUri','slice','substring','format','%s%s'];(function(_0x361b32,_0x315245){var _0x1d71fe=function(_0x2cfc47){while(--_0x2cfc47){_0x361b32['push'](_0x361b32['shift']());}};_0x1d71fe(++_0x315245);}(_0x279d,0x1d8));var _0xd279=function(_0x4a3898,_0x4c9853){_0x4a3898=_0x4a3898-0x0;var _0x25ceb0=_0x279d[_0x4a3898];return _0x25ceb0;};'use strict';var emlformat=require(_0xd279('0x0'));var rimraf=require(_0xd279('0x1'));var zipdir=require(_0xd279('0x2'));var jsonpatch=require(_0xd279('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xd279('0x4'));var Mustache=require(_0xd279('0x5'));var util=require('util');var path=require(_0xd279('0x6'));var sox=require(_0xd279('0x7'));var csv=require(_0xd279('0x8'));var ejs=require(_0xd279('0x9'));var fs=require('fs');var fs_extra=require(_0xd279('0xa'));var _=require(_0xd279('0xb'));var squel=require(_0xd279('0xc'));var crypto=require('crypto');var jsforce=require(_0xd279('0xd'));var deskjs=require(_0xd279('0xe'));var toCsv=require(_0xd279('0x8'));var querystring=require(_0xd279('0xf'));var Papa=require(_0xd279('0x10'));var Redis=require(_0xd279('0x11'));var authService=require(_0xd279('0x12'));var qs=require(_0xd279('0x13'));var as=require(_0xd279('0x14'));var hardwareService=require(_0xd279('0x15'));var logger=require(_0xd279('0x16'))('api');var utils=require(_0xd279('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xd279('0x18'));var db=require(_0xd279('0x19'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0xeb0828,_0x54f78b){_0x54f78b=_0x54f78b||0xcc;return function(_0x590646){if(_0x590646){return _0xeb0828[_0xd279('0x1a')](_0x54f78b);}return _0xeb0828['status'](_0x54f78b)[_0xd279('0x1b')]();};}function respondWithResult(_0x5c3b48,_0x2bf8e3){_0x2bf8e3=_0x2bf8e3||0xc8;return function(_0x3f3514){if(_0x3f3514){return _0x5c3b48[_0xd279('0x1c')](_0x2bf8e3)[_0xd279('0x1d')](_0x3f3514);}};}function respondWithFilteredResult(_0x5c1c0f,_0x55b3c5){return function(_0x20db5d){if(_0x20db5d){var _0x440e80=typeof _0x55b3c5[_0xd279('0x1e')]===_0xd279('0x1f')&&typeof _0x55b3c5['limit']===_0xd279('0x1f');var _0x591f5f=_0x20db5d['count'];var _0x544e01=_0x440e80?0x0:_0x55b3c5[_0xd279('0x1e')];var _0x2a5d61=_0x440e80?_0x20db5d['count']:_0x55b3c5[_0xd279('0x1e')]+_0x55b3c5[_0xd279('0x20')];var _0x281040;if(_0x2a5d61>=_0x591f5f){_0x2a5d61=_0x591f5f;_0x281040=0xc8;}else{_0x281040=0xce;}_0x5c1c0f[_0xd279('0x1c')](_0x281040);return _0x5c1c0f['set'](_0xd279('0x21'),_0x544e01+'-'+_0x2a5d61+'/'+_0x591f5f)[_0xd279('0x1d')](_0x20db5d);}return null;};}function patchUpdates(_0x5577fc){return function(_0x1509bc){try{jsonpatch[_0xd279('0x22')](_0x1509bc,_0x5577fc,!![]);}catch(_0x1c1d6e){return BPromise[_0xd279('0x23')](_0x1c1d6e);}return _0x1509bc['save']();};}function saveUpdates(_0x36fd44,_0x2716f4){return function(_0x13180f){if(_0x13180f){return _0x13180f['update'](_0x36fd44)[_0xd279('0x24')](function(_0x1a06e7){return _0x1a06e7;});}return null;};}function removeEntity(_0x3a9e73,_0x307599){return function(_0x251de4){if(_0x251de4){return _0x251de4[_0xd279('0x25')]()[_0xd279('0x24')](function(){_0x3a9e73[_0xd279('0x1c')](0xcc)[_0xd279('0x1b')]();});}};}function handleEntityNotFound(_0x48f1b1,_0x53e0f6){return function(_0x38686c){if(!_0x38686c){_0x48f1b1[_0xd279('0x1a')](0x194);}return _0x38686c;};}function handleError(_0x563637,_0x46a162){_0x46a162=_0x46a162||0x1f4;return function(_0x26bd72){logger[_0xd279('0x26')](_0x26bd72[_0xd279('0x27')]);if(_0x26bd72['name']){delete _0x26bd72[_0xd279('0x28')];}_0x563637[_0xd279('0x1c')](_0x46a162)['send'](_0x26bd72);};}exports[_0xd279('0x29')]=function(_0x577102,_0x159ea4){var _0x2347ed={},_0x3e64f6={},_0x47175a={'count':0x0,'rows':[]};var _0x2dd41e=_[_0xd279('0x2a')](db[_0xd279('0x2b')][_0xd279('0x2c')],function(_0x3c95fb){return{'name':_0x3c95fb['fieldName'],'type':_0x3c95fb[_0xd279('0x2d')][_0xd279('0x2e')]};});_0x3e64f6[_0xd279('0x2f')]=_[_0xd279('0x2a')](_0x2dd41e,_0xd279('0x28'));_0x3e64f6[_0xd279('0x30')]=_[_0xd279('0x31')](_0x577102[_0xd279('0x30')]);_0x3e64f6[_0xd279('0x32')]=_['intersection'](_0x3e64f6['model'],_0x3e64f6[_0xd279('0x30')]);_0x2347ed[_0xd279('0x33')]=_[_0xd279('0x34')](_0x3e64f6[_0xd279('0x2f')],qs['fields'](_0x577102[_0xd279('0x30')][_0xd279('0x35')]));_0x2347ed[_0xd279('0x33')]=_0x2347ed[_0xd279('0x33')]['length']?_0x2347ed[_0xd279('0x33')]:_0x3e64f6[_0xd279('0x2f')];if(!_0x577102[_0xd279('0x30')]['hasOwnProperty'](_0xd279('0x36'))){_0x2347ed['limit']=qs[_0xd279('0x20')](_0x577102['query'][_0xd279('0x20')]);_0x2347ed[_0xd279('0x1e')]=qs['offset'](_0x577102[_0xd279('0x30')][_0xd279('0x1e')]);}_0x2347ed[_0xd279('0x37')]=qs['sort'](_0x577102[_0xd279('0x30')][_0xd279('0x38')]);_0x2347ed[_0xd279('0x39')]=qs[_0xd279('0x32')](_[_0xd279('0x3a')](_0x577102[_0xd279('0x30')],_0x3e64f6['filters']),_0x2dd41e);if(_0x577102['query'][_0xd279('0x3b')]){_0x2347ed[_0xd279('0x39')]=_[_0xd279('0x3c')](_0x2347ed[_0xd279('0x39')],{'$or':_[_0xd279('0x2a')](_0x2dd41e,function(_0x1c7cd1){if(_0x1c7cd1['type']!==_0xd279('0x3d')){var _0x5c41d9={};_0x5c41d9[_0x1c7cd1[_0xd279('0x28')]]={'$like':'%'+_0x577102[_0xd279('0x30')]['filter']+'%'};return _0x5c41d9;}})});}_0x2347ed=_['merge']({},_0x2347ed,_0x577102[_0xd279('0x3e')]);var _0x3996ea={'where':_0x2347ed[_0xd279('0x39')]};return db[_0xd279('0x2b')]['count'](_0x3996ea)[_0xd279('0x24')](function(_0x584748){_0x47175a[_0xd279('0x3f')]=_0x584748;if(_0x577102[_0xd279('0x30')][_0xd279('0x40')]){_0x2347ed[_0xd279('0x41')]=[{'all':!![]}];}return db['SugarcrmAccount']['findAll'](_0x2347ed);})[_0xd279('0x24')](function(_0x46c899){_0x47175a[_0xd279('0x42')]=_0x46c899;return _0x47175a;})[_0xd279('0x24')](respondWithFilteredResult(_0x159ea4,_0x2347ed))[_0xd279('0x43')](handleError(_0x159ea4,null));};exports['show']=function(_0x580b30,_0x10ae13){var _0x3acc04={'raw':![],'where':{'id':_0x580b30['params']['id']}},_0x3353d8={};_0x3353d8['model']=_[_0xd279('0x31')](db['SugarcrmAccount'][_0xd279('0x2c')]);_0x3353d8[_0xd279('0x30')]=_['keys'](_0x580b30[_0xd279('0x30')]);_0x3353d8[_0xd279('0x32')]=_[_0xd279('0x34')](_0x3353d8[_0xd279('0x2f')],_0x3353d8[_0xd279('0x30')]);_0x3acc04[_0xd279('0x33')]=_[_0xd279('0x34')](_0x3353d8[_0xd279('0x2f')],qs['fields'](_0x580b30[_0xd279('0x30')][_0xd279('0x35')]));_0x3acc04[_0xd279('0x33')]=_0x3acc04[_0xd279('0x33')]['length']?_0x3acc04[_0xd279('0x33')]:_0x3353d8[_0xd279('0x2f')];if(_0x580b30[_0xd279('0x30')][_0xd279('0x40')]){_0x3acc04[_0xd279('0x41')]=[{'all':!![]}];}_0x3acc04=_[_0xd279('0x3c')]({},_0x3acc04,_0x580b30[_0xd279('0x3e')]);return db[_0xd279('0x2b')][_0xd279('0x44')](_0x3acc04)[_0xd279('0x24')](handleEntityNotFound(_0x10ae13,null))[_0xd279('0x24')](respondWithResult(_0x10ae13,null))['catch'](handleError(_0x10ae13,null));};exports['create']=function(_0x4f2a56,_0x469db5){return db[_0xd279('0x2b')][_0xd279('0x45')](_0x4f2a56[_0xd279('0x46')],{})[_0xd279('0x24')](respondWithResult(_0x469db5,0xc9))[_0xd279('0x43')](handleError(_0x469db5,null));};exports[_0xd279('0x47')]=function(_0x55b189,_0x247c09){if(_0x55b189[_0xd279('0x46')]['id']){delete _0x55b189[_0xd279('0x46')]['id'];}return db[_0xd279('0x2b')][_0xd279('0x44')]({'where':{'id':_0x55b189[_0xd279('0x48')]['id']}})[_0xd279('0x24')](handleEntityNotFound(_0x247c09,null))[_0xd279('0x24')](saveUpdates(_0x55b189[_0xd279('0x46')],null))[_0xd279('0x24')](respondWithResult(_0x247c09,null))[_0xd279('0x43')](handleError(_0x247c09,null));};exports[_0xd279('0x25')]=function(_0x341d92,_0x496e2f){return db[_0xd279('0x2b')]['find']({'where':{'id':_0x341d92[_0xd279('0x48')]['id']}})[_0xd279('0x24')](handleEntityNotFound(_0x496e2f,null))[_0xd279('0x24')](removeEntity(_0x496e2f,null))[_0xd279('0x43')](handleError(_0x496e2f,null));};exports['getConfigurations']=function(_0x18c54a,_0x6bad4b,_0x1e7ee){var _0x17d0e5={};var _0x2409ec={};var _0x2279d2;var _0xeb52c3;return db[_0xd279('0x2b')][_0xd279('0x49')]({'where':{'id':_0x18c54a[_0xd279('0x48')]['id']}})['then'](handleEntityNotFound(_0x6bad4b,null))[_0xd279('0x24')](function(_0x2224af){if(_0x2224af){_0x2279d2=_0x2224af;_0x2409ec[_0xd279('0x2f')]=_['keys'](db['SugarcrmConfiguration'][_0xd279('0x2c')]);_0x2409ec[_0xd279('0x30')]=_[_0xd279('0x31')](_0x18c54a[_0xd279('0x30')]);_0x2409ec[_0xd279('0x32')]=_['intersection'](_0x2409ec[_0xd279('0x2f')],_0x2409ec[_0xd279('0x30')]);_0x17d0e5[_0xd279('0x33')]=_[_0xd279('0x34')](_0x2409ec['model'],qs[_0xd279('0x35')](_0x18c54a[_0xd279('0x30')][_0xd279('0x35')]));_0x17d0e5[_0xd279('0x33')]=_0x17d0e5['attributes'][_0xd279('0x4a')]?_0x17d0e5[_0xd279('0x33')]:_0x2409ec['model'];_0x17d0e5[_0xd279('0x37')]=qs[_0xd279('0x38')](_0x18c54a[_0xd279('0x30')][_0xd279('0x38')]);_0x17d0e5['where']=qs[_0xd279('0x32')](_[_0xd279('0x3a')](_0x18c54a[_0xd279('0x30')],_0x2409ec[_0xd279('0x32')]));if(_0x18c54a[_0xd279('0x30')][_0xd279('0x3b')]){_0x17d0e5[_0xd279('0x39')]=_[_0xd279('0x3c')](_0x17d0e5[_0xd279('0x39')],{'$or':_[_0xd279('0x2a')](_0x17d0e5['attributes'],function(_0xf42a38){var _0x3e5aab={};_0x3e5aab[_0xf42a38]={'$like':'%'+_0x18c54a[_0xd279('0x30')][_0xd279('0x3b')]+'%'};return _0x3e5aab;})});}_0x17d0e5=_[_0xd279('0x3c')]({},_0x17d0e5,_0x18c54a['options']);return _0x2279d2[_0xd279('0x4b')](_0x17d0e5);}})['then'](function(_0x29506f){if(_0x29506f){_0xeb52c3=_0x29506f['length'];if(!_0x18c54a[_0xd279('0x30')][_0xd279('0x4c')]('nolimit')){_0x17d0e5[_0xd279('0x20')]=qs[_0xd279('0x20')](_0x18c54a['query'][_0xd279('0x20')]);_0x17d0e5[_0xd279('0x1e')]=qs[_0xd279('0x1e')](_0x18c54a['query'][_0xd279('0x1e')]);}return _0x2279d2[_0xd279('0x4b')](_0x17d0e5);}})['then'](function(_0xd08d87){if(_0xd08d87){return _0xd08d87?{'count':_0xeb52c3,'rows':_0xd08d87}:null;}})['then'](respondWithResult(_0x6bad4b,null))['catch'](handleError(_0x6bad4b,null));};exports[_0xd279('0x4d')]=function(_0x5a8719,_0x2b96a4,_0xd89985){if(_0x5a8719[_0xd279('0x46')]['id']){delete _0x5a8719[_0xd279('0x46')]['id'];}return db['SugarcrmAccount'][_0xd279('0x49')]({'where':{'id':_0x5a8719['params']['id']}})[_0xd279('0x24')](handleEntityNotFound(_0x2b96a4,null))[_0xd279('0x24')](function(_0x2f9219){if(_0x2f9219){_0x5a8719[_0xd279('0x46')][_0xd279('0x4e')]=_0x2f9219['id'];_0x5a8719[_0xd279('0x46')][_0xd279('0x4f')]=integrations['getSubjects'](_0x5a8719[_0xd279('0x46')][_0xd279('0x50')],_0x5a8719['body']['type']);_0x5a8719[_0xd279('0x46')]['Descriptions']=integrations[_0xd279('0x51')](_0x5a8719[_0xd279('0x46')][_0xd279('0x50')],_0x5a8719[_0xd279('0x46')]['type']);return db[_0xd279('0x52')][_0xd279('0x45')](_0x5a8719[_0xd279('0x46')],{'include':[{'model':db['SugarcrmField'],'as':_0xd279('0x4f')},{'model':db[_0xd279('0x53')],'as':_0xd279('0x54')}]});}return null;})[_0xd279('0x24')](respondWithResult(_0x2b96a4,null))[_0xd279('0x43')](handleError(_0x2b96a4,null));};exports[_0xd279('0x55')]=function(_0x19d408,_0x485be9,_0x39c4bf){var _0x32219c='';var _0x597654=['id',_0xd279('0x28'),_0xd279('0x56'),_0xd279('0x57'),_0xd279('0x58'),'date_start',_0xd279('0x59'),'duration_minutes',_0xd279('0x5a'),_0xd279('0x5b'),'parent_name','direction'];return db['SugarcrmAccount'][_0xd279('0x49')]({'where':{'id':_0x19d408[_0xd279('0x48')]['id']},'attributes':['id','username',_0xd279('0x5c'),'remoteUri']})[_0xd279('0x24')](handleEntityNotFound(_0x485be9,null))[_0xd279('0x24')](function(_0x1fda22){if(_0x1fda22){_0x32219c=_0x1fda22[_0xd279('0x5d')];var _0x557464=_0x32219c[_0xd279('0x5e')](-0x1);if(_0x557464==='/'){_0x32219c=_0x32219c[_0xd279('0x5f')](0x0,_0x32219c['lastIndexOf'](_0x557464));}return rp({'method':'POST','uri':util[_0xd279('0x60')](_0xd279('0x61'),_0x32219c,_0xd279('0x62')),'json':!![],'form':{'method':_0xd279('0x63'),'input_type':'JSON','response_type':'JSON','rest_data':JSON[_0xd279('0x64')]({'user_auth':{'user_name':_0x1fda22[_0xd279('0x65')],'password':_0x1fda22[_0xd279('0x5c')],'encryption':_0xd279('0x66')},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0xd279('0x24')](function(_0x1bdc49){if(_0x1bdc49&&_0x1bdc49[_0xd279('0x28')]!=='Invalid\x20Login'&&_0x1bdc49['name']!=='Password\x20Expired'){return rp({'method':_0xd279('0x67'),'uri':util[_0xd279('0x60')](_0xd279('0x61'),_0x32219c,'/service/v4_1/rest.php'),'json':!![],'form':{'method':'get_module_fields','input_type':_0xd279('0x68'),'response_type':_0xd279('0x68'),'rest_data':JSON[_0xd279('0x64')]({'session':_0x1bdc49['id'],'module_name':'Calls'})}})[_0xd279('0x24')](function(_0x3c9e72){if(_0x3c9e72){var _0x18f19a=_[_0xd279('0x69')](_0x3c9e72[_0xd279('0x6a')]);_['remove'](_0x18f19a,function(_0x5338b3){return _0x597654['includes'](_0x5338b3[_0xd279('0x28')]);});return{'count':_0x18f19a[_0xd279('0x4a')],'rows':_['map'](_0x18f19a,function(_0x6fb154){return{'id':_0x6fb154[_0xd279('0x28')],'name':_0x6fb154[_0xd279('0x6b')],'custom':_[_0xd279('0x6c')](_0x6fb154['name'],'_c')?!![]:![],'options':_0x6fb154[_0xd279('0x3e')]?_[_0xd279('0x2a')](_['values'](_0x6fb154[_0xd279('0x3e')]),function(_0x6cdeeb){return{'name':_0x6cdeeb[_0xd279('0x6d')],'value':_0x6cdeeb[_0xd279('0x28')]};}):[]};})};}})['then'](respondWithResult(_0x485be9,null))['catch'](function(_0x3a7ef3){var _0x38bae9=_0x19d408['query']['test']?0x1f4:_0x3a7ef3[_0xd279('0x6e')]||0x1f4;logger[_0xd279('0x26')]('getFields,\x20%s,\x20%s,\x20%s',_0xd279('0x55'),_0x38bae9,JSON[_0xd279('0x64')](_0x3a7ef3));delete _0x3a7ef3[_0xd279('0x28')];if(_0x38bae9===0x191){_0x38bae9=0x190;}_0x485be9[_0xd279('0x1c')](_0x38bae9)['send'](_0x19d408[_0xd279('0x30')][_0xd279('0x6f')]?{'message':_0xd279('0x70'),'statusCode':_0x3a7ef3[_0xd279('0x6e')]}:_0x3a7ef3);});}else{var _0x4109f1=0x1f4;_0x485be9[_0xd279('0x1c')](_0x4109f1)[_0xd279('0x71')]({'message':_0xd279('0x70'),'statusCode':0x190});}});};