1f2c3e79aa8ac379a06e08e76af65b878eb9b7bc
[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 _0x1707=['../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','reject','save','update','then','stack','name','send','index','map','type','key','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','filter','options','SugarcrmAccount','includeAll','include','findAll','rows','catch','show','params','rawAttributes','keys','find','create','body','destroy','getConfigurations','findOne','SugarcrmConfiguration','addConfiguration','Subjects','getSubjects','Descriptions','getDescriptions','SugarcrmField','getFields','assigned_user_id','created_by','description','date_start','duration_hours','duration_minutes','parent_id','parent_type','parent_name','username','password','slice','substring','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','get_module_fields','Calls','values','module_fields','remove','includes','label','endsWith','value','test','error','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0x43028e,_0x33a648){var _0x2fed6d=function(_0x3d2598){while(--_0x3d2598){_0x43028e['push'](_0x43028e['shift']());}};_0x2fed6d(++_0x33a648);}(_0x1707,0xe5));var _0x7170=function(_0x4e76cc,_0x3be85c){_0x4e76cc=_0x4e76cc-0x0;var _0x1128fa=_0x1707[_0x4e76cc];return _0x1128fa;};'use strict';var emlformat=require(_0x7170('0x0'));var rimraf=require(_0x7170('0x1'));var zipdir=require(_0x7170('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7170('0x3'));var moment=require(_0x7170('0x4'));var BPromise=require(_0x7170('0x5'));var Mustache=require(_0x7170('0x6'));var util=require(_0x7170('0x7'));var path=require(_0x7170('0x8'));var sox=require(_0x7170('0x9'));var csv=require(_0x7170('0xa'));var ejs=require(_0x7170('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7170('0xc'));var squel=require(_0x7170('0xd'));var crypto=require('crypto');var jsforce=require(_0x7170('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x7170('0xf'));var Papa=require(_0x7170('0x10'));var Redis=require(_0x7170('0x11'));var authService=require(_0x7170('0x12'));var qs=require(_0x7170('0x13'));var as=require(_0x7170('0x14'));var hardwareService=require(_0x7170('0x15'));var logger=require(_0x7170('0x16'))('api');var utils=require(_0x7170('0x17'));var config=require(_0x7170('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x7170('0x19'))['db'];var integrations=require(_0x7170('0x1a'));function respondWithStatusCode(_0x3c00ec,_0x274718){_0x274718=_0x274718||0xcc;return function(_0x4cf518){if(_0x4cf518){return _0x3c00ec[_0x7170('0x1b')](_0x274718);}return _0x3c00ec[_0x7170('0x1c')](_0x274718)[_0x7170('0x1d')]();};}function respondWithResult(_0x24c3a1,_0x5242cd){_0x5242cd=_0x5242cd||0xc8;return function(_0x1f6d88){if(_0x1f6d88){return _0x24c3a1['status'](_0x5242cd)[_0x7170('0x1e')](_0x1f6d88);}};}function respondWithFilteredResult(_0x22cb54,_0xe440b8){return function(_0x3ae527){if(_0x3ae527){var _0x867bc9=typeof _0xe440b8[_0x7170('0x1f')]==='undefined'&&typeof _0xe440b8[_0x7170('0x20')]===_0x7170('0x21');var _0x60ada7=_0x3ae527[_0x7170('0x22')];var _0x13ee0d=_0x867bc9?0x0:_0xe440b8[_0x7170('0x1f')];var _0x592634=_0x867bc9?_0x3ae527[_0x7170('0x22')]:_0xe440b8[_0x7170('0x1f')]+_0xe440b8['limit'];var _0x2c2fb3;if(_0x592634>=_0x60ada7){_0x592634=_0x60ada7;_0x2c2fb3=0xc8;}else{_0x2c2fb3=0xce;}_0x22cb54[_0x7170('0x1c')](_0x2c2fb3);return _0x22cb54[_0x7170('0x23')](_0x7170('0x24'),_0x13ee0d+'-'+_0x592634+'/'+_0x60ada7)[_0x7170('0x1e')](_0x3ae527);}return null;};}function patchUpdates(_0x50aef7){return function(_0x411e82){try{jsonpatch['apply'](_0x411e82,_0x50aef7,!![]);}catch(_0x34cf80){return BPromise[_0x7170('0x25')](_0x34cf80);}return _0x411e82[_0x7170('0x26')]();};}function saveUpdates(_0x16180e,_0xde4ed8){return function(_0x430945){if(_0x430945){return _0x430945[_0x7170('0x27')](_0x16180e)['then'](function(_0x158195){return _0x158195;});}return null;};}function removeEntity(_0x2af42a,_0x1262c7){return function(_0x58d554){if(_0x58d554){return _0x58d554['destroy']()[_0x7170('0x28')](function(){_0x2af42a[_0x7170('0x1c')](0xcc)[_0x7170('0x1d')]();});}};}function handleEntityNotFound(_0x41d00e,_0x52ec40){return function(_0x2bfa08){if(!_0x2bfa08){_0x41d00e[_0x7170('0x1b')](0x194);}return _0x2bfa08;};}function handleError(_0x23e5ae,_0x20c643){_0x20c643=_0x20c643||0x1f4;return function(_0x214023){logger['error'](_0x214023[_0x7170('0x29')]);if(_0x214023[_0x7170('0x2a')]){delete _0x214023[_0x7170('0x2a')];}_0x23e5ae[_0x7170('0x1c')](_0x20c643)[_0x7170('0x2b')](_0x214023);};}exports[_0x7170('0x2c')]=function(_0x3f5065,_0x43316f){var _0x2c8119={},_0x571fa5={},_0x27eb2a={'count':0x0,'rows':[]};var _0x4380f6=_[_0x7170('0x2d')](db['SugarcrmAccount']['rawAttributes'],function(_0x6c5b43){return{'name':_0x6c5b43['fieldName'],'type':_0x6c5b43[_0x7170('0x2e')][_0x7170('0x2f')]};});_0x571fa5['model']=_['map'](_0x4380f6,_0x7170('0x2a'));_0x571fa5[_0x7170('0x30')]=_['keys'](_0x3f5065[_0x7170('0x30')]);_0x571fa5[_0x7170('0x31')]=_[_0x7170('0x32')](_0x571fa5[_0x7170('0x33')],_0x571fa5[_0x7170('0x30')]);_0x2c8119['attributes']=_[_0x7170('0x32')](_0x571fa5['model'],qs[_0x7170('0x34')](_0x3f5065[_0x7170('0x30')][_0x7170('0x34')]));_0x2c8119[_0x7170('0x35')]=_0x2c8119[_0x7170('0x35')][_0x7170('0x36')]?_0x2c8119[_0x7170('0x35')]:_0x571fa5[_0x7170('0x33')];if(!_0x3f5065[_0x7170('0x30')][_0x7170('0x37')](_0x7170('0x38'))){_0x2c8119[_0x7170('0x20')]=qs[_0x7170('0x20')](_0x3f5065[_0x7170('0x30')][_0x7170('0x20')]);_0x2c8119[_0x7170('0x1f')]=qs[_0x7170('0x1f')](_0x3f5065[_0x7170('0x30')]['offset']);}_0x2c8119[_0x7170('0x39')]=qs[_0x7170('0x3a')](_0x3f5065[_0x7170('0x30')][_0x7170('0x3a')]);_0x2c8119['where']=qs[_0x7170('0x31')](_[_0x7170('0x3b')](_0x3f5065[_0x7170('0x30')],_0x571fa5[_0x7170('0x31')]),_0x4380f6);if(_0x3f5065[_0x7170('0x30')]['filter']){_0x2c8119[_0x7170('0x3c')]=_[_0x7170('0x3d')](_0x2c8119[_0x7170('0x3c')],{'$or':_[_0x7170('0x2d')](_0x4380f6,function(_0x416963){if(_0x416963['type']!=='VIRTUAL'){var _0x22cf7c={};_0x22cf7c[_0x416963['name']]={'$like':'%'+_0x3f5065[_0x7170('0x30')][_0x7170('0x3e')]+'%'};return _0x22cf7c;}})});}_0x2c8119=_['merge']({},_0x2c8119,_0x3f5065[_0x7170('0x3f')]);var _0x387b0f={'where':_0x2c8119[_0x7170('0x3c')]};return db[_0x7170('0x40')][_0x7170('0x22')](_0x387b0f)[_0x7170('0x28')](function(_0x5972fc){_0x27eb2a[_0x7170('0x22')]=_0x5972fc;if(_0x3f5065[_0x7170('0x30')][_0x7170('0x41')]){_0x2c8119[_0x7170('0x42')]=[{'all':!![]}];}return db['SugarcrmAccount'][_0x7170('0x43')](_0x2c8119);})[_0x7170('0x28')](function(_0x52d1b3){_0x27eb2a[_0x7170('0x44')]=_0x52d1b3;return _0x27eb2a;})['then'](respondWithFilteredResult(_0x43316f,_0x2c8119))[_0x7170('0x45')](handleError(_0x43316f,null));};exports[_0x7170('0x46')]=function(_0x2a9650,_0x2216f2){var _0x5c6fae={'raw':![],'where':{'id':_0x2a9650[_0x7170('0x47')]['id']}},_0x3de148={};_0x3de148['model']=_['keys'](db[_0x7170('0x40')][_0x7170('0x48')]);_0x3de148[_0x7170('0x30')]=_[_0x7170('0x49')](_0x2a9650[_0x7170('0x30')]);_0x3de148[_0x7170('0x31')]=_[_0x7170('0x32')](_0x3de148['model'],_0x3de148[_0x7170('0x30')]);_0x5c6fae[_0x7170('0x35')]=_['intersection'](_0x3de148[_0x7170('0x33')],qs[_0x7170('0x34')](_0x2a9650[_0x7170('0x30')][_0x7170('0x34')]));_0x5c6fae[_0x7170('0x35')]=_0x5c6fae[_0x7170('0x35')][_0x7170('0x36')]?_0x5c6fae['attributes']:_0x3de148[_0x7170('0x33')];if(_0x2a9650[_0x7170('0x30')]['includeAll']){_0x5c6fae[_0x7170('0x42')]=[{'all':!![]}];}_0x5c6fae=_[_0x7170('0x3d')]({},_0x5c6fae,_0x2a9650[_0x7170('0x3f')]);return db[_0x7170('0x40')][_0x7170('0x4a')](_0x5c6fae)[_0x7170('0x28')](handleEntityNotFound(_0x2216f2,null))[_0x7170('0x28')](respondWithResult(_0x2216f2,null))[_0x7170('0x45')](handleError(_0x2216f2,null));};exports[_0x7170('0x4b')]=function(_0xeaf4d8,_0x44b31c){return db[_0x7170('0x40')][_0x7170('0x4b')](_0xeaf4d8[_0x7170('0x4c')],{})['then'](respondWithResult(_0x44b31c,0xc9))[_0x7170('0x45')](handleError(_0x44b31c,null));};exports[_0x7170('0x27')]=function(_0x1c4997,_0x4ffe57){if(_0x1c4997[_0x7170('0x4c')]['id']){delete _0x1c4997[_0x7170('0x4c')]['id'];}return db[_0x7170('0x40')][_0x7170('0x4a')]({'where':{'id':_0x1c4997[_0x7170('0x47')]['id']}})[_0x7170('0x28')](handleEntityNotFound(_0x4ffe57,null))[_0x7170('0x28')](saveUpdates(_0x1c4997[_0x7170('0x4c')],null))[_0x7170('0x28')](respondWithResult(_0x4ffe57,null))[_0x7170('0x45')](handleError(_0x4ffe57,null));};exports[_0x7170('0x4d')]=function(_0x7db1cc,_0x1454a7){return db['SugarcrmAccount'][_0x7170('0x4a')]({'where':{'id':_0x7db1cc['params']['id']}})[_0x7170('0x28')](handleEntityNotFound(_0x1454a7,null))[_0x7170('0x28')](removeEntity(_0x1454a7,null))['catch'](handleError(_0x1454a7,null));};exports[_0x7170('0x4e')]=function(_0x270301,_0x25573b,_0x4ed796){var _0xefffd2={};var _0x16ab61={};var _0x33c11c;var _0x1faa3e;return db[_0x7170('0x40')][_0x7170('0x4f')]({'where':{'id':_0x270301[_0x7170('0x47')]['id']}})[_0x7170('0x28')](handleEntityNotFound(_0x25573b,null))['then'](function(_0x4b8e3a){if(_0x4b8e3a){_0x33c11c=_0x4b8e3a;_0x16ab61[_0x7170('0x33')]=_[_0x7170('0x49')](db[_0x7170('0x50')][_0x7170('0x48')]);_0x16ab61[_0x7170('0x30')]=_[_0x7170('0x49')](_0x270301['query']);_0x16ab61[_0x7170('0x31')]=_['intersection'](_0x16ab61[_0x7170('0x33')],_0x16ab61[_0x7170('0x30')]);_0xefffd2[_0x7170('0x35')]=_[_0x7170('0x32')](_0x16ab61[_0x7170('0x33')],qs[_0x7170('0x34')](_0x270301[_0x7170('0x30')]['fields']));_0xefffd2[_0x7170('0x35')]=_0xefffd2[_0x7170('0x35')][_0x7170('0x36')]?_0xefffd2[_0x7170('0x35')]:_0x16ab61[_0x7170('0x33')];_0xefffd2['order']=qs[_0x7170('0x3a')](_0x270301[_0x7170('0x30')]['sort']);_0xefffd2[_0x7170('0x3c')]=qs[_0x7170('0x31')](_[_0x7170('0x3b')](_0x270301['query'],_0x16ab61[_0x7170('0x31')]));if(_0x270301[_0x7170('0x30')][_0x7170('0x3e')]){_0xefffd2[_0x7170('0x3c')]=_[_0x7170('0x3d')](_0xefffd2[_0x7170('0x3c')],{'$or':_['map'](_0xefffd2[_0x7170('0x35')],function(_0x5090ba){var _0x428989={};_0x428989[_0x5090ba]={'$like':'%'+_0x270301[_0x7170('0x30')]['filter']+'%'};return _0x428989;})});}_0xefffd2=_[_0x7170('0x3d')]({},_0xefffd2,_0x270301[_0x7170('0x3f')]);return _0x33c11c['getConfigurations'](_0xefffd2);}})[_0x7170('0x28')](function(_0x2b1e60){if(_0x2b1e60){_0x1faa3e=_0x2b1e60[_0x7170('0x36')];if(!_0x270301[_0x7170('0x30')][_0x7170('0x37')](_0x7170('0x38'))){_0xefffd2[_0x7170('0x20')]=qs[_0x7170('0x20')](_0x270301[_0x7170('0x30')][_0x7170('0x20')]);_0xefffd2[_0x7170('0x1f')]=qs[_0x7170('0x1f')](_0x270301['query'][_0x7170('0x1f')]);}return _0x33c11c[_0x7170('0x4e')](_0xefffd2);}})[_0x7170('0x28')](function(_0xe1b04){if(_0xe1b04){return _0xe1b04?{'count':_0x1faa3e,'rows':_0xe1b04}:null;}})[_0x7170('0x28')](respondWithResult(_0x25573b,null))[_0x7170('0x45')](handleError(_0x25573b,null));};exports[_0x7170('0x51')]=function(_0x369610,_0x546e10,_0x491712){if(_0x369610['body']['id']){delete _0x369610[_0x7170('0x4c')]['id'];}return db['SugarcrmAccount'][_0x7170('0x4f')]({'where':{'id':_0x369610[_0x7170('0x47')]['id']}})['then'](handleEntityNotFound(_0x546e10,null))[_0x7170('0x28')](function(_0x436da3){if(_0x436da3){_0x369610[_0x7170('0x4c')]['AccountId']=_0x436da3['id'];_0x369610[_0x7170('0x4c')][_0x7170('0x52')]=integrations[_0x7170('0x53')](_0x369610[_0x7170('0x4c')]['channel'],_0x369610[_0x7170('0x4c')]['type']);_0x369610[_0x7170('0x4c')][_0x7170('0x54')]=integrations[_0x7170('0x55')](_0x369610[_0x7170('0x4c')]['channel'],_0x369610[_0x7170('0x4c')][_0x7170('0x2e')]);return db[_0x7170('0x50')]['create'](_0x369610[_0x7170('0x4c')],{'include':[{'model':db[_0x7170('0x56')],'as':'Subjects'},{'model':db[_0x7170('0x56')],'as':_0x7170('0x54')}]});}return null;})[_0x7170('0x28')](respondWithResult(_0x546e10,null))[_0x7170('0x45')](handleError(_0x546e10,null));};exports[_0x7170('0x57')]=function(_0x3284e1,_0x20adf6,_0x1813ed){var _0x5b9f5b='';var _0xcc12cb=['id',_0x7170('0x2a'),_0x7170('0x58'),_0x7170('0x59'),_0x7170('0x5a'),_0x7170('0x5b'),_0x7170('0x5c'),_0x7170('0x5d'),_0x7170('0x5e'),_0x7170('0x5f'),_0x7170('0x60'),'direction'];return db[_0x7170('0x40')][_0x7170('0x4f')]({'where':{'id':_0x3284e1[_0x7170('0x47')]['id']},'attributes':['id',_0x7170('0x61'),_0x7170('0x62'),'remoteUri']})[_0x7170('0x28')](handleEntityNotFound(_0x20adf6,null))[_0x7170('0x28')](function(_0x472f63){if(_0x472f63){_0x5b9f5b=_0x472f63['remoteUri'];var _0x5cfa0c=_0x5b9f5b[_0x7170('0x63')](-0x1);if(_0x5cfa0c==='/'){_0x5b9f5b=_0x5b9f5b[_0x7170('0x64')](0x0,_0x5b9f5b[_0x7170('0x65')](_0x5cfa0c));}return rp({'method':_0x7170('0x66'),'uri':util[_0x7170('0x67')](_0x7170('0x68'),_0x5b9f5b,_0x7170('0x69')),'json':!![],'form':{'method':_0x7170('0x6a'),'input_type':'JSON','response_type':_0x7170('0x6b'),'rest_data':JSON[_0x7170('0x6c')]({'user_auth':{'user_name':_0x472f63['username'],'password':_0x472f63[_0x7170('0x62')],'encryption':_0x7170('0x6d')},'application':_0x7170('0x6e')})}});}})[_0x7170('0x28')](function(_0x29311f){if(_0x29311f&&_0x29311f['name']!==_0x7170('0x6f')&&_0x29311f['name']!=='Password\x20Expired'){return rp({'method':_0x7170('0x66'),'uri':util[_0x7170('0x67')]('%s%s',_0x5b9f5b,_0x7170('0x69')),'json':!![],'form':{'method':_0x7170('0x70'),'input_type':_0x7170('0x6b'),'response_type':_0x7170('0x6b'),'rest_data':JSON[_0x7170('0x6c')]({'session':_0x29311f['id'],'module_name':_0x7170('0x71')})}})['then'](function(_0x236b26){if(_0x236b26){var _0x3881fa=_[_0x7170('0x72')](_0x236b26[_0x7170('0x73')]);_[_0x7170('0x74')](_0x3881fa,function(_0x59d24a){return _0xcc12cb[_0x7170('0x75')](_0x59d24a[_0x7170('0x2a')]);});return{'count':_0x3881fa[_0x7170('0x36')],'rows':_['map'](_0x3881fa,function(_0x2ef73d){return{'id':_0x2ef73d['name'],'name':_0x2ef73d[_0x7170('0x76')],'custom':_[_0x7170('0x77')](_0x2ef73d[_0x7170('0x2a')],'_c')?!![]:![],'options':_0x2ef73d[_0x7170('0x3f')]?_[_0x7170('0x2d')](_[_0x7170('0x72')](_0x2ef73d[_0x7170('0x3f')]),function(_0x450138){return{'name':_0x450138[_0x7170('0x78')],'value':_0x450138[_0x7170('0x2a')]};}):[]};})};}})['then'](respondWithResult(_0x20adf6,null))[_0x7170('0x45')](function(_0x11a225){var _0x16bdb3=_0x3284e1[_0x7170('0x30')][_0x7170('0x79')]?0x1f4:_0x11a225['statusCode']||0x1f4;logger[_0x7170('0x7a')](_0x7170('0x7b'),_0x7170('0x57'),_0x16bdb3,JSON[_0x7170('0x6c')](_0x11a225));delete _0x11a225[_0x7170('0x2a')];if(_0x16bdb3===0x191){_0x16bdb3=0x190;}_0x20adf6['status'](_0x16bdb3)['send'](_0x3284e1[_0x7170('0x30')]['test']?{'message':_0x7170('0x7c'),'statusCode':_0x11a225[_0x7170('0x7d')]}:_0x11a225);});}else{var _0x435052=0x1f4;_0x20adf6[_0x7170('0x1c')](_0x435052)[_0x7170('0x2b')]({'message':_0x7170('0x7c'),'statusCode':0x190});}});};