2b580f13389cd10c5b7fdbe54c80a4f45c704d2d
[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 _0x0035=['Descriptions','getDescriptions','Subjects','DeskField','getFields','priority','authType','username','consumerKey','consumerSecret','tokenSecret','remoteUri','slice','substring','format','application/json','basic','headers','Authorization','Basic\x20%s','%s:%s','concat','_embedded','entries','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','send','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','test','request','then','info','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','error','code','message','catch','sendStatus','end','status','offset','limit','set','Content-Range','apply','reject','update','destroy','stack','index','map','DeskAccount','rawAttributes','fieldName','type','key','query','intersection','model','fields','attributes','hasOwnProperty','order','sort','where','filters','pick','filter','VIRTUAL','name','merge','count','include','findAll','show','keys','length','includeAll','options','find','create','body','params','getConfigurations','findOne','DeskConfiguration','nolimit','addConfiguration','channel'];(function(_0x24392f,_0x15a3e5){var _0x591e33=function(_0xe0ccea){while(--_0xe0ccea){_0x24392f['push'](_0x24392f['shift']());}};_0x591e33(++_0x15a3e5);}(_0x0035,0x18a));var _0x5003=function(_0x3776b4,_0x19a1e3){_0x3776b4=_0x3776b4-0x0;var _0x1636d9=_0x0035[_0x3776b4];return _0x1636d9;};'use strict';var pdf=require(_0x5003('0x0'));var emlformat=require(_0x5003('0x1'));var rimraf=require(_0x5003('0x2'));var zipdir=require(_0x5003('0x3'));var jsonpatch=require(_0x5003('0x4'));var rp=require(_0x5003('0x5'));var moment=require(_0x5003('0x6'));var BPromise=require(_0x5003('0x7'));var Mustache=require(_0x5003('0x8'));var util=require(_0x5003('0x9'));var path=require(_0x5003('0xa'));var sox=require('sox');var csv=require(_0x5003('0xb'));var ejs=require(_0x5003('0xc'));var fs=require('fs');var _=require(_0x5003('0xd'));var squel=require('squel');var crypto=require(_0x5003('0xe'));var jsforce=require(_0x5003('0xf'));var deskjs=require(_0x5003('0x10'));var toCsv=require(_0x5003('0xb'));var querystring=require(_0x5003('0x11'));var Papa=require(_0x5003('0x12'));var Redis=require(_0x5003('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x5003('0x14'));var as=require(_0x5003('0x15'));var hardwareService=require(_0x5003('0x16'));var logger=require(_0x5003('0x17'))('api');var utils=require(_0x5003('0x18'));var config=require(_0x5003('0x19'));var db=require(_0x5003('0x1a'))['db'];var integrations=require(_0x5003('0x1b'));var jayson=require(_0x5003('0x1c'));var client=jayson[_0x5003('0x1d')][_0x5003('0x1e')]({'port':0x232a});function checkPasswordPattern(_0x1e56ef,_0x1b2e46,_0x35d207){if(_0x35d207){var _0x161b27=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x161b27[_0x5003('0x1f')](_0x1b2e46)){return _0x1e56ef;}else{throw new db['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~!@#$%^&-_=+[{]}.');}}else{return _0x1e56ef;}}function respondWithRpcPromise(_0x13c9db,_0x47250c,_0x29dabc,_0x2b9e9f){return new BPromise(function(_0xea46a3,_0x5a1890){var _0x3f267d=_0x2b9e9f||client;return _0x3f267d[_0x5003('0x20')](_0x13c9db,_0x29dabc)[_0x5003('0x21')](function(_0x1d415d){logger[_0x5003('0x22')](_0x5003('0x23'),_0x47250c,_0x5003('0x24'));logger[_0x5003('0x25')]('DeskAccount,\x20%s,\x20%s,\x20%s',_0x47250c,_0x5003('0x24'),JSON['stringify'](_0x1d415d));if(_0x1d415d[_0x5003('0x26')]){if(_0x1d415d[_0x5003('0x26')][_0x5003('0x27')]===0x1f4){logger['error'](_0x5003('0x23'),_0x47250c,_0x1d415d[_0x5003('0x26')][_0x5003('0x28')]);return _0x5a1890(_0x1d415d[_0x5003('0x26')][_0x5003('0x28')]);}logger[_0x5003('0x26')](_0x5003('0x23'),_0x47250c,_0x1d415d[_0x5003('0x26')][_0x5003('0x28')]);return _0xea46a3(_0x1d415d[_0x5003('0x26')][_0x5003('0x28')]);}else{logger[_0x5003('0x22')]('DeskAccount,\x20%s,\x20%s',_0x47250c,_0x5003('0x24'));_0xea46a3(_0x1d415d['result'][_0x5003('0x28')]);}})[_0x5003('0x29')](function(_0x448917){logger['error']('DeskAccount,\x20%s,\x20%s',_0x47250c,_0x448917);_0x5a1890(_0x448917);});});}function respondWithStatusCode(_0x1e5761,_0x28406e){_0x28406e=_0x28406e||0xcc;return function(_0x398c4a){if(_0x398c4a){return _0x1e5761[_0x5003('0x2a')](_0x28406e);}return _0x1e5761['status'](_0x28406e)[_0x5003('0x2b')]();};}function respondWithResult(_0x3af1f6,_0x7f6ad2){_0x7f6ad2=_0x7f6ad2||0xc8;return function(_0x2acc04){if(_0x2acc04){return _0x3af1f6[_0x5003('0x2c')](_0x7f6ad2)['json'](_0x2acc04);}};}function respondWithFilteredResult(_0x3a9fe3,_0x1f00db){return function(_0x3c0548){if(_0x3c0548){var _0x1888af=_0x3c0548['count'],_0x27349b=_0x1f00db[_0x5003('0x2d')],_0x853bee=_0x1f00db[_0x5003('0x2d')]+_0x1f00db[_0x5003('0x2e')],_0x4ff1ef;if(_0x853bee>=_0x1888af){_0x853bee=_0x1888af;_0x4ff1ef=0xc8;}else{_0x4ff1ef=0xce;}_0x3a9fe3[_0x5003('0x2c')](_0x4ff1ef);return _0x3a9fe3[_0x5003('0x2f')](_0x5003('0x30'),_0x27349b+'-'+_0x853bee+'/'+_0x1888af)['json'](_0x3c0548);}return null;};}function patchUpdates(_0x16466f){return function(_0x5b38a0){try{jsonpatch[_0x5003('0x31')](_0x5b38a0,_0x16466f,!![]);}catch(_0x43e333){return BPromise[_0x5003('0x32')](_0x43e333);}return _0x5b38a0['save']();};}function saveUpdates(_0x3f6074,_0x40297c){return function(_0x544797){if(_0x544797){return _0x544797[_0x5003('0x33')](_0x3f6074)['then'](function(_0x4c8fb6){return _0x4c8fb6;});}return null;};}function removeEntity(_0x2e0f32,_0x225cdb){return function(_0x4787b0){if(_0x4787b0){return _0x4787b0[_0x5003('0x34')]()['then'](function(){_0x2e0f32[_0x5003('0x2c')](0xcc)[_0x5003('0x2b')]();});}};}function handleEntityNotFound(_0x81486e,_0x21e191){return function(_0x453241){if(!_0x453241){_0x81486e['sendStatus'](0x194);}return _0x453241;};}function handleError(_0xa22731,_0x2a4af8){_0x2a4af8=_0x2a4af8||0x1f4;return function(_0x287530){logger[_0x5003('0x26')](_0x287530[_0x5003('0x35')]);if(_0x287530['name']){delete _0x287530['name'];}_0xa22731[_0x5003('0x2c')](_0x2a4af8)['send'](_0x287530);};}exports[_0x5003('0x36')]=function(_0x446334,_0x556d03){var _0x5d4f8f={},_0xddde9f={},_0x9e126f={'count':0x0,'rows':[]};var _0x11c0d9=_[_0x5003('0x37')](db[_0x5003('0x38')][_0x5003('0x39')],function(_0x4c5b1c){return{'name':_0x4c5b1c[_0x5003('0x3a')],'type':_0x4c5b1c[_0x5003('0x3b')][_0x5003('0x3c')]};});_0xddde9f['model']=_['map'](_0x11c0d9,'name');_0xddde9f['query']=_['keys'](_0x446334[_0x5003('0x3d')]);_0xddde9f['filters']=_[_0x5003('0x3e')](_0xddde9f[_0x5003('0x3f')],_0xddde9f[_0x5003('0x3d')]);_0x5d4f8f['attributes']=_[_0x5003('0x3e')](_0xddde9f['model'],qs[_0x5003('0x40')](_0x446334[_0x5003('0x3d')][_0x5003('0x40')]));_0x5d4f8f[_0x5003('0x41')]=_0x5d4f8f[_0x5003('0x41')]['length']?_0x5d4f8f[_0x5003('0x41')]:_0xddde9f[_0x5003('0x3f')];if(!_0x446334[_0x5003('0x3d')][_0x5003('0x42')]('nolimit')){_0x5d4f8f[_0x5003('0x2e')]=qs[_0x5003('0x2e')](_0x446334[_0x5003('0x3d')]['limit']);_0x5d4f8f[_0x5003('0x2d')]=qs['offset'](_0x446334[_0x5003('0x3d')][_0x5003('0x2d')]);}_0x5d4f8f[_0x5003('0x43')]=qs[_0x5003('0x44')](_0x446334['query'][_0x5003('0x44')]);_0x5d4f8f[_0x5003('0x45')]=qs[_0x5003('0x46')](_[_0x5003('0x47')](_0x446334[_0x5003('0x3d')],_0xddde9f[_0x5003('0x46')]),_0x11c0d9);if(_0x446334[_0x5003('0x3d')][_0x5003('0x48')]){_0x5d4f8f['where']=_['merge'](_0x5d4f8f[_0x5003('0x45')],{'$or':_[_0x5003('0x37')](_0x11c0d9,function(_0x163c06){if(_0x163c06[_0x5003('0x3b')]!==_0x5003('0x49')){var _0x345160={};_0x345160[_0x163c06[_0x5003('0x4a')]]={'$like':'%'+_0x446334[_0x5003('0x3d')][_0x5003('0x48')]+'%'};return _0x345160;}})});}_0x5d4f8f=_[_0x5003('0x4b')]({},_0x5d4f8f,_0x446334['options']);var _0x267217={'where':_0x5d4f8f['where']};return db[_0x5003('0x38')][_0x5003('0x4c')](_0x267217)['then'](function(_0x1aa90e){_0x9e126f['count']=_0x1aa90e;if(_0x446334[_0x5003('0x3d')]['includeAll']){_0x5d4f8f[_0x5003('0x4d')]=[{'all':!![]}];}return db[_0x5003('0x38')][_0x5003('0x4e')](_0x5d4f8f);})[_0x5003('0x21')](function(_0x40e8a8){_0x9e126f['rows']=_0x40e8a8;return _0x9e126f;})['then'](respondWithFilteredResult(_0x556d03,_0x5d4f8f))['catch'](handleError(_0x556d03,null));};exports[_0x5003('0x4f')]=function(_0x49eb55,_0x3ba76c){var _0x59ffbf={'raw':![],'where':{'id':_0x49eb55['params']['id']}},_0x338412={};_0x338412[_0x5003('0x3f')]=_[_0x5003('0x50')](db['DeskAccount'][_0x5003('0x39')]);_0x338412[_0x5003('0x3d')]=_['keys'](_0x49eb55[_0x5003('0x3d')]);_0x338412[_0x5003('0x46')]=_['intersection'](_0x338412[_0x5003('0x3f')],_0x338412[_0x5003('0x3d')]);_0x59ffbf[_0x5003('0x41')]=_[_0x5003('0x3e')](_0x338412[_0x5003('0x3f')],qs[_0x5003('0x40')](_0x49eb55[_0x5003('0x3d')][_0x5003('0x40')]));_0x59ffbf['attributes']=_0x59ffbf['attributes'][_0x5003('0x51')]?_0x59ffbf[_0x5003('0x41')]:_0x338412[_0x5003('0x3f')];if(_0x49eb55['query'][_0x5003('0x52')]){_0x59ffbf[_0x5003('0x4d')]=[{'all':!![]}];}_0x59ffbf=_['merge']({},_0x59ffbf,_0x49eb55[_0x5003('0x53')]);return db['DeskAccount'][_0x5003('0x54')](_0x59ffbf)[_0x5003('0x21')](handleEntityNotFound(_0x3ba76c,null))['then'](respondWithResult(_0x3ba76c,null))[_0x5003('0x29')](handleError(_0x3ba76c,null));};exports[_0x5003('0x55')]=function(_0x529c0c,_0x5ebe0c){return db['DeskAccount'][_0x5003('0x55')](_0x529c0c[_0x5003('0x56')],{})[_0x5003('0x21')](respondWithResult(_0x5ebe0c,0xc9))[_0x5003('0x29')](handleError(_0x5ebe0c,null));};exports[_0x5003('0x33')]=function(_0xa98417,_0x239c9a){if(_0xa98417[_0x5003('0x56')]['id']){delete _0xa98417[_0x5003('0x56')]['id'];}return db['DeskAccount'][_0x5003('0x54')]({'where':{'id':_0xa98417[_0x5003('0x57')]['id']}})[_0x5003('0x21')](handleEntityNotFound(_0x239c9a,null))[_0x5003('0x21')](saveUpdates(_0xa98417[_0x5003('0x56')],null))['then'](respondWithResult(_0x239c9a,null))[_0x5003('0x29')](handleError(_0x239c9a,null));};exports[_0x5003('0x34')]=function(_0x4b0aee,_0x238e34){return db['DeskAccount'][_0x5003('0x54')]({'where':{'id':_0x4b0aee[_0x5003('0x57')]['id']}})[_0x5003('0x21')](handleEntityNotFound(_0x238e34,null))[_0x5003('0x21')](removeEntity(_0x238e34,null))[_0x5003('0x29')](handleError(_0x238e34,null));};exports[_0x5003('0x58')]=function(_0xf04d31,_0x5ade0a,_0x39c229){var _0x4a5e09={};var _0x303ce1={};var _0x1f8ee1;var _0x1bc438;return db[_0x5003('0x38')][_0x5003('0x59')]({'where':{'id':_0xf04d31[_0x5003('0x57')]['id']}})[_0x5003('0x21')](handleEntityNotFound(_0x5ade0a,null))[_0x5003('0x21')](function(_0x2461de){if(_0x2461de){_0x1f8ee1=_0x2461de;_0x303ce1[_0x5003('0x3f')]=_['keys'](db[_0x5003('0x5a')][_0x5003('0x39')]);_0x303ce1[_0x5003('0x3d')]=_[_0x5003('0x50')](_0xf04d31['query']);_0x303ce1[_0x5003('0x46')]=_['intersection'](_0x303ce1[_0x5003('0x3f')],_0x303ce1[_0x5003('0x3d')]);_0x4a5e09['attributes']=_['intersection'](_0x303ce1[_0x5003('0x3f')],qs['fields'](_0xf04d31['query'][_0x5003('0x40')]));_0x4a5e09[_0x5003('0x41')]=_0x4a5e09[_0x5003('0x41')][_0x5003('0x51')]?_0x4a5e09[_0x5003('0x41')]:_0x303ce1[_0x5003('0x3f')];_0x4a5e09[_0x5003('0x43')]=qs[_0x5003('0x44')](_0xf04d31[_0x5003('0x3d')][_0x5003('0x44')]);_0x4a5e09[_0x5003('0x45')]=qs['filters'](_['pick'](_0xf04d31[_0x5003('0x3d')],_0x303ce1[_0x5003('0x46')]));if(_0xf04d31[_0x5003('0x3d')][_0x5003('0x48')]){_0x4a5e09[_0x5003('0x45')]=_[_0x5003('0x4b')](_0x4a5e09[_0x5003('0x45')],{'$or':_[_0x5003('0x37')](_0x4a5e09[_0x5003('0x41')],function(_0x518870){var _0x4ff459={};_0x4ff459[_0x518870]={'$like':'%'+_0xf04d31[_0x5003('0x3d')]['filter']+'%'};return _0x4ff459;})});}_0x4a5e09=_[_0x5003('0x4b')]({},_0x4a5e09,_0xf04d31[_0x5003('0x53')]);return _0x1f8ee1[_0x5003('0x58')](_0x4a5e09);}})[_0x5003('0x21')](function(_0x4ee8fc){if(_0x4ee8fc){_0x1bc438=_0x4ee8fc[_0x5003('0x51')];if(!_0xf04d31[_0x5003('0x3d')][_0x5003('0x42')](_0x5003('0x5b'))){_0x4a5e09[_0x5003('0x2e')]=qs[_0x5003('0x2e')](_0xf04d31[_0x5003('0x3d')][_0x5003('0x2e')]);_0x4a5e09['offset']=qs[_0x5003('0x2d')](_0xf04d31[_0x5003('0x3d')][_0x5003('0x2d')]);}return _0x1f8ee1[_0x5003('0x58')](_0x4a5e09);}})['then'](function(_0x3d787a){if(_0x3d787a){return _0x3d787a?{'count':_0x1bc438,'rows':_0x3d787a}:null;}})[_0x5003('0x21')](respondWithResult(_0x5ade0a,null))[_0x5003('0x29')](handleError(_0x5ade0a,null));};exports[_0x5003('0x5c')]=function(_0xc3408,_0x577d0a,_0x4cbe68){if(_0xc3408[_0x5003('0x56')]['id']){delete _0xc3408[_0x5003('0x56')]['id'];}return db[_0x5003('0x38')]['findOne']({'where':{'id':_0xc3408[_0x5003('0x57')]['id']}})[_0x5003('0x21')](handleEntityNotFound(_0x577d0a,null))[_0x5003('0x21')](function(_0x302c2c){if(_0x302c2c){_0xc3408[_0x5003('0x56')]['AccountId']=_0x302c2c['id'];_0xc3408[_0x5003('0x56')]['Subjects']=integrations['getSubjects'](_0xc3408[_0x5003('0x56')][_0x5003('0x5d')],_0xc3408[_0x5003('0x56')]['type']);_0xc3408[_0x5003('0x56')][_0x5003('0x5e')]=integrations[_0x5003('0x5f')](_0xc3408[_0x5003('0x56')][_0x5003('0x5d')],_0xc3408[_0x5003('0x56')][_0x5003('0x3b')]);return db[_0x5003('0x5a')][_0x5003('0x55')](_0xc3408[_0x5003('0x56')],{'include':[{'model':db['DeskField'],'as':_0x5003('0x60')},{'model':db[_0x5003('0x61')],'as':_0x5003('0x5e')}]});}return null;})[_0x5003('0x21')](respondWithResult(_0x577d0a,null))[_0x5003('0x29')](handleError(_0x577d0a,null));};exports[_0x5003('0x62')]=function(_0x3eb589,_0x39e3ee,_0x53955e){var _0x5d4bae=[{'name':_0x5003('0x63'),'label':_0x5003('0x63'),'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 _0x3d4530='';return db[_0x5003('0x38')][_0x5003('0x59')]({'where':{'id':_0x3eb589[_0x5003('0x57')]['id']},'attributes':['id','remoteUri',_0x5003('0x64'),_0x5003('0x65'),'password',_0x5003('0x66'),_0x5003('0x67'),'token',_0x5003('0x68')]})['then'](handleEntityNotFound(_0x39e3ee,null))[_0x5003('0x21')](function(_0x293ce8){if(_0x293ce8){_0x3d4530=_0x293ce8[_0x5003('0x69')];var _0x3b64ea=_0x3d4530[_0x5003('0x6a')](-0x1);if(_0x3b64ea==='/'){_0x3d4530=_0x3d4530[_0x5003('0x6b')](0x0,_0x3d4530['lastIndexOf'](_0x3b64ea));}var _0x2bd24c={'method':'GET','uri':util[_0x5003('0x6c')]('%s/custom_fields',_0x3d4530),'headers':{'Content-Type':'application/json','Accept':_0x5003('0x6d')},'json':!![]};if(_0x293ce8[_0x5003('0x64')]===_0x5003('0x6e')){_0x2bd24c[_0x5003('0x6f')][_0x5003('0x70')]=util['format'](_0x5003('0x71'),new Buffer(util['format'](_0x5003('0x72'),_0x293ce8[_0x5003('0x65')],_0x293ce8['password']))['toString']('base64'));}return rp(_0x2bd24c)[_0x5003('0x21')](function(_0x2f7d70){return _0x5d4bae[_0x5003('0x73')](_[_0x5003('0x37')](_0x2f7d70[_0x5003('0x74')][_0x5003('0x75')],function(_0x476a26){return{'id':_0x476a26[_0x5003('0x4a')],'name':_0x476a26[_0x5003('0x4a')],'type':_0x476a26[_0x5003('0x3b')],'active':_0x476a26['active'],'label':_0x476a26['label'],'custom':!![]};}));});}})[_0x5003('0x21')](function(_0x130e32){return{'count':_0x130e32['length'],'rows':_0x130e32};})['then'](respondWithResult(_0x39e3ee,null))[_0x5003('0x29')](function(_0x345d1b){var _0x34aa30=_0x3eb589[_0x5003('0x3d')][_0x5003('0x1f')]?0x1f4:_0x345d1b[_0x5003('0x76')]||0x1f4;logger[_0x5003('0x26')](_0x5003('0x77'),_0x5003('0x62'),_0x34aa30,JSON[_0x5003('0x78')](_0x345d1b));delete _0x345d1b[_0x5003('0x4a')];if(_0x34aa30===0x191){_0x34aa30=0x190;}_0x39e3ee[_0x5003('0x2c')](_0x34aa30)[_0x5003('0x79')](_0x3eb589[_0x5003('0x3d')][_0x5003('0x1f')]?{'message':'Wrong\x20credentials','statusCode':_0x345d1b['statusCode']}:_0x345d1b);});};