Built motion from commit b0a9a629.|2.6.33
[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 _0x21fc=['filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','find','create','update','body','destroy','getConfigurations','findOne','SugarcrmConfiguration','order','pick','addConfiguration','AccountId','Subjects','getSubjects','channel','SugarcrmField','getFields','assigned_user_id','duration_minutes','parent_id','parent_type','parent_name','direction','username','password','remoteUri','slice','lastIndexOf','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','xCALLY\x20Motion\x20Integration','Calls','values','remove','includes','label','endsWith','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','error','stack','name','send','index','map','SugarcrmAccount','rawAttributes','fieldName','type','key','model','query','keys'];(function(_0x25b26d,_0x2a6610){var _0xda3c58=function(_0x552d0e){while(--_0x552d0e){_0x25b26d['push'](_0x25b26d['shift']());}};_0xda3c58(++_0x2a6610);}(_0x21fc,0x130));var _0xc21f=function(_0x4c184d,_0x4278ab){_0x4c184d=_0x4c184d-0x0;var _0x23d997=_0x21fc[_0x4c184d];return _0x23d997;};'use strict';var emlformat=require(_0xc21f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc21f('0x1'));var jsonpatch=require(_0xc21f('0x2'));var rp=require(_0xc21f('0x3'));var moment=require(_0xc21f('0x4'));var BPromise=require(_0xc21f('0x5'));var Mustache=require(_0xc21f('0x6'));var util=require(_0xc21f('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0xc21f('0x8'));var ejs=require(_0xc21f('0x9'));var fs=require('fs');var fs_extra=require(_0xc21f('0xa'));var _=require('lodash');var squel=require(_0xc21f('0xb'));var crypto=require(_0xc21f('0xc'));var jsforce=require(_0xc21f('0xd'));var deskjs=require(_0xc21f('0xe'));var toCsv=require('to-csv');var querystring=require(_0xc21f('0xf'));var Papa=require('papaparse');var Redis=require(_0xc21f('0x10'));var authService=require(_0xc21f('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xc21f('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc21f('0x13'))('api');var utils=require(_0xc21f('0x14'));var config=require(_0xc21f('0x15'));var licenseUtil=require(_0xc21f('0x16'));var db=require(_0xc21f('0x17'))['db'];var integrations=require(_0xc21f('0x18'));function respondWithStatusCode(_0x35a13c,_0x162bcf){_0x162bcf=_0x162bcf||0xcc;return function(_0x3cc5e8){if(_0x3cc5e8){return _0x35a13c[_0xc21f('0x19')](_0x162bcf);}return _0x35a13c[_0xc21f('0x1a')](_0x162bcf)[_0xc21f('0x1b')]();};}function respondWithResult(_0x3551b1,_0x51cc21){_0x51cc21=_0x51cc21||0xc8;return function(_0x1b83b9){if(_0x1b83b9){return _0x3551b1[_0xc21f('0x1a')](_0x51cc21)[_0xc21f('0x1c')](_0x1b83b9);}};}function respondWithFilteredResult(_0x2dac4a,_0x39517e){return function(_0xf38d31){if(_0xf38d31){var _0xfcb025=typeof _0x39517e[_0xc21f('0x1d')]===_0xc21f('0x1e')&&typeof _0x39517e[_0xc21f('0x1f')]==='undefined';var _0x3713ab=_0xf38d31[_0xc21f('0x20')];var _0x2bf0c7=_0xfcb025?0x0:_0x39517e[_0xc21f('0x1d')];var _0x417a35=_0xfcb025?_0xf38d31['count']:_0x39517e['offset']+_0x39517e['limit'];var _0xa0cff;if(_0x417a35>=_0x3713ab){_0x417a35=_0x3713ab;_0xa0cff=0xc8;}else{_0xa0cff=0xce;}_0x2dac4a[_0xc21f('0x1a')](_0xa0cff);return _0x2dac4a[_0xc21f('0x21')](_0xc21f('0x22'),_0x2bf0c7+'-'+_0x417a35+'/'+_0x3713ab)[_0xc21f('0x1c')](_0xf38d31);}return null;};}function patchUpdates(_0x408fa7){return function(_0x98f61d){try{jsonpatch[_0xc21f('0x23')](_0x98f61d,_0x408fa7,!![]);}catch(_0x17567f){return BPromise[_0xc21f('0x24')](_0x17567f);}return _0x98f61d[_0xc21f('0x25')]();};}function saveUpdates(_0x2f0628,_0x2a5d46){return function(_0x5b91ba){if(_0x5b91ba){return _0x5b91ba['update'](_0x2f0628)[_0xc21f('0x26')](function(_0x5d91f5){return _0x5d91f5;});}return null;};}function removeEntity(_0x22f31e,_0x5099d7){return function(_0x147b84){if(_0x147b84){return _0x147b84['destroy']()[_0xc21f('0x26')](function(){_0x22f31e['status'](0xcc)[_0xc21f('0x1b')]();});}};}function handleEntityNotFound(_0x5e46a0,_0x127072){return function(_0x3b996e){if(!_0x3b996e){_0x5e46a0['sendStatus'](0x194);}return _0x3b996e;};}function handleError(_0x73229,_0x2647ee){_0x2647ee=_0x2647ee||0x1f4;return function(_0x4d897b){logger[_0xc21f('0x27')](_0x4d897b[_0xc21f('0x28')]);if(_0x4d897b[_0xc21f('0x29')]){delete _0x4d897b['name'];}_0x73229[_0xc21f('0x1a')](_0x2647ee)[_0xc21f('0x2a')](_0x4d897b);};}exports[_0xc21f('0x2b')]=function(_0x3f59b4,_0x33e40a){var _0x3c2ac1={},_0x23d8d0={},_0x3c2783={'count':0x0,'rows':[]};var _0x18748d=_[_0xc21f('0x2c')](db[_0xc21f('0x2d')][_0xc21f('0x2e')],function(_0x4c14cf){return{'name':_0x4c14cf[_0xc21f('0x2f')],'type':_0x4c14cf[_0xc21f('0x30')][_0xc21f('0x31')]};});_0x23d8d0[_0xc21f('0x32')]=_['map'](_0x18748d,'name');_0x23d8d0[_0xc21f('0x33')]=_[_0xc21f('0x34')](_0x3f59b4[_0xc21f('0x33')]);_0x23d8d0[_0xc21f('0x35')]=_[_0xc21f('0x36')](_0x23d8d0[_0xc21f('0x32')],_0x23d8d0[_0xc21f('0x33')]);_0x3c2ac1['attributes']=_[_0xc21f('0x36')](_0x23d8d0[_0xc21f('0x32')],qs[_0xc21f('0x37')](_0x3f59b4[_0xc21f('0x33')][_0xc21f('0x37')]));_0x3c2ac1[_0xc21f('0x38')]=_0x3c2ac1[_0xc21f('0x38')][_0xc21f('0x39')]?_0x3c2ac1[_0xc21f('0x38')]:_0x23d8d0[_0xc21f('0x32')];if(!_0x3f59b4[_0xc21f('0x33')][_0xc21f('0x3a')](_0xc21f('0x3b'))){_0x3c2ac1['limit']=qs[_0xc21f('0x1f')](_0x3f59b4[_0xc21f('0x33')][_0xc21f('0x1f')]);_0x3c2ac1['offset']=qs['offset'](_0x3f59b4[_0xc21f('0x33')][_0xc21f('0x1d')]);}_0x3c2ac1['order']=qs['sort'](_0x3f59b4[_0xc21f('0x33')][_0xc21f('0x3c')]);_0x3c2ac1[_0xc21f('0x3d')]=qs[_0xc21f('0x35')](_['pick'](_0x3f59b4['query'],_0x23d8d0['filters']),_0x18748d);if(_0x3f59b4[_0xc21f('0x33')][_0xc21f('0x3e')]){_0x3c2ac1['where']=_[_0xc21f('0x3f')](_0x3c2ac1['where'],{'$or':_[_0xc21f('0x2c')](_0x18748d,function(_0x1924df){if(_0x1924df[_0xc21f('0x30')]!==_0xc21f('0x40')){var _0x2cf1df={};_0x2cf1df[_0x1924df[_0xc21f('0x29')]]={'$like':'%'+_0x3f59b4[_0xc21f('0x33')][_0xc21f('0x3e')]+'%'};return _0x2cf1df;}})});}_0x3c2ac1=_[_0xc21f('0x3f')]({},_0x3c2ac1,_0x3f59b4[_0xc21f('0x41')]);var _0x2fad9a={'where':_0x3c2ac1[_0xc21f('0x3d')]};return db[_0xc21f('0x2d')][_0xc21f('0x20')](_0x2fad9a)[_0xc21f('0x26')](function(_0x121e4a){_0x3c2783[_0xc21f('0x20')]=_0x121e4a;if(_0x3f59b4[_0xc21f('0x33')][_0xc21f('0x42')]){_0x3c2ac1[_0xc21f('0x43')]=[{'all':!![]}];}return db[_0xc21f('0x2d')]['findAll'](_0x3c2ac1);})[_0xc21f('0x26')](function(_0x1551c6){_0x3c2783[_0xc21f('0x44')]=_0x1551c6;return _0x3c2783;})[_0xc21f('0x26')](respondWithFilteredResult(_0x33e40a,_0x3c2ac1))[_0xc21f('0x45')](handleError(_0x33e40a,null));};exports[_0xc21f('0x46')]=function(_0x3dfd93,_0x5d8f3a){var _0xaa5fb8={'raw':![],'where':{'id':_0x3dfd93[_0xc21f('0x47')]['id']}},_0xb45baf={};_0xb45baf[_0xc21f('0x32')]=_[_0xc21f('0x34')](db['SugarcrmAccount']['rawAttributes']);_0xb45baf[_0xc21f('0x33')]=_[_0xc21f('0x34')](_0x3dfd93['query']);_0xb45baf['filters']=_[_0xc21f('0x36')](_0xb45baf[_0xc21f('0x32')],_0xb45baf[_0xc21f('0x33')]);_0xaa5fb8[_0xc21f('0x38')]=_['intersection'](_0xb45baf[_0xc21f('0x32')],qs[_0xc21f('0x37')](_0x3dfd93[_0xc21f('0x33')][_0xc21f('0x37')]));_0xaa5fb8[_0xc21f('0x38')]=_0xaa5fb8[_0xc21f('0x38')]['length']?_0xaa5fb8[_0xc21f('0x38')]:_0xb45baf[_0xc21f('0x32')];if(_0x3dfd93[_0xc21f('0x33')][_0xc21f('0x42')]){_0xaa5fb8[_0xc21f('0x43')]=[{'all':!![]}];}_0xaa5fb8=_[_0xc21f('0x3f')]({},_0xaa5fb8,_0x3dfd93[_0xc21f('0x41')]);return db[_0xc21f('0x2d')][_0xc21f('0x48')](_0xaa5fb8)['then'](handleEntityNotFound(_0x5d8f3a,null))[_0xc21f('0x26')](respondWithResult(_0x5d8f3a,null))[_0xc21f('0x45')](handleError(_0x5d8f3a,null));};exports[_0xc21f('0x49')]=function(_0x495bd7,_0x271bcb){return db[_0xc21f('0x2d')][_0xc21f('0x49')](_0x495bd7['body'],{})['then'](respondWithResult(_0x271bcb,0xc9))[_0xc21f('0x45')](handleError(_0x271bcb,null));};exports[_0xc21f('0x4a')]=function(_0x5d4409,_0x3ff49a){if(_0x5d4409[_0xc21f('0x4b')]['id']){delete _0x5d4409[_0xc21f('0x4b')]['id'];}return db['SugarcrmAccount'][_0xc21f('0x48')]({'where':{'id':_0x5d4409[_0xc21f('0x47')]['id']}})['then'](handleEntityNotFound(_0x3ff49a,null))[_0xc21f('0x26')](saveUpdates(_0x5d4409[_0xc21f('0x4b')],null))[_0xc21f('0x26')](respondWithResult(_0x3ff49a,null))[_0xc21f('0x45')](handleError(_0x3ff49a,null));};exports[_0xc21f('0x4c')]=function(_0x17318e,_0x41e67e){return db[_0xc21f('0x2d')][_0xc21f('0x48')]({'where':{'id':_0x17318e['params']['id']}})['then'](handleEntityNotFound(_0x41e67e,null))[_0xc21f('0x26')](removeEntity(_0x41e67e,null))[_0xc21f('0x45')](handleError(_0x41e67e,null));};exports[_0xc21f('0x4d')]=function(_0xbee424,_0x57e344,_0x13c497){var _0x45f75d={};var _0x2ec05d={};var _0x990f57;var _0x57f3f3;return db[_0xc21f('0x2d')][_0xc21f('0x4e')]({'where':{'id':_0xbee424['params']['id']}})['then'](handleEntityNotFound(_0x57e344,null))['then'](function(_0x1fa42a){if(_0x1fa42a){_0x990f57=_0x1fa42a;_0x2ec05d[_0xc21f('0x32')]=_[_0xc21f('0x34')](db[_0xc21f('0x4f')][_0xc21f('0x2e')]);_0x2ec05d[_0xc21f('0x33')]=_[_0xc21f('0x34')](_0xbee424[_0xc21f('0x33')]);_0x2ec05d[_0xc21f('0x35')]=_[_0xc21f('0x36')](_0x2ec05d['model'],_0x2ec05d[_0xc21f('0x33')]);_0x45f75d[_0xc21f('0x38')]=_['intersection'](_0x2ec05d['model'],qs[_0xc21f('0x37')](_0xbee424['query'][_0xc21f('0x37')]));_0x45f75d[_0xc21f('0x38')]=_0x45f75d['attributes'][_0xc21f('0x39')]?_0x45f75d[_0xc21f('0x38')]:_0x2ec05d[_0xc21f('0x32')];_0x45f75d[_0xc21f('0x50')]=qs['sort'](_0xbee424[_0xc21f('0x33')][_0xc21f('0x3c')]);_0x45f75d[_0xc21f('0x3d')]=qs[_0xc21f('0x35')](_[_0xc21f('0x51')](_0xbee424[_0xc21f('0x33')],_0x2ec05d[_0xc21f('0x35')]));if(_0xbee424[_0xc21f('0x33')][_0xc21f('0x3e')]){_0x45f75d[_0xc21f('0x3d')]=_[_0xc21f('0x3f')](_0x45f75d[_0xc21f('0x3d')],{'$or':_[_0xc21f('0x2c')](_0x45f75d[_0xc21f('0x38')],function(_0x2361f0){var _0x4767e8={};_0x4767e8[_0x2361f0]={'$like':'%'+_0xbee424[_0xc21f('0x33')]['filter']+'%'};return _0x4767e8;})});}_0x45f75d=_[_0xc21f('0x3f')]({},_0x45f75d,_0xbee424['options']);return _0x990f57[_0xc21f('0x4d')](_0x45f75d);}})['then'](function(_0x2647e6){if(_0x2647e6){_0x57f3f3=_0x2647e6[_0xc21f('0x39')];if(!_0xbee424[_0xc21f('0x33')]['hasOwnProperty'](_0xc21f('0x3b'))){_0x45f75d[_0xc21f('0x1f')]=qs[_0xc21f('0x1f')](_0xbee424['query'][_0xc21f('0x1f')]);_0x45f75d[_0xc21f('0x1d')]=qs['offset'](_0xbee424['query']['offset']);}return _0x990f57[_0xc21f('0x4d')](_0x45f75d);}})[_0xc21f('0x26')](function(_0x4ce195){if(_0x4ce195){return _0x4ce195?{'count':_0x57f3f3,'rows':_0x4ce195}:null;}})[_0xc21f('0x26')](respondWithResult(_0x57e344,null))[_0xc21f('0x45')](handleError(_0x57e344,null));};exports[_0xc21f('0x52')]=function(_0x2496d6,_0x529369,_0x6789e){if(_0x2496d6['body']['id']){delete _0x2496d6['body']['id'];}return db[_0xc21f('0x2d')]['findOne']({'where':{'id':_0x2496d6[_0xc21f('0x47')]['id']}})[_0xc21f('0x26')](handleEntityNotFound(_0x529369,null))['then'](function(_0x436eba){if(_0x436eba){_0x2496d6[_0xc21f('0x4b')][_0xc21f('0x53')]=_0x436eba['id'];_0x2496d6[_0xc21f('0x4b')][_0xc21f('0x54')]=integrations[_0xc21f('0x55')](_0x2496d6[_0xc21f('0x4b')][_0xc21f('0x56')],_0x2496d6[_0xc21f('0x4b')][_0xc21f('0x30')]);_0x2496d6['body']['Descriptions']=integrations['getDescriptions'](_0x2496d6['body'][_0xc21f('0x56')],_0x2496d6[_0xc21f('0x4b')][_0xc21f('0x30')]);return db[_0xc21f('0x4f')][_0xc21f('0x49')](_0x2496d6['body'],{'include':[{'model':db[_0xc21f('0x57')],'as':_0xc21f('0x54')},{'model':db[_0xc21f('0x57')],'as':'Descriptions'}]});}return null;})[_0xc21f('0x26')](respondWithResult(_0x529369,null))[_0xc21f('0x45')](handleError(_0x529369,null));};exports[_0xc21f('0x58')]=function(_0xa9e7c5,_0x112f5d,_0x1f0eb5){var _0x132393='';var _0x25675a=['id',_0xc21f('0x29'),_0xc21f('0x59'),'created_by','description','date_start','duration_hours',_0xc21f('0x5a'),_0xc21f('0x5b'),_0xc21f('0x5c'),_0xc21f('0x5d'),_0xc21f('0x5e')];return db['SugarcrmAccount'][_0xc21f('0x4e')]({'where':{'id':_0xa9e7c5['params']['id']},'attributes':['id',_0xc21f('0x5f'),_0xc21f('0x60'),_0xc21f('0x61')]})[_0xc21f('0x26')](handleEntityNotFound(_0x112f5d,null))[_0xc21f('0x26')](function(_0x324a23){if(_0x324a23){_0x132393=_0x324a23[_0xc21f('0x61')];var _0x2c6e03=_0x132393[_0xc21f('0x62')](-0x1);if(_0x2c6e03==='/'){_0x132393=_0x132393['substring'](0x0,_0x132393[_0xc21f('0x63')](_0x2c6e03));}return rp({'method':_0xc21f('0x64'),'uri':util[_0xc21f('0x65')](_0xc21f('0x66'),_0x132393,_0xc21f('0x67')),'json':!![],'form':{'method':_0xc21f('0x68'),'input_type':_0xc21f('0x69'),'response_type':_0xc21f('0x69'),'rest_data':JSON[_0xc21f('0x6a')]({'user_auth':{'user_name':_0x324a23[_0xc21f('0x5f')],'password':_0x324a23['password'],'encryption':_0xc21f('0x6b')},'application':_0xc21f('0x6c')})}});}})[_0xc21f('0x26')](function(_0x18c0a5){if(_0x18c0a5&&_0x18c0a5[_0xc21f('0x29')]!=='Invalid\x20Login'&&_0x18c0a5['name']!=='Password\x20Expired'){return rp({'method':_0xc21f('0x64'),'uri':util[_0xc21f('0x65')](_0xc21f('0x66'),_0x132393,_0xc21f('0x67')),'json':!![],'form':{'method':'get_module_fields','input_type':_0xc21f('0x69'),'response_type':_0xc21f('0x69'),'rest_data':JSON[_0xc21f('0x6a')]({'session':_0x18c0a5['id'],'module_name':_0xc21f('0x6d')})}})[_0xc21f('0x26')](function(_0x49d99a){if(_0x49d99a){var _0xe09fb5=_[_0xc21f('0x6e')](_0x49d99a['module_fields']);_[_0xc21f('0x6f')](_0xe09fb5,function(_0x3ea078){return _0x25675a[_0xc21f('0x70')](_0x3ea078['name']);});return{'count':_0xe09fb5['length'],'rows':_[_0xc21f('0x2c')](_0xe09fb5,function(_0x8d97cd){return{'id':_0x8d97cd[_0xc21f('0x29')],'name':_0x8d97cd[_0xc21f('0x71')],'custom':_[_0xc21f('0x72')](_0x8d97cd[_0xc21f('0x29')],'_c')?!![]:![],'options':_0x8d97cd[_0xc21f('0x41')]?_[_0xc21f('0x2c')](_[_0xc21f('0x6e')](_0x8d97cd['options']),function(_0x4bb17b){return{'name':_0x4bb17b['value'],'value':_0x4bb17b[_0xc21f('0x29')]};}):[]};})};}})[_0xc21f('0x26')](respondWithResult(_0x112f5d,null))['catch'](function(_0x94a6c2){var _0x23e0ef=_0xa9e7c5[_0xc21f('0x33')][_0xc21f('0x73')]?0x1f4:_0x94a6c2[_0xc21f('0x74')]||0x1f4;logger[_0xc21f('0x27')](_0xc21f('0x75'),_0xc21f('0x58'),_0x23e0ef,JSON[_0xc21f('0x6a')](_0x94a6c2));delete _0x94a6c2[_0xc21f('0x29')];if(_0x23e0ef===0x191){_0x23e0ef=0x190;}_0x112f5d[_0xc21f('0x1a')](_0x23e0ef)[_0xc21f('0x2a')](_0xa9e7c5[_0xc21f('0x33')][_0xc21f('0x73')]?{'message':_0xc21f('0x76'),'statusCode':_0x94a6c2[_0xc21f('0x74')]}:_0x94a6c2);});}else{var _0x4b849e=0x1f4;_0x112f5d[_0xc21f('0x1a')](_0x4b849e)['send']({'message':'Wrong\x20credentials','statusCode':0x190});}});};