8f84d939873e4d0fb0bb69c2aa4b8238a282704c
[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 _0x23c9=['getDescriptions','SugarcrmField','Subjects','getFields','description','duration_minutes','parent_id','parent_type','parent_name','direction','password','remoteUri','slice','lastIndexOf','POST','%s%s','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','Password\x20Expired','format','Calls','module_fields','remove','includes','label','endsWith','value','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','to-csv','ejs','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','test','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','SugarcrmAccount,\x20%s,\x20%s','debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','status','end','count','offset','limit','set','Content-Range','json','apply','reject','save','destroy','name','send','index','SugarcrmAccount','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','VIRTUAL','filter','merge','includeAll','findAll','params','include','options','find','create','body','getConfigurations','findOne','SugarcrmConfiguration','nolimit','addConfiguration','AccountId','getSubjects','channel','Descriptions'];(function(_0x27bd9b,_0x206238){var _0xbd6219=function(_0x3c1577){while(--_0x3c1577){_0x27bd9b['push'](_0x27bd9b['shift']());}};_0xbd6219(++_0x206238);}(_0x23c9,0x1a1));var _0x923c=function(_0x333767,_0x220733){_0x333767=_0x333767-0x0;var _0x42a755=_0x23c9[_0x333767];return _0x42a755;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x923c('0x0'));var rimraf=require(_0x923c('0x1'));var zipdir=require(_0x923c('0x2'));var jsonpatch=require(_0x923c('0x3'));var rp=require('request-promise');var moment=require(_0x923c('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x923c('0x5'));var util=require(_0x923c('0x6'));var path=require(_0x923c('0x7'));var sox=require('sox');var csv=require(_0x923c('0x8'));var ejs=require(_0x923c('0x9'));var fs=require('fs');var _=require(_0x923c('0xa'));var squel=require('squel');var crypto=require(_0x923c('0xb'));var jsforce=require(_0x923c('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x923c('0x8'));var querystring=require(_0x923c('0xd'));var Papa=require(_0x923c('0xe'));var Redis=require(_0x923c('0xf'));var authService=require(_0x923c('0x10'));var qs=require(_0x923c('0x11'));var as=require(_0x923c('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x923c('0x13'))('api');var utils=require(_0x923c('0x14'));var config=require(_0x923c('0x15'));var db=require(_0x923c('0x16'))['db'];var integrations=require(_0x923c('0x17'));var jayson=require(_0x923c('0x18'));var client=jayson[_0x923c('0x19')]['http']({'port':0x232a});function checkPasswordPattern(_0x5d6ffd,_0x512b12,_0xf8913a){if(_0xf8913a){var _0x121cc6=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x121cc6[_0x923c('0x1a')](_0x512b12)){return _0x5d6ffd;}else{throw new db[(_0x923c('0x1b'))][(_0x923c('0x1c'))](_0x923c('0x1d'));}}else{return _0x5d6ffd;}}function respondWithRpcPromise(_0x21b172,_0x2eb02c,_0x11ba5a,_0x5b37ac){return new BPromise(function(_0x308be8,_0x297fc3){var _0x2a4d23=_0x5b37ac||client;return _0x2a4d23[_0x923c('0x1e')](_0x21b172,_0x11ba5a)[_0x923c('0x1f')](function(_0x23a969){logger['info'](_0x923c('0x20'),_0x2eb02c,'request\x20sent');logger[_0x923c('0x21')](_0x923c('0x22'),_0x2eb02c,_0x923c('0x23'),JSON['stringify'](_0x23a969));if(_0x23a969[_0x923c('0x24')]){if(_0x23a969[_0x923c('0x24')][_0x923c('0x25')]===0x1f4){logger[_0x923c('0x24')](_0x923c('0x20'),_0x2eb02c,_0x23a969[_0x923c('0x24')][_0x923c('0x26')]);return _0x297fc3(_0x23a969[_0x923c('0x24')][_0x923c('0x26')]);}logger[_0x923c('0x24')](_0x923c('0x20'),_0x2eb02c,_0x23a969[_0x923c('0x24')]['message']);return _0x308be8(_0x23a969[_0x923c('0x24')][_0x923c('0x26')]);}else{logger['info'](_0x923c('0x20'),_0x2eb02c,_0x923c('0x23'));_0x308be8(_0x23a969[_0x923c('0x27')][_0x923c('0x26')]);}})[_0x923c('0x28')](function(_0x4e20c2){logger[_0x923c('0x24')]('SugarcrmAccount,\x20%s,\x20%s',_0x2eb02c,_0x4e20c2);_0x297fc3(_0x4e20c2);});});}function respondWithStatusCode(_0x438580,_0x416172){_0x416172=_0x416172||0xcc;return function(_0x51ad21){if(_0x51ad21){return _0x438580['sendStatus'](_0x416172);}return _0x438580[_0x923c('0x29')](_0x416172)[_0x923c('0x2a')]();};}function respondWithResult(_0x28c483,_0x567c55){_0x567c55=_0x567c55||0xc8;return function(_0x191bb5){if(_0x191bb5){return _0x28c483['status'](_0x567c55)['json'](_0x191bb5);}};}function respondWithFilteredResult(_0x475d7a,_0x5f371a){return function(_0x528a6e){if(_0x528a6e){var _0xf3e355=_0x528a6e[_0x923c('0x2b')],_0x196e09=_0x5f371a[_0x923c('0x2c')],_0x1e7909=_0x5f371a['offset']+_0x5f371a[_0x923c('0x2d')],_0x4467b2;if(_0x1e7909>=_0xf3e355){_0x1e7909=_0xf3e355;_0x4467b2=0xc8;}else{_0x4467b2=0xce;}_0x475d7a[_0x923c('0x29')](_0x4467b2);return _0x475d7a[_0x923c('0x2e')](_0x923c('0x2f'),_0x196e09+'-'+_0x1e7909+'/'+_0xf3e355)[_0x923c('0x30')](_0x528a6e);}return null;};}function patchUpdates(_0x40a56c){return function(_0x587d85){try{jsonpatch[_0x923c('0x31')](_0x587d85,_0x40a56c,!![]);}catch(_0x384454){return BPromise[_0x923c('0x32')](_0x384454);}return _0x587d85[_0x923c('0x33')]();};}function saveUpdates(_0x180f63,_0x38ccfc){return function(_0x5378ea){if(_0x5378ea){return _0x5378ea['update'](_0x180f63)[_0x923c('0x1f')](function(_0x58f003){return _0x58f003;});}return null;};}function removeEntity(_0x37dbee,_0x1de60b){return function(_0x1b2593){if(_0x1b2593){return _0x1b2593[_0x923c('0x34')]()[_0x923c('0x1f')](function(){_0x37dbee[_0x923c('0x29')](0xcc)['end']();});}};}function handleEntityNotFound(_0xd410a7,_0x374937){return function(_0x172885){if(!_0x172885){_0xd410a7['sendStatus'](0x194);}return _0x172885;};}function handleError(_0x5af561,_0xc87bea){_0xc87bea=_0xc87bea||0x1f4;return function(_0x2649a0){logger[_0x923c('0x24')](_0x2649a0['stack']);if(_0x2649a0[_0x923c('0x35')]){delete _0x2649a0['name'];}_0x5af561[_0x923c('0x29')](_0xc87bea)[_0x923c('0x36')](_0x2649a0);};}exports[_0x923c('0x37')]=function(_0x3dd57e,_0x3a6534){var _0x4c4204={},_0x3ce406={},_0x4b2c61={'count':0x0,'rows':[]};var _0xe054f0=_['map'](db[_0x923c('0x38')][_0x923c('0x39')],function(_0xc955c3){return{'name':_0xc955c3[_0x923c('0x3a')],'type':_0xc955c3[_0x923c('0x3b')][_0x923c('0x3c')]};});_0x3ce406[_0x923c('0x3d')]=_[_0x923c('0x3e')](_0xe054f0,_0x923c('0x35'));_0x3ce406[_0x923c('0x3f')]=_[_0x923c('0x40')](_0x3dd57e['query']);_0x3ce406[_0x923c('0x41')]=_[_0x923c('0x42')](_0x3ce406[_0x923c('0x3d')],_0x3ce406[_0x923c('0x3f')]);_0x4c4204[_0x923c('0x43')]=_[_0x923c('0x42')](_0x3ce406[_0x923c('0x3d')],qs[_0x923c('0x44')](_0x3dd57e[_0x923c('0x3f')]['fields']));_0x4c4204['attributes']=_0x4c4204['attributes'][_0x923c('0x45')]?_0x4c4204[_0x923c('0x43')]:_0x3ce406[_0x923c('0x3d')];if(!_0x3dd57e['query'][_0x923c('0x46')]('nolimit')){_0x4c4204[_0x923c('0x2d')]=qs[_0x923c('0x2d')](_0x3dd57e[_0x923c('0x3f')][_0x923c('0x2d')]);_0x4c4204[_0x923c('0x2c')]=qs[_0x923c('0x2c')](_0x3dd57e['query']['offset']);}_0x4c4204[_0x923c('0x47')]=qs[_0x923c('0x48')](_0x3dd57e[_0x923c('0x3f')][_0x923c('0x48')]);_0x4c4204[_0x923c('0x49')]=qs[_0x923c('0x41')](_[_0x923c('0x4a')](_0x3dd57e[_0x923c('0x3f')],_0x3ce406[_0x923c('0x41')]),_0xe054f0);if(_0x3dd57e[_0x923c('0x3f')]['filter']){_0x4c4204[_0x923c('0x49')]=_['merge'](_0x4c4204[_0x923c('0x49')],{'$or':_[_0x923c('0x3e')](_0xe054f0,function(_0x1e30b2){if(_0x1e30b2[_0x923c('0x3b')]!==_0x923c('0x4b')){var _0x5d7db2={};_0x5d7db2[_0x1e30b2[_0x923c('0x35')]]={'$like':'%'+_0x3dd57e[_0x923c('0x3f')][_0x923c('0x4c')]+'%'};return _0x5d7db2;}})});}_0x4c4204=_[_0x923c('0x4d')]({},_0x4c4204,_0x3dd57e['options']);var _0x4867b9={'where':_0x4c4204['where']};return db[_0x923c('0x38')][_0x923c('0x2b')](_0x4867b9)[_0x923c('0x1f')](function(_0x2b7194){_0x4b2c61[_0x923c('0x2b')]=_0x2b7194;if(_0x3dd57e[_0x923c('0x3f')][_0x923c('0x4e')]){_0x4c4204['include']=[{'all':!![]}];}return db[_0x923c('0x38')][_0x923c('0x4f')](_0x4c4204);})['then'](function(_0x183a06){_0x4b2c61['rows']=_0x183a06;return _0x4b2c61;})[_0x923c('0x1f')](respondWithFilteredResult(_0x3a6534,_0x4c4204))[_0x923c('0x28')](handleError(_0x3a6534,null));};exports['show']=function(_0x156667,_0x3873d1){var _0x42e903={'raw':![],'where':{'id':_0x156667[_0x923c('0x50')]['id']}},_0xd72360={};_0xd72360[_0x923c('0x3d')]=_[_0x923c('0x40')](db[_0x923c('0x38')][_0x923c('0x39')]);_0xd72360[_0x923c('0x3f')]=_[_0x923c('0x40')](_0x156667['query']);_0xd72360['filters']=_[_0x923c('0x42')](_0xd72360[_0x923c('0x3d')],_0xd72360[_0x923c('0x3f')]);_0x42e903['attributes']=_[_0x923c('0x42')](_0xd72360['model'],qs[_0x923c('0x44')](_0x156667[_0x923c('0x3f')][_0x923c('0x44')]));_0x42e903[_0x923c('0x43')]=_0x42e903['attributes'][_0x923c('0x45')]?_0x42e903[_0x923c('0x43')]:_0xd72360['model'];if(_0x156667[_0x923c('0x3f')]['includeAll']){_0x42e903[_0x923c('0x51')]=[{'all':!![]}];}_0x42e903=_[_0x923c('0x4d')]({},_0x42e903,_0x156667[_0x923c('0x52')]);return db[_0x923c('0x38')][_0x923c('0x53')](_0x42e903)[_0x923c('0x1f')](handleEntityNotFound(_0x3873d1,null))[_0x923c('0x1f')](respondWithResult(_0x3873d1,null))[_0x923c('0x28')](handleError(_0x3873d1,null));};exports['create']=function(_0x568404,_0x3a2924){return db[_0x923c('0x38')][_0x923c('0x54')](_0x568404[_0x923c('0x55')],{})[_0x923c('0x1f')](respondWithResult(_0x3a2924,0xc9))[_0x923c('0x28')](handleError(_0x3a2924,null));};exports['update']=function(_0x27547d,_0xd195e4){if(_0x27547d['body']['id']){delete _0x27547d['body']['id'];}return db[_0x923c('0x38')]['find']({'where':{'id':_0x27547d['params']['id']}})[_0x923c('0x1f')](handleEntityNotFound(_0xd195e4,null))[_0x923c('0x1f')](saveUpdates(_0x27547d['body'],null))[_0x923c('0x1f')](respondWithResult(_0xd195e4,null))[_0x923c('0x28')](handleError(_0xd195e4,null));};exports[_0x923c('0x34')]=function(_0xc90262,_0x480441){return db[_0x923c('0x38')][_0x923c('0x53')]({'where':{'id':_0xc90262[_0x923c('0x50')]['id']}})[_0x923c('0x1f')](handleEntityNotFound(_0x480441,null))[_0x923c('0x1f')](removeEntity(_0x480441,null))['catch'](handleError(_0x480441,null));};exports[_0x923c('0x56')]=function(_0x269854,_0x40973d,_0x2daf75){var _0x3730d4={};var _0x57775e={};var _0x1a5681;var _0x3622f1;return db[_0x923c('0x38')][_0x923c('0x57')]({'where':{'id':_0x269854[_0x923c('0x50')]['id']}})[_0x923c('0x1f')](handleEntityNotFound(_0x40973d,null))[_0x923c('0x1f')](function(_0x18865c){if(_0x18865c){_0x1a5681=_0x18865c;_0x57775e['model']=_[_0x923c('0x40')](db[_0x923c('0x58')]['rawAttributes']);_0x57775e[_0x923c('0x3f')]=_[_0x923c('0x40')](_0x269854['query']);_0x57775e[_0x923c('0x41')]=_['intersection'](_0x57775e[_0x923c('0x3d')],_0x57775e[_0x923c('0x3f')]);_0x3730d4[_0x923c('0x43')]=_[_0x923c('0x42')](_0x57775e[_0x923c('0x3d')],qs['fields'](_0x269854['query'][_0x923c('0x44')]));_0x3730d4['attributes']=_0x3730d4[_0x923c('0x43')][_0x923c('0x45')]?_0x3730d4[_0x923c('0x43')]:_0x57775e[_0x923c('0x3d')];_0x3730d4[_0x923c('0x47')]=qs[_0x923c('0x48')](_0x269854[_0x923c('0x3f')][_0x923c('0x48')]);_0x3730d4[_0x923c('0x49')]=qs[_0x923c('0x41')](_[_0x923c('0x4a')](_0x269854['query'],_0x57775e[_0x923c('0x41')]));if(_0x269854['query']['filter']){_0x3730d4[_0x923c('0x49')]=_[_0x923c('0x4d')](_0x3730d4[_0x923c('0x49')],{'$or':_[_0x923c('0x3e')](_0x3730d4[_0x923c('0x43')],function(_0x1dfd7a){var _0x31d498={};_0x31d498[_0x1dfd7a]={'$like':'%'+_0x269854[_0x923c('0x3f')]['filter']+'%'};return _0x31d498;})});}_0x3730d4=_[_0x923c('0x4d')]({},_0x3730d4,_0x269854[_0x923c('0x52')]);return _0x1a5681['getConfigurations'](_0x3730d4);}})[_0x923c('0x1f')](function(_0x1a96fa){if(_0x1a96fa){_0x3622f1=_0x1a96fa['length'];if(!_0x269854[_0x923c('0x3f')]['hasOwnProperty'](_0x923c('0x59'))){_0x3730d4['limit']=qs['limit'](_0x269854[_0x923c('0x3f')][_0x923c('0x2d')]);_0x3730d4[_0x923c('0x2c')]=qs[_0x923c('0x2c')](_0x269854[_0x923c('0x3f')][_0x923c('0x2c')]);}return _0x1a5681[_0x923c('0x56')](_0x3730d4);}})[_0x923c('0x1f')](function(_0x500e65){if(_0x500e65){return _0x500e65?{'count':_0x3622f1,'rows':_0x500e65}:null;}})[_0x923c('0x1f')](respondWithResult(_0x40973d,null))[_0x923c('0x28')](handleError(_0x40973d,null));};exports[_0x923c('0x5a')]=function(_0x293868,_0x5cca8e,_0x5cdcb1){if(_0x293868[_0x923c('0x55')]['id']){delete _0x293868[_0x923c('0x55')]['id'];}return db[_0x923c('0x38')][_0x923c('0x57')]({'where':{'id':_0x293868[_0x923c('0x50')]['id']}})[_0x923c('0x1f')](handleEntityNotFound(_0x5cca8e,null))[_0x923c('0x1f')](function(_0x17199a){if(_0x17199a){_0x293868[_0x923c('0x55')][_0x923c('0x5b')]=_0x17199a['id'];_0x293868[_0x923c('0x55')]['Subjects']=integrations[_0x923c('0x5c')](_0x293868['body'][_0x923c('0x5d')],_0x293868[_0x923c('0x55')][_0x923c('0x3b')]);_0x293868['body'][_0x923c('0x5e')]=integrations[_0x923c('0x5f')](_0x293868['body'][_0x923c('0x5d')],_0x293868['body'][_0x923c('0x3b')]);return db[_0x923c('0x58')][_0x923c('0x54')](_0x293868[_0x923c('0x55')],{'include':[{'model':db[_0x923c('0x60')],'as':_0x923c('0x61')},{'model':db[_0x923c('0x60')],'as':_0x923c('0x5e')}]});}return null;})[_0x923c('0x1f')](respondWithResult(_0x5cca8e,null))[_0x923c('0x28')](handleError(_0x5cca8e,null));};exports[_0x923c('0x62')]=function(_0x4625f6,_0xa0fec6,_0x34b6d8){var _0x590373='';var _0x56e462=['id',_0x923c('0x35'),'assigned_user_id','created_by',_0x923c('0x63'),'date_start','duration_hours',_0x923c('0x64'),_0x923c('0x65'),_0x923c('0x66'),_0x923c('0x67'),_0x923c('0x68')];return db[_0x923c('0x38')]['findOne']({'where':{'id':_0x4625f6[_0x923c('0x50')]['id']},'attributes':['id','username',_0x923c('0x69'),_0x923c('0x6a')]})['then'](handleEntityNotFound(_0xa0fec6,null))[_0x923c('0x1f')](function(_0x51649b){if(_0x51649b){_0x590373=_0x51649b[_0x923c('0x6a')];var _0x2fe0c5=_0x590373[_0x923c('0x6b')](-0x1);if(_0x2fe0c5==='/'){_0x590373=_0x590373['substring'](0x0,_0x590373[_0x923c('0x6c')](_0x2fe0c5));}return rp({'method':_0x923c('0x6d'),'uri':util['format'](_0x923c('0x6e'),_0x590373,_0x923c('0x6f')),'json':!![],'form':{'method':_0x923c('0x70'),'input_type':'JSON','response_type':_0x923c('0x71'),'rest_data':JSON[_0x923c('0x72')]({'user_auth':{'user_name':_0x51649b['username'],'password':_0x51649b[_0x923c('0x69')],'encryption':_0x923c('0x73')},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0x923c('0x1f')](function(_0x5c1c81){if(_0x5c1c81&&_0x5c1c81['name']!=='Invalid\x20Login'&&_0x5c1c81[_0x923c('0x35')]!==_0x923c('0x74')){return rp({'method':'POST','uri':util[_0x923c('0x75')]('%s%s',_0x590373,_0x923c('0x6f')),'json':!![],'form':{'method':'get_module_fields','input_type':_0x923c('0x71'),'response_type':_0x923c('0x71'),'rest_data':JSON[_0x923c('0x72')]({'session':_0x5c1c81['id'],'module_name':_0x923c('0x76')})}})[_0x923c('0x1f')](function(_0x185646){if(_0x185646){var _0x5bad4b=_['values'](_0x185646[_0x923c('0x77')]);_[_0x923c('0x78')](_0x5bad4b,function(_0xb8310){return _0x56e462[_0x923c('0x79')](_0xb8310[_0x923c('0x35')]);});return{'count':_0x5bad4b[_0x923c('0x45')],'rows':_[_0x923c('0x3e')](_0x5bad4b,function(_0xe20d33){return{'id':_0xe20d33[_0x923c('0x35')],'name':_0xe20d33[_0x923c('0x7a')],'custom':_[_0x923c('0x7b')](_0xe20d33['name'],'_c')?!![]:![],'options':_0xe20d33['options']?_[_0x923c('0x3e')](_['values'](_0xe20d33['options']),function(_0x294974){return{'name':_0x294974[_0x923c('0x7c')],'value':_0x294974['name']};}):[]};})};}})[_0x923c('0x1f')](respondWithResult(_0xa0fec6,null))[_0x923c('0x28')](function(_0x41a138){var _0x2a8e88=_0x4625f6['query']['test']?0x1f4:_0x41a138[_0x923c('0x7d')]||0x1f4;logger[_0x923c('0x24')](_0x923c('0x7e'),_0x923c('0x62'),_0x2a8e88,JSON[_0x923c('0x72')](_0x41a138));delete _0x41a138['name'];if(_0x2a8e88===0x191){_0x2a8e88=0x190;}_0xa0fec6[_0x923c('0x29')](_0x2a8e88)[_0x923c('0x36')](_0x4625f6[_0x923c('0x3f')][_0x923c('0x1a')]?{'message':_0x923c('0x7f'),'statusCode':_0x41a138[_0x923c('0x7d')]}:_0x41a138);});}else{var _0x3fe2e8=0x1f4;_0xa0fec6[_0x923c('0x29')](_0x3fe2e8)[_0x923c('0x36')]({'message':_0x923c('0x7f'),'statusCode':0x190});}});};