Built motion from commit (unavailable).|2.4.17
[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 _0x9ab7=['fields','length','catch','create','body','find','params','findOne','DeskConfiguration','getConfigurations','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','DeskField','getFields','priority','remoteUri','username','password','consumerKey','token','tokenSecret','slice','substring','GET','format','application/json','authType','basic','Authorization','Basic\x20%s','toString','base64','_embedded','entries','active','label','statusCode','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','lodash','squel','crypto','jsforce','to-csv','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','test','Sequelize','ValidationError','request','then','request\x20sent','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','DeskAccount,\x20%s,\x20%s','message','info','result','sendStatus','status','end','json','count','offset','Content-Range','apply','reject','save','destroy','stack','name','send','index','map','DeskAccount','rawAttributes','fieldName','key','model','keys','filters','intersection','query','attributes','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','type','options','includeAll','include','findAll','show'];(function(_0x14677b,_0x1c4ab9){var _0x417537=function(_0x220e42){while(--_0x220e42){_0x14677b['push'](_0x14677b['shift']());}};_0x417537(++_0x1c4ab9);}(_0x9ab7,0x120));var _0x79ab=function(_0x5347f6,_0x5161e3){_0x5347f6=_0x5347f6-0x0;var _0xd9e118=_0x9ab7[_0x5347f6];return _0xd9e118;};'use strict';var pdf=require(_0x79ab('0x0'));var emlformat=require(_0x79ab('0x1'));var rimraf=require(_0x79ab('0x2'));var zipdir=require(_0x79ab('0x3'));var jsonpatch=require(_0x79ab('0x4'));var rp=require(_0x79ab('0x5'));var moment=require('moment');var BPromise=require(_0x79ab('0x6'));var Mustache=require(_0x79ab('0x7'));var util=require(_0x79ab('0x8'));var path=require(_0x79ab('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x79ab('0xa'));var squel=require(_0x79ab('0xb'));var crypto=require(_0x79ab('0xc'));var jsforce=require(_0x79ab('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x79ab('0xe'));var querystring=require('querystring');var Papa=require(_0x79ab('0xf'));var Redis=require('ioredis');var authService=require(_0x79ab('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x79ab('0x11'));var hardwareService=require(_0x79ab('0x12'));var logger=require(_0x79ab('0x13'))(_0x79ab('0x14'));var utils=require(_0x79ab('0x15'));var config=require(_0x79ab('0x16'));var db=require(_0x79ab('0x17'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0x79ab('0x18'));var client=jayson[_0x79ab('0x19')]['http']({'port':0x232a});function checkPasswordPattern(_0x17587b,_0x903da8,_0x253966){if(_0x253966){var _0x1c24e5=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x1c24e5[_0x79ab('0x1a')](_0x903da8)){return _0x17587b;}else{throw new db[(_0x79ab('0x1b'))][(_0x79ab('0x1c'))]('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 _0x17587b;}}function respondWithRpcPromise(_0x15e790,_0x31c761,_0x543048,_0x799374){return new BPromise(function(_0x1eabf2,_0x167a0d){var _0x51a635=_0x799374||client;return _0x51a635[_0x79ab('0x1d')](_0x15e790,_0x543048)[_0x79ab('0x1e')](function(_0x5e75bd){logger['info']('DeskAccount,\x20%s,\x20%s',_0x31c761,_0x79ab('0x1f'));logger['debug'](_0x79ab('0x20'),_0x31c761,_0x79ab('0x1f'),JSON[_0x79ab('0x21')](_0x5e75bd));if(_0x5e75bd['error']){if(_0x5e75bd[_0x79ab('0x22')][_0x79ab('0x23')]===0x1f4){logger[_0x79ab('0x22')](_0x79ab('0x24'),_0x31c761,_0x5e75bd[_0x79ab('0x22')][_0x79ab('0x25')]);return _0x167a0d(_0x5e75bd['error'][_0x79ab('0x25')]);}logger['error'](_0x79ab('0x24'),_0x31c761,_0x5e75bd['error'][_0x79ab('0x25')]);return _0x1eabf2(_0x5e75bd[_0x79ab('0x22')][_0x79ab('0x25')]);}else{logger[_0x79ab('0x26')](_0x79ab('0x24'),_0x31c761,_0x79ab('0x1f'));_0x1eabf2(_0x5e75bd[_0x79ab('0x27')][_0x79ab('0x25')]);}})['catch'](function(_0x384553){logger['error'](_0x79ab('0x24'),_0x31c761,_0x384553);_0x167a0d(_0x384553);});});}function respondWithStatusCode(_0xdf9fe9,_0x227e40){_0x227e40=_0x227e40||0xcc;return function(_0x45fc48){if(_0x45fc48){return _0xdf9fe9[_0x79ab('0x28')](_0x227e40);}return _0xdf9fe9[_0x79ab('0x29')](_0x227e40)[_0x79ab('0x2a')]();};}function respondWithResult(_0x1b28a8,_0x51833f){_0x51833f=_0x51833f||0xc8;return function(_0x5ea2b4){if(_0x5ea2b4){return _0x1b28a8[_0x79ab('0x29')](_0x51833f)[_0x79ab('0x2b')](_0x5ea2b4);}};}function respondWithFilteredResult(_0x5639ef,_0x1d868c){return function(_0x322118){if(_0x322118){var _0xab8f26=_0x322118[_0x79ab('0x2c')],_0x57cb87=_0x1d868c[_0x79ab('0x2d')],_0x54fb72=_0x1d868c[_0x79ab('0x2d')]+_0x1d868c['limit'],_0x386681;if(_0x54fb72>=_0xab8f26){_0x54fb72=_0xab8f26;_0x386681=0xc8;}else{_0x386681=0xce;}_0x5639ef[_0x79ab('0x29')](_0x386681);return _0x5639ef['set'](_0x79ab('0x2e'),_0x57cb87+'-'+_0x54fb72+'/'+_0xab8f26)[_0x79ab('0x2b')](_0x322118);}return null;};}function patchUpdates(_0x4135d1){return function(_0xc1f124){try{jsonpatch[_0x79ab('0x2f')](_0xc1f124,_0x4135d1,!![]);}catch(_0x3eab41){return BPromise[_0x79ab('0x30')](_0x3eab41);}return _0xc1f124[_0x79ab('0x31')]();};}function saveUpdates(_0x193926,_0x521143){return function(_0x1b23f6){if(_0x1b23f6){return _0x1b23f6['update'](_0x193926)['then'](function(_0x24b715){return _0x24b715;});}return null;};}function removeEntity(_0x59da46,_0x58c53e){return function(_0x2aeffd){if(_0x2aeffd){return _0x2aeffd[_0x79ab('0x32')]()[_0x79ab('0x1e')](function(){_0x59da46['status'](0xcc)[_0x79ab('0x2a')]();});}};}function handleEntityNotFound(_0x233ce3,_0x201cb7){return function(_0x360aa4){if(!_0x360aa4){_0x233ce3[_0x79ab('0x28')](0x194);}return _0x360aa4;};}function handleError(_0x2717ea,_0xb5e6dc){_0xb5e6dc=_0xb5e6dc||0x1f4;return function(_0x4052e5){logger[_0x79ab('0x22')](_0x4052e5[_0x79ab('0x33')]);if(_0x4052e5['name']){delete _0x4052e5[_0x79ab('0x34')];}_0x2717ea['status'](_0xb5e6dc)[_0x79ab('0x35')](_0x4052e5);};}exports[_0x79ab('0x36')]=function(_0x530323,_0x254003){var _0x4adfdb={},_0xa38313={},_0x3b3474={'count':0x0,'rows':[]};var _0x485110=_[_0x79ab('0x37')](db[_0x79ab('0x38')][_0x79ab('0x39')],function(_0xff6ac4){return{'name':_0xff6ac4[_0x79ab('0x3a')],'type':_0xff6ac4['type'][_0x79ab('0x3b')]};});_0xa38313[_0x79ab('0x3c')]=_[_0x79ab('0x37')](_0x485110,'name');_0xa38313['query']=_[_0x79ab('0x3d')](_0x530323['query']);_0xa38313[_0x79ab('0x3e')]=_[_0x79ab('0x3f')](_0xa38313[_0x79ab('0x3c')],_0xa38313[_0x79ab('0x40')]);_0x4adfdb['attributes']=_[_0x79ab('0x3f')](_0xa38313[_0x79ab('0x3c')],qs['fields'](_0x530323[_0x79ab('0x40')]['fields']));_0x4adfdb[_0x79ab('0x41')]=_0x4adfdb[_0x79ab('0x41')]['length']?_0x4adfdb['attributes']:_0xa38313[_0x79ab('0x3c')];if(!_0x530323[_0x79ab('0x40')][_0x79ab('0x42')](_0x79ab('0x43'))){_0x4adfdb[_0x79ab('0x44')]=qs[_0x79ab('0x44')](_0x530323[_0x79ab('0x40')][_0x79ab('0x44')]);_0x4adfdb[_0x79ab('0x2d')]=qs[_0x79ab('0x2d')](_0x530323['query'][_0x79ab('0x2d')]);}_0x4adfdb[_0x79ab('0x45')]=qs['sort'](_0x530323[_0x79ab('0x40')][_0x79ab('0x46')]);_0x4adfdb[_0x79ab('0x47')]=qs[_0x79ab('0x3e')](_[_0x79ab('0x48')](_0x530323['query'],_0xa38313['filters']));if(_0x530323[_0x79ab('0x40')][_0x79ab('0x49')]){_0x4adfdb['where']=_[_0x79ab('0x4a')](_0x4adfdb['where'],{'$or':_['map'](_0x485110,function(_0x1a5bef){if(_0x1a5bef[_0x79ab('0x4b')]!=='VIRTUAL'){var _0x368d6e={};_0x368d6e[_0x1a5bef[_0x79ab('0x34')]]={'$like':'%'+_0x530323[_0x79ab('0x40')][_0x79ab('0x49')]+'%'};return _0x368d6e;}})});}_0x4adfdb=_[_0x79ab('0x4a')]({},_0x4adfdb,_0x530323[_0x79ab('0x4c')]);var _0x2daf09={'where':_0x4adfdb[_0x79ab('0x47')]};return db[_0x79ab('0x38')][_0x79ab('0x2c')](_0x2daf09)[_0x79ab('0x1e')](function(_0x5e9de3){_0x3b3474['count']=_0x5e9de3;if(_0x530323[_0x79ab('0x40')][_0x79ab('0x4d')]){_0x4adfdb[_0x79ab('0x4e')]=[{'all':!![]}];}return db[_0x79ab('0x38')][_0x79ab('0x4f')](_0x4adfdb);})['then'](function(_0x3d3c22){_0x3b3474['rows']=_0x3d3c22;return _0x3b3474;})[_0x79ab('0x1e')](respondWithFilteredResult(_0x254003,_0x4adfdb))['catch'](handleError(_0x254003,null));};exports[_0x79ab('0x50')]=function(_0x1afd5e,_0x398b9e){var _0x55d4d0={'raw':![],'where':{'id':_0x1afd5e['params']['id']}},_0x5382f9={};_0x5382f9['model']=_[_0x79ab('0x3d')](db[_0x79ab('0x38')][_0x79ab('0x39')]);_0x5382f9['query']=_['keys'](_0x1afd5e[_0x79ab('0x40')]);_0x5382f9[_0x79ab('0x3e')]=_[_0x79ab('0x3f')](_0x5382f9[_0x79ab('0x3c')],_0x5382f9[_0x79ab('0x40')]);_0x55d4d0[_0x79ab('0x41')]=_['intersection'](_0x5382f9[_0x79ab('0x3c')],qs[_0x79ab('0x51')](_0x1afd5e[_0x79ab('0x40')]['fields']));_0x55d4d0[_0x79ab('0x41')]=_0x55d4d0[_0x79ab('0x41')][_0x79ab('0x52')]?_0x55d4d0[_0x79ab('0x41')]:_0x5382f9[_0x79ab('0x3c')];if(_0x1afd5e[_0x79ab('0x40')][_0x79ab('0x4d')]){_0x55d4d0[_0x79ab('0x4e')]=[{'all':!![]}];}_0x55d4d0=_[_0x79ab('0x4a')]({},_0x55d4d0,_0x1afd5e[_0x79ab('0x4c')]);return db['DeskAccount']['find'](_0x55d4d0)[_0x79ab('0x1e')](handleEntityNotFound(_0x398b9e,null))[_0x79ab('0x1e')](respondWithResult(_0x398b9e,null))[_0x79ab('0x53')](handleError(_0x398b9e,null));};exports['create']=function(_0xf8d7dc,_0x559f1e){return db[_0x79ab('0x38')][_0x79ab('0x54')](_0xf8d7dc['body'],{})[_0x79ab('0x1e')](respondWithResult(_0x559f1e,0xc9))[_0x79ab('0x53')](handleError(_0x559f1e,null));};exports['update']=function(_0x2579c9,_0x2b9e68){if(_0x2579c9[_0x79ab('0x55')]['id']){delete _0x2579c9['body']['id'];}return db['DeskAccount'][_0x79ab('0x56')]({'where':{'id':_0x2579c9[_0x79ab('0x57')]['id']}})['then'](handleEntityNotFound(_0x2b9e68,null))[_0x79ab('0x1e')](saveUpdates(_0x2579c9['body'],null))['then'](respondWithResult(_0x2b9e68,null))[_0x79ab('0x53')](handleError(_0x2b9e68,null));};exports[_0x79ab('0x32')]=function(_0x2f47b8,_0x470f12){return db[_0x79ab('0x38')]['find']({'where':{'id':_0x2f47b8[_0x79ab('0x57')]['id']}})[_0x79ab('0x1e')](handleEntityNotFound(_0x470f12,null))['then'](removeEntity(_0x470f12,null))[_0x79ab('0x53')](handleError(_0x470f12,null));};exports['getConfigurations']=function(_0x3b23b7,_0x23fed6,_0x224d70){var _0x10a1bf={};var _0x4bae36={};var _0x19dd6a;var _0x40da27;return db[_0x79ab('0x38')][_0x79ab('0x58')]({'where':{'id':_0x3b23b7['params']['id']}})[_0x79ab('0x1e')](handleEntityNotFound(_0x23fed6,null))['then'](function(_0x3588f4){if(_0x3588f4){_0x19dd6a=_0x3588f4;_0x4bae36[_0x79ab('0x3c')]=_['keys'](db[_0x79ab('0x59')][_0x79ab('0x39')]);_0x4bae36[_0x79ab('0x40')]=_[_0x79ab('0x3d')](_0x3b23b7[_0x79ab('0x40')]);_0x4bae36['filters']=_[_0x79ab('0x3f')](_0x4bae36[_0x79ab('0x3c')],_0x4bae36[_0x79ab('0x40')]);_0x10a1bf['attributes']=_['intersection'](_0x4bae36['model'],qs['fields'](_0x3b23b7[_0x79ab('0x40')][_0x79ab('0x51')]));_0x10a1bf['attributes']=_0x10a1bf[_0x79ab('0x41')][_0x79ab('0x52')]?_0x10a1bf[_0x79ab('0x41')]:_0x4bae36[_0x79ab('0x3c')];_0x10a1bf[_0x79ab('0x45')]=qs[_0x79ab('0x46')](_0x3b23b7[_0x79ab('0x40')][_0x79ab('0x46')]);_0x10a1bf[_0x79ab('0x47')]=qs[_0x79ab('0x3e')](_[_0x79ab('0x48')](_0x3b23b7['query'],_0x4bae36[_0x79ab('0x3e')]));if(_0x3b23b7[_0x79ab('0x40')]['filter']){_0x10a1bf[_0x79ab('0x47')]=_['merge'](_0x10a1bf[_0x79ab('0x47')],{'$or':_[_0x79ab('0x37')](_0x10a1bf[_0x79ab('0x41')],function(_0x56ee68){var _0x28993f={};_0x28993f[_0x56ee68]={'$like':'%'+_0x3b23b7[_0x79ab('0x40')][_0x79ab('0x49')]+'%'};return _0x28993f;})});}_0x10a1bf=_[_0x79ab('0x4a')]({},_0x10a1bf,_0x3b23b7[_0x79ab('0x4c')]);return _0x19dd6a[_0x79ab('0x5a')](_0x10a1bf);}})[_0x79ab('0x1e')](function(_0x3f8f3a){if(_0x3f8f3a){_0x40da27=_0x3f8f3a['length'];if(!_0x3b23b7['query'][_0x79ab('0x42')]('nolimit')){_0x10a1bf['limit']=qs[_0x79ab('0x44')](_0x3b23b7[_0x79ab('0x40')][_0x79ab('0x44')]);_0x10a1bf[_0x79ab('0x2d')]=qs[_0x79ab('0x2d')](_0x3b23b7[_0x79ab('0x40')][_0x79ab('0x2d')]);}return _0x19dd6a['getConfigurations'](_0x10a1bf);}})['then'](function(_0x50db23){if(_0x50db23){return _0x50db23?{'count':_0x40da27,'rows':_0x50db23}:null;}})[_0x79ab('0x1e')](respondWithResult(_0x23fed6,null))['catch'](handleError(_0x23fed6,null));};exports[_0x79ab('0x5b')]=function(_0xbb6496,_0x52cfbf,_0x237f63){if(_0xbb6496['body']['id']){delete _0xbb6496[_0x79ab('0x55')]['id'];}return db[_0x79ab('0x38')][_0x79ab('0x58')]({'where':{'id':_0xbb6496[_0x79ab('0x57')]['id']}})['then'](handleEntityNotFound(_0x52cfbf,null))['then'](function(_0x22d0eb){if(_0x22d0eb){_0xbb6496['body'][_0x79ab('0x5c')]=_0x22d0eb['id'];_0xbb6496[_0x79ab('0x55')][_0x79ab('0x5d')]=integrations[_0x79ab('0x5e')](_0xbb6496[_0x79ab('0x55')][_0x79ab('0x5f')],_0xbb6496[_0x79ab('0x55')][_0x79ab('0x4b')]);_0xbb6496[_0x79ab('0x55')][_0x79ab('0x60')]=integrations[_0x79ab('0x61')](_0xbb6496['body']['channel'],_0xbb6496[_0x79ab('0x55')][_0x79ab('0x4b')]);return db[_0x79ab('0x59')][_0x79ab('0x54')](_0xbb6496[_0x79ab('0x55')],{'include':[{'model':db[_0x79ab('0x62')],'as':_0x79ab('0x5d')},{'model':db['DeskField'],'as':'Descriptions'}]});}return null;})[_0x79ab('0x1e')](respondWithResult(_0x52cfbf,null))[_0x79ab('0x53')](handleError(_0x52cfbf,null));};exports[_0x79ab('0x63')]=function(_0x409b73,_0xf04448,_0x5d7451){var _0x4a9993=[{'name':_0x79ab('0x64'),'label':_0x79ab('0x64'),'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 _0x26bf0f='';return db[_0x79ab('0x38')][_0x79ab('0x58')]({'where':{'id':_0x409b73[_0x79ab('0x57')]['id']},'attributes':['id',_0x79ab('0x65'),'authType',_0x79ab('0x66'),_0x79ab('0x67'),_0x79ab('0x68'),'consumerSecret',_0x79ab('0x69'),_0x79ab('0x6a')]})['then'](handleEntityNotFound(_0xf04448,null))['then'](function(_0x4af3ba){if(_0x4af3ba){_0x26bf0f=_0x4af3ba[_0x79ab('0x65')];var _0x17bf71=_0x26bf0f[_0x79ab('0x6b')](-0x1);if(_0x17bf71==='/'){_0x26bf0f=_0x26bf0f[_0x79ab('0x6c')](0x0,_0x26bf0f['lastIndexOf'](_0x17bf71));}var _0x2d5ccd={'method':_0x79ab('0x6d'),'uri':util[_0x79ab('0x6e')]('%s/custom_fields',_0x26bf0f),'headers':{'Content-Type':_0x79ab('0x6f'),'Accept':'application/json'},'json':!![]};if(_0x4af3ba[_0x79ab('0x70')]===_0x79ab('0x71')){_0x2d5ccd['headers'][_0x79ab('0x72')]=util[_0x79ab('0x6e')](_0x79ab('0x73'),new Buffer(util[_0x79ab('0x6e')]('%s:%s',_0x4af3ba['username'],_0x4af3ba[_0x79ab('0x67')]))[_0x79ab('0x74')](_0x79ab('0x75')));}return rp(_0x2d5ccd)[_0x79ab('0x1e')](function(_0x2cab19){return _0x4a9993['concat'](_[_0x79ab('0x37')](_0x2cab19[_0x79ab('0x76')][_0x79ab('0x77')],function(_0x191fd0){return{'id':_0x191fd0[_0x79ab('0x34')],'name':_0x191fd0[_0x79ab('0x34')],'type':_0x191fd0['type'],'active':_0x191fd0[_0x79ab('0x78')],'label':_0x191fd0[_0x79ab('0x79')],'custom':!![]};}));});}})[_0x79ab('0x1e')](function(_0x4a5f9a){return{'count':_0x4a5f9a['length'],'rows':_0x4a5f9a};})[_0x79ab('0x1e')](respondWithResult(_0xf04448,null))['catch'](function(_0x3cc89f){var _0x501588=_0x409b73[_0x79ab('0x40')][_0x79ab('0x1a')]?0x1f4:_0x3cc89f[_0x79ab('0x7a')]||0x1f4;logger[_0x79ab('0x22')]('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x501588,JSON[_0x79ab('0x21')](_0x3cc89f));delete _0x3cc89f['name'];if(_0x501588===0x191){_0x501588=0x190;}_0xf04448[_0x79ab('0x29')](_0x501588)['send'](_0x409b73[_0x79ab('0x40')][_0x79ab('0x1a')]?{'message':'Wrong\x20credentials','statusCode':_0x3cc89f[_0x79ab('0x7a')]}:_0x3cc89f);});};