Built motion from commit (unavailable).|2.5.2
[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 _0xf419=['find','create','body','update','params','getConfigurations','findOne','nolimit','addConfiguration','AccountId','getSubjects','channel','Descriptions','getDescriptions','DeskField','Subjects','getFields','priority','remoteUri','username','password','consumerKey','consumerSecret','token','tokenSecret','substring','lastIndexOf','GET','format','%s/custom_fields','application/json','authType','Authorization','toString','base64','_embedded','label','statusCode','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','html-pdf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','client','ValidationError','then','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','DeskAccount,\x20%s,\x20%s','message','info','result','catch','sendStatus','status','end','offset','limit','set','Content-Range','destroy','stack','name','send','map','DeskAccount','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','rows','attributes'];(function(_0x81b6d,_0x370ac1){var _0x181867=function(_0x352e3b){while(--_0x352e3b){_0x81b6d['push'](_0x81b6d['shift']());}};_0x181867(++_0x370ac1);}(_0xf419,0x10f));var _0x9f41=function(_0x48cd42,_0x27de33){_0x48cd42=_0x48cd42-0x0;var _0x127686=_0xf419[_0x48cd42];return _0x127686;};'use strict';var pdf=require(_0x9f41('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x9f41('0x1'));var jsonpatch=require(_0x9f41('0x2'));var rp=require(_0x9f41('0x3'));var moment=require(_0x9f41('0x4'));var BPromise=require(_0x9f41('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x9f41('0x6'));var sox=require('sox');var csv=require(_0x9f41('0x7'));var ejs=require(_0x9f41('0x8'));var fs=require('fs');var _=require(_0x9f41('0x9'));var squel=require('squel');var crypto=require(_0x9f41('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x9f41('0xb'));var toCsv=require(_0x9f41('0x7'));var querystring=require(_0x9f41('0xc'));var Papa=require(_0x9f41('0xd'));var Redis=require(_0x9f41('0xe'));var authService=require(_0x9f41('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x9f41('0x10'));var hardwareService=require(_0x9f41('0x11'));var logger=require(_0x9f41('0x12'))(_0x9f41('0x13'));var utils=require(_0x9f41('0x14'));var config=require(_0x9f41('0x15'));var db=require(_0x9f41('0x16'))['db'];var integrations=require(_0x9f41('0x17'));var jayson=require('jayson/promise');var client=jayson[_0x9f41('0x18')]['http']({'port':0x232a});function checkPasswordPattern(_0x296c0b,_0x54cab1,_0xa146c3){if(_0xa146c3){var _0x2102c9=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x2102c9['test'](_0x54cab1)){return _0x296c0b;}else{throw new db['Sequelize'][(_0x9f41('0x19'))]('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 _0x296c0b;}}function respondWithRpcPromise(_0x3d600b,_0xb3e41c,_0x270ff1,_0xf6177b){return new BPromise(function(_0xde6b20,_0xc80f8f){var _0x446199=_0xf6177b||client;return _0x446199['request'](_0x3d600b,_0x270ff1)[_0x9f41('0x1a')](function(_0x4e66df){logger['info']('DeskAccount,\x20%s,\x20%s',_0xb3e41c,_0x9f41('0x1b'));logger[_0x9f41('0x1c')](_0x9f41('0x1d'),_0xb3e41c,_0x9f41('0x1b'),JSON[_0x9f41('0x1e')](_0x4e66df));if(_0x4e66df[_0x9f41('0x1f')]){if(_0x4e66df['error']['code']===0x1f4){logger['error'](_0x9f41('0x20'),_0xb3e41c,_0x4e66df['error'][_0x9f41('0x21')]);return _0xc80f8f(_0x4e66df[_0x9f41('0x1f')][_0x9f41('0x21')]);}logger[_0x9f41('0x1f')](_0x9f41('0x20'),_0xb3e41c,_0x4e66df[_0x9f41('0x1f')][_0x9f41('0x21')]);return _0xde6b20(_0x4e66df[_0x9f41('0x1f')]['message']);}else{logger[_0x9f41('0x22')](_0x9f41('0x20'),_0xb3e41c,'request\x20sent');_0xde6b20(_0x4e66df[_0x9f41('0x23')]['message']);}})[_0x9f41('0x24')](function(_0x48e4ea){logger['error'](_0x9f41('0x20'),_0xb3e41c,_0x48e4ea);_0xc80f8f(_0x48e4ea);});});}function respondWithStatusCode(_0x5ebf57,_0x186594){_0x186594=_0x186594||0xcc;return function(_0x2abe87){if(_0x2abe87){return _0x5ebf57[_0x9f41('0x25')](_0x186594);}return _0x5ebf57[_0x9f41('0x26')](_0x186594)[_0x9f41('0x27')]();};}function respondWithResult(_0xc1efc8,_0x5267e8){_0x5267e8=_0x5267e8||0xc8;return function(_0x4dbd6e){if(_0x4dbd6e){return _0xc1efc8[_0x9f41('0x26')](_0x5267e8)['json'](_0x4dbd6e);}};}function respondWithFilteredResult(_0x558f0f,_0x1d3955){return function(_0xc02194){if(_0xc02194){var _0x3f92e1=_0xc02194['count'],_0x2daa5a=_0x1d3955[_0x9f41('0x28')],_0x189ae5=_0x1d3955[_0x9f41('0x28')]+_0x1d3955[_0x9f41('0x29')],_0x2f1c91;if(_0x189ae5>=_0x3f92e1){_0x189ae5=_0x3f92e1;_0x2f1c91=0xc8;}else{_0x2f1c91=0xce;}_0x558f0f[_0x9f41('0x26')](_0x2f1c91);return _0x558f0f[_0x9f41('0x2a')](_0x9f41('0x2b'),_0x2daa5a+'-'+_0x189ae5+'/'+_0x3f92e1)['json'](_0xc02194);}return null;};}function patchUpdates(_0x3ff00b){return function(_0x45956b){try{jsonpatch['apply'](_0x45956b,_0x3ff00b,!![]);}catch(_0x527630){return BPromise['reject'](_0x527630);}return _0x45956b['save']();};}function saveUpdates(_0x1dad01,_0x3d5955){return function(_0x335e08){if(_0x335e08){return _0x335e08['update'](_0x1dad01)[_0x9f41('0x1a')](function(_0x2f0afc){return _0x2f0afc;});}return null;};}function removeEntity(_0x3fbfdf,_0x1efd98){return function(_0x1b2139){if(_0x1b2139){return _0x1b2139[_0x9f41('0x2c')]()['then'](function(){_0x3fbfdf[_0x9f41('0x26')](0xcc)[_0x9f41('0x27')]();});}};}function handleEntityNotFound(_0x29c3cf,_0x1ad488){return function(_0x28e5ba){if(!_0x28e5ba){_0x29c3cf[_0x9f41('0x25')](0x194);}return _0x28e5ba;};}function handleError(_0x219c8c,_0x4ebe6b){_0x4ebe6b=_0x4ebe6b||0x1f4;return function(_0x474545){logger[_0x9f41('0x1f')](_0x474545[_0x9f41('0x2d')]);if(_0x474545[_0x9f41('0x2e')]){delete _0x474545['name'];}_0x219c8c[_0x9f41('0x26')](_0x4ebe6b)[_0x9f41('0x2f')](_0x474545);};}exports['index']=function(_0xb2493c,_0x2f8806){var _0x5cea45={},_0x32969e={},_0x331024={'count':0x0,'rows':[]};var _0x918bf0=_[_0x9f41('0x30')](db[_0x9f41('0x31')][_0x9f41('0x32')],function(_0x2265de){return{'name':_0x2265de[_0x9f41('0x33')],'type':_0x2265de[_0x9f41('0x34')]['key']};});_0x32969e[_0x9f41('0x35')]=_[_0x9f41('0x30')](_0x918bf0,_0x9f41('0x2e'));_0x32969e[_0x9f41('0x36')]=_[_0x9f41('0x37')](_0xb2493c['query']);_0x32969e[_0x9f41('0x38')]=_[_0x9f41('0x39')](_0x32969e[_0x9f41('0x35')],_0x32969e[_0x9f41('0x36')]);_0x5cea45['attributes']=_['intersection'](_0x32969e[_0x9f41('0x35')],qs[_0x9f41('0x3a')](_0xb2493c[_0x9f41('0x36')][_0x9f41('0x3a')]));_0x5cea45['attributes']=_0x5cea45['attributes'][_0x9f41('0x3b')]?_0x5cea45['attributes']:_0x32969e[_0x9f41('0x35')];if(!_0xb2493c[_0x9f41('0x36')][_0x9f41('0x3c')]('nolimit')){_0x5cea45[_0x9f41('0x29')]=qs[_0x9f41('0x29')](_0xb2493c[_0x9f41('0x36')][_0x9f41('0x29')]);_0x5cea45[_0x9f41('0x28')]=qs[_0x9f41('0x28')](_0xb2493c[_0x9f41('0x36')][_0x9f41('0x28')]);}_0x5cea45[_0x9f41('0x3d')]=qs[_0x9f41('0x3e')](_0xb2493c[_0x9f41('0x36')][_0x9f41('0x3e')]);_0x5cea45[_0x9f41('0x3f')]=qs[_0x9f41('0x38')](_[_0x9f41('0x40')](_0xb2493c[_0x9f41('0x36')],_0x32969e['filters']),_0x918bf0);if(_0xb2493c[_0x9f41('0x36')][_0x9f41('0x41')]){_0x5cea45[_0x9f41('0x3f')]=_[_0x9f41('0x42')](_0x5cea45[_0x9f41('0x3f')],{'$or':_[_0x9f41('0x30')](_0x918bf0,function(_0x2e5419){if(_0x2e5419['type']!==_0x9f41('0x43')){var _0x1c6c9a={};_0x1c6c9a[_0x2e5419[_0x9f41('0x2e')]]={'$like':'%'+_0xb2493c[_0x9f41('0x36')][_0x9f41('0x41')]+'%'};return _0x1c6c9a;}})});}_0x5cea45=_[_0x9f41('0x42')]({},_0x5cea45,_0xb2493c[_0x9f41('0x44')]);var _0x2b6e0f={'where':_0x5cea45[_0x9f41('0x3f')]};return db['DeskAccount'][_0x9f41('0x45')](_0x2b6e0f)['then'](function(_0xb365ae){_0x331024[_0x9f41('0x45')]=_0xb365ae;if(_0xb2493c[_0x9f41('0x36')][_0x9f41('0x46')]){_0x5cea45[_0x9f41('0x47')]=[{'all':!![]}];}return db[_0x9f41('0x31')]['findAll'](_0x5cea45);})[_0x9f41('0x1a')](function(_0x3c43b3){_0x331024[_0x9f41('0x48')]=_0x3c43b3;return _0x331024;})['then'](respondWithFilteredResult(_0x2f8806,_0x5cea45))[_0x9f41('0x24')](handleError(_0x2f8806,null));};exports['show']=function(_0xe5d72,_0x52770c){var _0x2cf13f={'raw':![],'where':{'id':_0xe5d72['params']['id']}},_0x1b2afa={};_0x1b2afa['model']=_[_0x9f41('0x37')](db[_0x9f41('0x31')][_0x9f41('0x32')]);_0x1b2afa['query']=_[_0x9f41('0x37')](_0xe5d72[_0x9f41('0x36')]);_0x1b2afa[_0x9f41('0x38')]=_[_0x9f41('0x39')](_0x1b2afa[_0x9f41('0x35')],_0x1b2afa['query']);_0x2cf13f['attributes']=_[_0x9f41('0x39')](_0x1b2afa[_0x9f41('0x35')],qs['fields'](_0xe5d72[_0x9f41('0x36')]['fields']));_0x2cf13f[_0x9f41('0x49')]=_0x2cf13f[_0x9f41('0x49')][_0x9f41('0x3b')]?_0x2cf13f[_0x9f41('0x49')]:_0x1b2afa[_0x9f41('0x35')];if(_0xe5d72[_0x9f41('0x36')][_0x9f41('0x46')]){_0x2cf13f[_0x9f41('0x47')]=[{'all':!![]}];}_0x2cf13f=_[_0x9f41('0x42')]({},_0x2cf13f,_0xe5d72['options']);return db['DeskAccount'][_0x9f41('0x4a')](_0x2cf13f)[_0x9f41('0x1a')](handleEntityNotFound(_0x52770c,null))[_0x9f41('0x1a')](respondWithResult(_0x52770c,null))['catch'](handleError(_0x52770c,null));};exports[_0x9f41('0x4b')]=function(_0x3545ca,_0x2f5075){return db[_0x9f41('0x31')][_0x9f41('0x4b')](_0x3545ca[_0x9f41('0x4c')],{})[_0x9f41('0x1a')](respondWithResult(_0x2f5075,0xc9))[_0x9f41('0x24')](handleError(_0x2f5075,null));};exports[_0x9f41('0x4d')]=function(_0x7a6ffb,_0x36813f){if(_0x7a6ffb[_0x9f41('0x4c')]['id']){delete _0x7a6ffb[_0x9f41('0x4c')]['id'];}return db[_0x9f41('0x31')][_0x9f41('0x4a')]({'where':{'id':_0x7a6ffb[_0x9f41('0x4e')]['id']}})[_0x9f41('0x1a')](handleEntityNotFound(_0x36813f,null))[_0x9f41('0x1a')](saveUpdates(_0x7a6ffb[_0x9f41('0x4c')],null))[_0x9f41('0x1a')](respondWithResult(_0x36813f,null))[_0x9f41('0x24')](handleError(_0x36813f,null));};exports['destroy']=function(_0xc83b57,_0xd1e2e8){return db['DeskAccount']['find']({'where':{'id':_0xc83b57[_0x9f41('0x4e')]['id']}})[_0x9f41('0x1a')](handleEntityNotFound(_0xd1e2e8,null))[_0x9f41('0x1a')](removeEntity(_0xd1e2e8,null))[_0x9f41('0x24')](handleError(_0xd1e2e8,null));};exports[_0x9f41('0x4f')]=function(_0x57e67c,_0x262d0e,_0x3e6c02){var _0x14ef9c={};var _0x1df8b5={};var _0x2e1944;var _0x38b05d;return db['DeskAccount'][_0x9f41('0x50')]({'where':{'id':_0x57e67c[_0x9f41('0x4e')]['id']}})['then'](handleEntityNotFound(_0x262d0e,null))['then'](function(_0x48a4bd){if(_0x48a4bd){_0x2e1944=_0x48a4bd;_0x1df8b5[_0x9f41('0x35')]=_['keys'](db['DeskConfiguration'][_0x9f41('0x32')]);_0x1df8b5['query']=_['keys'](_0x57e67c[_0x9f41('0x36')]);_0x1df8b5['filters']=_[_0x9f41('0x39')](_0x1df8b5[_0x9f41('0x35')],_0x1df8b5[_0x9f41('0x36')]);_0x14ef9c[_0x9f41('0x49')]=_[_0x9f41('0x39')](_0x1df8b5['model'],qs[_0x9f41('0x3a')](_0x57e67c['query']['fields']));_0x14ef9c[_0x9f41('0x49')]=_0x14ef9c[_0x9f41('0x49')][_0x9f41('0x3b')]?_0x14ef9c[_0x9f41('0x49')]:_0x1df8b5['model'];_0x14ef9c[_0x9f41('0x3d')]=qs[_0x9f41('0x3e')](_0x57e67c[_0x9f41('0x36')][_0x9f41('0x3e')]);_0x14ef9c['where']=qs[_0x9f41('0x38')](_[_0x9f41('0x40')](_0x57e67c[_0x9f41('0x36')],_0x1df8b5[_0x9f41('0x38')]));if(_0x57e67c['query'][_0x9f41('0x41')]){_0x14ef9c[_0x9f41('0x3f')]=_['merge'](_0x14ef9c[_0x9f41('0x3f')],{'$or':_[_0x9f41('0x30')](_0x14ef9c['attributes'],function(_0x5a88ce){var _0x50d409={};_0x50d409[_0x5a88ce]={'$like':'%'+_0x57e67c[_0x9f41('0x36')][_0x9f41('0x41')]+'%'};return _0x50d409;})});}_0x14ef9c=_[_0x9f41('0x42')]({},_0x14ef9c,_0x57e67c['options']);return _0x2e1944[_0x9f41('0x4f')](_0x14ef9c);}})[_0x9f41('0x1a')](function(_0x153d47){if(_0x153d47){_0x38b05d=_0x153d47['length'];if(!_0x57e67c[_0x9f41('0x36')]['hasOwnProperty'](_0x9f41('0x51'))){_0x14ef9c[_0x9f41('0x29')]=qs['limit'](_0x57e67c['query'][_0x9f41('0x29')]);_0x14ef9c[_0x9f41('0x28')]=qs['offset'](_0x57e67c[_0x9f41('0x36')][_0x9f41('0x28')]);}return _0x2e1944[_0x9f41('0x4f')](_0x14ef9c);}})['then'](function(_0x2f72ab){if(_0x2f72ab){return _0x2f72ab?{'count':_0x38b05d,'rows':_0x2f72ab}:null;}})[_0x9f41('0x1a')](respondWithResult(_0x262d0e,null))[_0x9f41('0x24')](handleError(_0x262d0e,null));};exports[_0x9f41('0x52')]=function(_0x146d20,_0x4c821c,_0x43038e){if(_0x146d20[_0x9f41('0x4c')]['id']){delete _0x146d20[_0x9f41('0x4c')]['id'];}return db[_0x9f41('0x31')]['findOne']({'where':{'id':_0x146d20['params']['id']}})[_0x9f41('0x1a')](handleEntityNotFound(_0x4c821c,null))[_0x9f41('0x1a')](function(_0x221361){if(_0x221361){_0x146d20[_0x9f41('0x4c')][_0x9f41('0x53')]=_0x221361['id'];_0x146d20[_0x9f41('0x4c')]['Subjects']=integrations[_0x9f41('0x54')](_0x146d20[_0x9f41('0x4c')][_0x9f41('0x55')],_0x146d20[_0x9f41('0x4c')][_0x9f41('0x34')]);_0x146d20[_0x9f41('0x4c')][_0x9f41('0x56')]=integrations[_0x9f41('0x57')](_0x146d20[_0x9f41('0x4c')][_0x9f41('0x55')],_0x146d20[_0x9f41('0x4c')][_0x9f41('0x34')]);return db['DeskConfiguration'][_0x9f41('0x4b')](_0x146d20[_0x9f41('0x4c')],{'include':[{'model':db[_0x9f41('0x58')],'as':_0x9f41('0x59')},{'model':db['DeskField'],'as':'Descriptions'}]});}return null;})[_0x9f41('0x1a')](respondWithResult(_0x4c821c,null))['catch'](handleError(_0x4c821c,null));};exports[_0x9f41('0x5a')]=function(_0x401003,_0x48177d,_0x1fa77b){var _0x55660f=[{'name':_0x9f41('0x5b'),'label':_0x9f41('0x5b'),'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 _0x3a1002='';return db[_0x9f41('0x31')][_0x9f41('0x50')]({'where':{'id':_0x401003['params']['id']},'attributes':['id',_0x9f41('0x5c'),'authType',_0x9f41('0x5d'),_0x9f41('0x5e'),_0x9f41('0x5f'),_0x9f41('0x60'),_0x9f41('0x61'),_0x9f41('0x62')]})[_0x9f41('0x1a')](handleEntityNotFound(_0x48177d,null))[_0x9f41('0x1a')](function(_0x473a4b){if(_0x473a4b){_0x3a1002=_0x473a4b['remoteUri'];var _0x4eae34=_0x3a1002['slice'](-0x1);if(_0x4eae34==='/'){_0x3a1002=_0x3a1002[_0x9f41('0x63')](0x0,_0x3a1002[_0x9f41('0x64')](_0x4eae34));}var _0x173c3e={'method':_0x9f41('0x65'),'uri':util[_0x9f41('0x66')](_0x9f41('0x67'),_0x3a1002),'headers':{'Content-Type':_0x9f41('0x68'),'Accept':_0x9f41('0x68')},'json':!![]};if(_0x473a4b[_0x9f41('0x69')]==='basic'){_0x173c3e['headers'][_0x9f41('0x6a')]=util[_0x9f41('0x66')]('Basic\x20%s',new Buffer(util[_0x9f41('0x66')]('%s:%s',_0x473a4b[_0x9f41('0x5d')],_0x473a4b[_0x9f41('0x5e')]))[_0x9f41('0x6b')](_0x9f41('0x6c')));}return rp(_0x173c3e)[_0x9f41('0x1a')](function(_0x35e651){return _0x55660f['concat'](_[_0x9f41('0x30')](_0x35e651[_0x9f41('0x6d')]['entries'],function(_0x52216c){return{'id':_0x52216c[_0x9f41('0x2e')],'name':_0x52216c[_0x9f41('0x2e')],'type':_0x52216c['type'],'active':_0x52216c['active'],'label':_0x52216c[_0x9f41('0x6e')],'custom':!![]};}));});}})[_0x9f41('0x1a')](function(_0x35b8d9){return{'count':_0x35b8d9['length'],'rows':_0x35b8d9};})[_0x9f41('0x1a')](respondWithResult(_0x48177d,null))[_0x9f41('0x24')](function(_0xe7dda){var _0x847895=_0x401003[_0x9f41('0x36')]['test']?0x1f4:_0xe7dda[_0x9f41('0x6f')]||0x1f4;logger['error'](_0x9f41('0x70'),_0x9f41('0x5a'),_0x847895,JSON['stringify'](_0xe7dda));delete _0xe7dda[_0x9f41('0x2e')];if(_0x847895===0x191){_0x847895=0x190;}_0x48177d[_0x9f41('0x26')](_0x847895)[_0x9f41('0x2f')](_0x401003['query'][_0x9f41('0x71')]?{'message':_0x9f41('0x72'),'statusCode':_0xe7dda['statusCode']}:_0xe7dda);});};