Built motion from commit (unavailable).|2.5.4
[motion2.git] / server / api / intDeskAccount / intDeskAccount.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 _0xe593=['format','application/json','authType','basic','headers','%s:%s','password','base64','_embedded','entries','active','label','statusCode','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../mysqldb','client','http','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','info','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','sendStatus','status','json','offset','limit','Content-Range','apply','reject','save','update','then','destroy','end','stack','name','send','map','rawAttributes','type','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','DeskAccount','include','findAll','rows','show','options','find','create','body','params','getConfigurations','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','DeskConfiguration','DeskField','getFields','priority','remoteUri','username','consumerSecret','token','tokenSecret','slice','substring','lastIndexOf','GET'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0xe593,0x85));var _0x3e59=function(_0x2724eb,_0x29ba09){_0x2724eb=_0x2724eb-0x0;var _0x199f23=_0xe593[_0x2724eb];return _0x199f23;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x3e59('0x0'));var rimraf=require(_0x3e59('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3e59('0x2'));var rp=require(_0x3e59('0x3'));var moment=require(_0x3e59('0x4'));var BPromise=require(_0x3e59('0x5'));var Mustache=require(_0x3e59('0x6'));var util=require(_0x3e59('0x7'));var path=require(_0x3e59('0x8'));var sox=require('sox');var csv=require(_0x3e59('0x9'));var ejs=require(_0x3e59('0xa'));var fs=require('fs');var _=require(_0x3e59('0xb'));var squel=require(_0x3e59('0xc'));var crypto=require(_0x3e59('0xd'));var jsforce=require(_0x3e59('0xe'));var deskjs=require(_0x3e59('0xf'));var toCsv=require(_0x3e59('0x9'));var querystring=require('querystring');var Papa=require(_0x3e59('0x10'));var Redis=require(_0x3e59('0x11'));var authService=require(_0x3e59('0x12'));var qs=require(_0x3e59('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3e59('0x14'));var logger=require('../../config/logger')(_0x3e59('0x15'));var utils=require('../../config/utils');var config=require(_0x3e59('0x16'));var db=require(_0x3e59('0x17'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require('jayson/promise');var client=jayson[_0x3e59('0x18')][_0x3e59('0x19')]({'port':0x232a});function checkPasswordPattern(_0x295c74,_0x3ef1b6,_0x46d110){if(_0x46d110){var _0x28f1e3=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x28f1e3[_0x3e59('0x1a')](_0x3ef1b6)){return _0x295c74;}else{throw new db[(_0x3e59('0x1b'))][(_0x3e59('0x1c'))](_0x3e59('0x1d'));}}else{return _0x295c74;}}function respondWithRpcPromise(_0x286307,_0xb8fa12,_0x55a71c,_0x59a173){return new BPromise(function(_0x751a12,_0x5de980){var _0x4eb495=_0x59a173||client;return _0x4eb495[_0x3e59('0x1e')](_0x286307,_0x55a71c)['then'](function(_0x497843){logger[_0x3e59('0x1f')](_0x3e59('0x20'),_0xb8fa12,_0x3e59('0x21'));logger[_0x3e59('0x22')]('DeskAccount,\x20%s,\x20%s,\x20%s',_0xb8fa12,_0x3e59('0x21'),JSON[_0x3e59('0x23')](_0x497843));if(_0x497843[_0x3e59('0x24')]){if(_0x497843[_0x3e59('0x24')][_0x3e59('0x25')]===0x1f4){logger[_0x3e59('0x24')](_0x3e59('0x20'),_0xb8fa12,_0x497843['error'][_0x3e59('0x26')]);return _0x5de980(_0x497843[_0x3e59('0x24')][_0x3e59('0x26')]);}logger[_0x3e59('0x24')](_0x3e59('0x20'),_0xb8fa12,_0x497843['error'][_0x3e59('0x26')]);return _0x751a12(_0x497843[_0x3e59('0x24')]['message']);}else{logger['info'](_0x3e59('0x20'),_0xb8fa12,_0x3e59('0x21'));_0x751a12(_0x497843[_0x3e59('0x27')]['message']);}})[_0x3e59('0x28')](function(_0x2675f0){logger['error'](_0x3e59('0x20'),_0xb8fa12,_0x2675f0);_0x5de980(_0x2675f0);});});}function respondWithStatusCode(_0x35d4a5,_0x185568){_0x185568=_0x185568||0xcc;return function(_0x32f4a5){if(_0x32f4a5){return _0x35d4a5[_0x3e59('0x29')](_0x185568);}return _0x35d4a5[_0x3e59('0x2a')](_0x185568)['end']();};}function respondWithResult(_0x122d75,_0x38acdf){_0x38acdf=_0x38acdf||0xc8;return function(_0x59588b){if(_0x59588b){return _0x122d75[_0x3e59('0x2a')](_0x38acdf)[_0x3e59('0x2b')](_0x59588b);}};}function respondWithFilteredResult(_0x338151,_0x34ee55){return function(_0x69daad){if(_0x69daad){var _0x4ddf9d=_0x69daad['count'],_0xc8a76f=_0x34ee55[_0x3e59('0x2c')],_0x3fd7c1=_0x34ee55[_0x3e59('0x2c')]+_0x34ee55[_0x3e59('0x2d')],_0x32c139;if(_0x3fd7c1>=_0x4ddf9d){_0x3fd7c1=_0x4ddf9d;_0x32c139=0xc8;}else{_0x32c139=0xce;}_0x338151[_0x3e59('0x2a')](_0x32c139);return _0x338151['set'](_0x3e59('0x2e'),_0xc8a76f+'-'+_0x3fd7c1+'/'+_0x4ddf9d)['json'](_0x69daad);}return null;};}function patchUpdates(_0x10366c){return function(_0xc16dfc){try{jsonpatch[_0x3e59('0x2f')](_0xc16dfc,_0x10366c,!![]);}catch(_0x33ff74){return BPromise[_0x3e59('0x30')](_0x33ff74);}return _0xc16dfc[_0x3e59('0x31')]();};}function saveUpdates(_0x5d1eff,_0x5beaaa){return function(_0xbd4c74){if(_0xbd4c74){return _0xbd4c74[_0x3e59('0x32')](_0x5d1eff)[_0x3e59('0x33')](function(_0x1f512a){return _0x1f512a;});}return null;};}function removeEntity(_0x3a4bb8,_0x1e5170){return function(_0x4bcd57){if(_0x4bcd57){return _0x4bcd57[_0x3e59('0x34')]()[_0x3e59('0x33')](function(){_0x3a4bb8['status'](0xcc)[_0x3e59('0x35')]();});}};}function handleEntityNotFound(_0x2aa06c,_0x22f34a){return function(_0x23050b){if(!_0x23050b){_0x2aa06c[_0x3e59('0x29')](0x194);}return _0x23050b;};}function handleError(_0x486f6e,_0x57628f){_0x57628f=_0x57628f||0x1f4;return function(_0x2fdaca){logger['error'](_0x2fdaca[_0x3e59('0x36')]);if(_0x2fdaca[_0x3e59('0x37')]){delete _0x2fdaca[_0x3e59('0x37')];}_0x486f6e[_0x3e59('0x2a')](_0x57628f)[_0x3e59('0x38')](_0x2fdaca);};}exports['index']=function(_0x29a704,_0x34424e){var _0xa81547={},_0x39ed63={},_0x317c98={'count':0x0,'rows':[]};var _0x4d3080=_[_0x3e59('0x39')](db['DeskAccount'][_0x3e59('0x3a')],function(_0xce96da){return{'name':_0xce96da['fieldName'],'type':_0xce96da[_0x3e59('0x3b')]['key']};});_0x39ed63[_0x3e59('0x3c')]=_[_0x3e59('0x39')](_0x4d3080,_0x3e59('0x37'));_0x39ed63['query']=_[_0x3e59('0x3d')](_0x29a704[_0x3e59('0x3e')]);_0x39ed63[_0x3e59('0x3f')]=_['intersection'](_0x39ed63[_0x3e59('0x3c')],_0x39ed63[_0x3e59('0x3e')]);_0xa81547[_0x3e59('0x40')]=_[_0x3e59('0x41')](_0x39ed63[_0x3e59('0x3c')],qs[_0x3e59('0x42')](_0x29a704['query'][_0x3e59('0x42')]));_0xa81547['attributes']=_0xa81547[_0x3e59('0x40')][_0x3e59('0x43')]?_0xa81547['attributes']:_0x39ed63['model'];if(!_0x29a704[_0x3e59('0x3e')][_0x3e59('0x44')](_0x3e59('0x45'))){_0xa81547['limit']=qs['limit'](_0x29a704[_0x3e59('0x3e')][_0x3e59('0x2d')]);_0xa81547[_0x3e59('0x2c')]=qs[_0x3e59('0x2c')](_0x29a704[_0x3e59('0x3e')][_0x3e59('0x2c')]);}_0xa81547[_0x3e59('0x46')]=qs['sort'](_0x29a704[_0x3e59('0x3e')][_0x3e59('0x47')]);_0xa81547[_0x3e59('0x48')]=qs[_0x3e59('0x3f')](_['pick'](_0x29a704[_0x3e59('0x3e')],_0x39ed63[_0x3e59('0x3f')]),_0x4d3080);if(_0x29a704[_0x3e59('0x3e')][_0x3e59('0x49')]){_0xa81547[_0x3e59('0x48')]=_[_0x3e59('0x4a')](_0xa81547[_0x3e59('0x48')],{'$or':_['map'](_0x4d3080,function(_0x5a8bbe){if(_0x5a8bbe[_0x3e59('0x3b')]!==_0x3e59('0x4b')){var _0x2283fb={};_0x2283fb[_0x5a8bbe[_0x3e59('0x37')]]={'$like':'%'+_0x29a704['query']['filter']+'%'};return _0x2283fb;}})});}_0xa81547=_[_0x3e59('0x4a')]({},_0xa81547,_0x29a704['options']);var _0x84888b={'where':_0xa81547['where']};return db[_0x3e59('0x4c')]['count'](_0x84888b)[_0x3e59('0x33')](function(_0x1dbc29){_0x317c98['count']=_0x1dbc29;if(_0x29a704[_0x3e59('0x3e')]['includeAll']){_0xa81547[_0x3e59('0x4d')]=[{'all':!![]}];}return db[_0x3e59('0x4c')][_0x3e59('0x4e')](_0xa81547);})[_0x3e59('0x33')](function(_0x48b2af){_0x317c98[_0x3e59('0x4f')]=_0x48b2af;return _0x317c98;})[_0x3e59('0x33')](respondWithFilteredResult(_0x34424e,_0xa81547))[_0x3e59('0x28')](handleError(_0x34424e,null));};exports[_0x3e59('0x50')]=function(_0x2612ec,_0x7425af){var _0x2949b4={'raw':![],'where':{'id':_0x2612ec['params']['id']}},_0x34bb05={};_0x34bb05['model']=_[_0x3e59('0x3d')](db[_0x3e59('0x4c')][_0x3e59('0x3a')]);_0x34bb05['query']=_[_0x3e59('0x3d')](_0x2612ec[_0x3e59('0x3e')]);_0x34bb05['filters']=_['intersection'](_0x34bb05[_0x3e59('0x3c')],_0x34bb05[_0x3e59('0x3e')]);_0x2949b4['attributes']=_['intersection'](_0x34bb05[_0x3e59('0x3c')],qs[_0x3e59('0x42')](_0x2612ec[_0x3e59('0x3e')]['fields']));_0x2949b4[_0x3e59('0x40')]=_0x2949b4['attributes'][_0x3e59('0x43')]?_0x2949b4[_0x3e59('0x40')]:_0x34bb05[_0x3e59('0x3c')];if(_0x2612ec[_0x3e59('0x3e')]['includeAll']){_0x2949b4[_0x3e59('0x4d')]=[{'all':!![]}];}_0x2949b4=_[_0x3e59('0x4a')]({},_0x2949b4,_0x2612ec[_0x3e59('0x51')]);return db[_0x3e59('0x4c')][_0x3e59('0x52')](_0x2949b4)['then'](handleEntityNotFound(_0x7425af,null))['then'](respondWithResult(_0x7425af,null))['catch'](handleError(_0x7425af,null));};exports[_0x3e59('0x53')]=function(_0x2b9b3e,_0x21fd9e){return db[_0x3e59('0x4c')][_0x3e59('0x53')](_0x2b9b3e[_0x3e59('0x54')],{})[_0x3e59('0x33')](respondWithResult(_0x21fd9e,0xc9))[_0x3e59('0x28')](handleError(_0x21fd9e,null));};exports[_0x3e59('0x32')]=function(_0x5bd5d4,_0x374976){if(_0x5bd5d4[_0x3e59('0x54')]['id']){delete _0x5bd5d4['body']['id'];}return db[_0x3e59('0x4c')][_0x3e59('0x52')]({'where':{'id':_0x5bd5d4[_0x3e59('0x55')]['id']}})[_0x3e59('0x33')](handleEntityNotFound(_0x374976,null))[_0x3e59('0x33')](saveUpdates(_0x5bd5d4['body'],null))[_0x3e59('0x33')](respondWithResult(_0x374976,null))[_0x3e59('0x28')](handleError(_0x374976,null));};exports[_0x3e59('0x34')]=function(_0xe489b3,_0x551687){return db['DeskAccount'][_0x3e59('0x52')]({'where':{'id':_0xe489b3[_0x3e59('0x55')]['id']}})[_0x3e59('0x33')](handleEntityNotFound(_0x551687,null))['then'](removeEntity(_0x551687,null))[_0x3e59('0x28')](handleError(_0x551687,null));};exports[_0x3e59('0x56')]=function(_0x1b99d2,_0x5d817d,_0x536dd0){var _0x893b17={};var _0x12d7c6={};var _0x37d006;var _0xe93026;return db['DeskAccount'][_0x3e59('0x57')]({'where':{'id':_0x1b99d2[_0x3e59('0x55')]['id']}})[_0x3e59('0x33')](handleEntityNotFound(_0x5d817d,null))[_0x3e59('0x33')](function(_0x56cce6){if(_0x56cce6){_0x37d006=_0x56cce6;_0x12d7c6['model']=_[_0x3e59('0x3d')](db['DeskConfiguration'][_0x3e59('0x3a')]);_0x12d7c6[_0x3e59('0x3e')]=_[_0x3e59('0x3d')](_0x1b99d2[_0x3e59('0x3e')]);_0x12d7c6['filters']=_['intersection'](_0x12d7c6[_0x3e59('0x3c')],_0x12d7c6[_0x3e59('0x3e')]);_0x893b17['attributes']=_[_0x3e59('0x41')](_0x12d7c6['model'],qs['fields'](_0x1b99d2['query'][_0x3e59('0x42')]));_0x893b17['attributes']=_0x893b17[_0x3e59('0x40')][_0x3e59('0x43')]?_0x893b17['attributes']:_0x12d7c6[_0x3e59('0x3c')];_0x893b17[_0x3e59('0x46')]=qs['sort'](_0x1b99d2[_0x3e59('0x3e')][_0x3e59('0x47')]);_0x893b17[_0x3e59('0x48')]=qs[_0x3e59('0x3f')](_['pick'](_0x1b99d2[_0x3e59('0x3e')],_0x12d7c6[_0x3e59('0x3f')]));if(_0x1b99d2['query'][_0x3e59('0x49')]){_0x893b17[_0x3e59('0x48')]=_[_0x3e59('0x4a')](_0x893b17[_0x3e59('0x48')],{'$or':_[_0x3e59('0x39')](_0x893b17[_0x3e59('0x40')],function(_0x4163a5){var _0xd31d59={};_0xd31d59[_0x4163a5]={'$like':'%'+_0x1b99d2[_0x3e59('0x3e')][_0x3e59('0x49')]+'%'};return _0xd31d59;})});}_0x893b17=_[_0x3e59('0x4a')]({},_0x893b17,_0x1b99d2[_0x3e59('0x51')]);return _0x37d006[_0x3e59('0x56')](_0x893b17);}})['then'](function(_0xf9e2af){if(_0xf9e2af){_0xe93026=_0xf9e2af[_0x3e59('0x43')];if(!_0x1b99d2[_0x3e59('0x3e')][_0x3e59('0x44')]('nolimit')){_0x893b17[_0x3e59('0x2d')]=qs['limit'](_0x1b99d2['query'][_0x3e59('0x2d')]);_0x893b17[_0x3e59('0x2c')]=qs[_0x3e59('0x2c')](_0x1b99d2[_0x3e59('0x3e')][_0x3e59('0x2c')]);}return _0x37d006['getConfigurations'](_0x893b17);}})[_0x3e59('0x33')](function(_0x1a6244){if(_0x1a6244){return _0x1a6244?{'count':_0xe93026,'rows':_0x1a6244}:null;}})[_0x3e59('0x33')](respondWithResult(_0x5d817d,null))[_0x3e59('0x28')](handleError(_0x5d817d,null));};exports['addConfiguration']=function(_0x20455a,_0x43e092,_0x25d441){if(_0x20455a[_0x3e59('0x54')]['id']){delete _0x20455a['body']['id'];}return db['DeskAccount'][_0x3e59('0x57')]({'where':{'id':_0x20455a['params']['id']}})[_0x3e59('0x33')](handleEntityNotFound(_0x43e092,null))[_0x3e59('0x33')](function(_0x405e3d){if(_0x405e3d){_0x20455a[_0x3e59('0x54')][_0x3e59('0x58')]=_0x405e3d['id'];_0x20455a[_0x3e59('0x54')][_0x3e59('0x59')]=integrations[_0x3e59('0x5a')](_0x20455a[_0x3e59('0x54')][_0x3e59('0x5b')],_0x20455a[_0x3e59('0x54')][_0x3e59('0x3b')]);_0x20455a['body'][_0x3e59('0x5c')]=integrations[_0x3e59('0x5d')](_0x20455a[_0x3e59('0x54')][_0x3e59('0x5b')],_0x20455a[_0x3e59('0x54')][_0x3e59('0x3b')]);return db[_0x3e59('0x5e')][_0x3e59('0x53')](_0x20455a[_0x3e59('0x54')],{'include':[{'model':db['DeskField'],'as':_0x3e59('0x59')},{'model':db[_0x3e59('0x5f')],'as':_0x3e59('0x5c')}]});}return null;})[_0x3e59('0x33')](respondWithResult(_0x43e092,null))['catch'](handleError(_0x43e092,null));};exports[_0x3e59('0x60')]=function(_0x269949,_0x9b0903,_0x155d34){var _0x5069a5=[{'name':'priority','label':_0x3e59('0x61'),'custom':![],'options':[{'name':0x1,'value':0x1},{'name':0x2,'value':0x2},{'name':0x3,'value':0x3},{'name':0x4,'value':0x4},{'name':0x5,'value':0x5},{'name':0x6,'value':0x6},{'name':0x7,'value':0x7},{'name':0x8,'value':0x8},{'name':0x9,'value':0x9},{'name':0xa,'value':0xa}]}];var _0x11c69a='';return db['DeskAccount']['findOne']({'where':{'id':_0x269949[_0x3e59('0x55')]['id']},'attributes':['id',_0x3e59('0x62'),'authType',_0x3e59('0x63'),'password','consumerKey',_0x3e59('0x64'),_0x3e59('0x65'),_0x3e59('0x66')]})[_0x3e59('0x33')](handleEntityNotFound(_0x9b0903,null))['then'](function(_0x2a5110){if(_0x2a5110){_0x11c69a=_0x2a5110['remoteUri'];var _0x108a44=_0x11c69a[_0x3e59('0x67')](-0x1);if(_0x108a44==='/'){_0x11c69a=_0x11c69a[_0x3e59('0x68')](0x0,_0x11c69a[_0x3e59('0x69')](_0x108a44));}var _0x3c0360={'method':_0x3e59('0x6a'),'uri':util[_0x3e59('0x6b')]('%s/custom_fields',_0x11c69a),'headers':{'Content-Type':_0x3e59('0x6c'),'Accept':_0x3e59('0x6c')},'json':!![]};if(_0x2a5110[_0x3e59('0x6d')]===_0x3e59('0x6e')){_0x3c0360[_0x3e59('0x6f')]['Authorization']=util[_0x3e59('0x6b')]('Basic\x20%s',new Buffer(util[_0x3e59('0x6b')](_0x3e59('0x70'),_0x2a5110[_0x3e59('0x63')],_0x2a5110[_0x3e59('0x71')]))['toString'](_0x3e59('0x72')));}return rp(_0x3c0360)[_0x3e59('0x33')](function(_0x53ca1d){return _0x5069a5['concat'](_['map'](_0x53ca1d[_0x3e59('0x73')][_0x3e59('0x74')],function(_0x384548){return{'id':_0x384548[_0x3e59('0x37')],'name':_0x384548[_0x3e59('0x37')],'type':_0x384548['type'],'active':_0x384548[_0x3e59('0x75')],'label':_0x384548[_0x3e59('0x76')],'custom':!![]};}));});}})['then'](function(_0x12636d){return{'count':_0x12636d[_0x3e59('0x43')],'rows':_0x12636d};})[_0x3e59('0x33')](respondWithResult(_0x9b0903,null))[_0x3e59('0x28')](function(_0x7e69a0){var _0x45bee6=_0x269949['query']['test']?0x1f4:_0x7e69a0[_0x3e59('0x77')]||0x1f4;logger[_0x3e59('0x24')]('getFields,\x20%s,\x20%s,\x20%s',_0x3e59('0x60'),_0x45bee6,JSON[_0x3e59('0x23')](_0x7e69a0));delete _0x7e69a0[_0x3e59('0x37')];if(_0x45bee6===0x191){_0x45bee6=0x190;}_0x9b0903[_0x3e59('0x2a')](_0x45bee6)['send'](_0x269949[_0x3e59('0x3e')][_0x3e59('0x1a')]?{'message':'Wrong\x20credentials','statusCode':_0x7e69a0[_0x3e59('0x77')]}:_0x7e69a0);});};