Built motion from commit (unavailable).|2.4.20
[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 _0x154a=['error','code','DeskAccount,\x20%s,\x20%s','message','info','result','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','destroy','stack','name','send','map','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','DeskAccount','includeAll','include','findAll','rows','show','params','create','body','find','getConfigurations','findOne','DeskConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','type','Descriptions','getDescriptions','DeskField','getFields','priority','authType','password','consumerKey','consumerSecret','token','tokenSecret','remoteUri','slice','substring','lastIndexOf','GET','format','%s/custom_fields','application/json','basic','Authorization','Basic\x20%s','%s:%s','toString','base64','concat','_embedded','active','label','statusCode','Wrong\x20credentials','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','jayson/promise','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','then','request\x20sent','stringify'];(function(_0x5f24db,_0x58a2c4){var _0x40ddd9=function(_0x1c6733){while(--_0x1c6733){_0x5f24db['push'](_0x5f24db['shift']());}};_0x40ddd9(++_0x58a2c4);}(_0x154a,0x1e5));var _0xa154=function(_0x2d3486,_0x4f3779){_0x2d3486=_0x2d3486-0x0;var _0x2350e4=_0x154a[_0x2d3486];return _0x2350e4;};'use strict';var pdf=require(_0xa154('0x0'));var emlformat=require(_0xa154('0x1'));var rimraf=require(_0xa154('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa154('0x3'));var rp=require(_0xa154('0x4'));var moment=require(_0xa154('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xa154('0x6'));var util=require(_0xa154('0x7'));var path=require(_0xa154('0x8'));var sox=require(_0xa154('0x9'));var csv=require(_0xa154('0xa'));var ejs=require(_0xa154('0xb'));var fs=require('fs');var _=require(_0xa154('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa154('0xd'));var deskjs=require(_0xa154('0xe'));var toCsv=require(_0xa154('0xa'));var querystring=require(_0xa154('0xf'));var Papa=require('papaparse');var Redis=require(_0xa154('0x10'));var authService=require(_0xa154('0x11'));var qs=require(_0xa154('0x12'));var as=require(_0xa154('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa154('0x14'))(_0xa154('0x15'));var utils=require('../../config/utils');var config=require(_0xa154('0x16'));var db=require(_0xa154('0x17'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0xa154('0x18'));var client=jayson[_0xa154('0x19')][_0xa154('0x1a')]({'port':0x232a});function checkPasswordPattern(_0x73e6f9,_0x412532,_0x462ce0){if(_0x462ce0){var _0x4ce4de=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x4ce4de[_0xa154('0x1b')](_0x412532)){return _0x73e6f9;}else{throw new db[(_0xa154('0x1c'))][(_0xa154('0x1d'))](_0xa154('0x1e'));}}else{return _0x73e6f9;}}function respondWithRpcPromise(_0x441a80,_0x517bf9,_0x2179dd,_0x294eef){return new BPromise(function(_0x36ff87,_0x435e58){var _0x2dc0fe=_0x294eef||client;return _0x2dc0fe[_0xa154('0x1f')](_0x441a80,_0x2179dd)[_0xa154('0x20')](function(_0x2aa683){logger['info']('DeskAccount,\x20%s,\x20%s',_0x517bf9,_0xa154('0x21'));logger['debug']('DeskAccount,\x20%s,\x20%s,\x20%s',_0x517bf9,_0xa154('0x21'),JSON[_0xa154('0x22')](_0x2aa683));if(_0x2aa683['error']){if(_0x2aa683[_0xa154('0x23')][_0xa154('0x24')]===0x1f4){logger[_0xa154('0x23')](_0xa154('0x25'),_0x517bf9,_0x2aa683['error'][_0xa154('0x26')]);return _0x435e58(_0x2aa683[_0xa154('0x23')][_0xa154('0x26')]);}logger[_0xa154('0x23')](_0xa154('0x25'),_0x517bf9,_0x2aa683[_0xa154('0x23')][_0xa154('0x26')]);return _0x36ff87(_0x2aa683[_0xa154('0x23')][_0xa154('0x26')]);}else{logger[_0xa154('0x27')](_0xa154('0x25'),_0x517bf9,_0xa154('0x21'));_0x36ff87(_0x2aa683[_0xa154('0x28')][_0xa154('0x26')]);}})[_0xa154('0x29')](function(_0x44dd15){logger[_0xa154('0x23')](_0xa154('0x25'),_0x517bf9,_0x44dd15);_0x435e58(_0x44dd15);});});}function respondWithStatusCode(_0x5c5f42,_0x187be9){_0x187be9=_0x187be9||0xcc;return function(_0xf0fdd8){if(_0xf0fdd8){return _0x5c5f42[_0xa154('0x2a')](_0x187be9);}return _0x5c5f42[_0xa154('0x2b')](_0x187be9)[_0xa154('0x2c')]();};}function respondWithResult(_0x4a8cdb,_0x4ebe39){_0x4ebe39=_0x4ebe39||0xc8;return function(_0x561fe6){if(_0x561fe6){return _0x4a8cdb[_0xa154('0x2b')](_0x4ebe39)[_0xa154('0x2d')](_0x561fe6);}};}function respondWithFilteredResult(_0x41001c,_0x7782fe){return function(_0x23140d){if(_0x23140d){var _0x536429=_0x23140d[_0xa154('0x2e')],_0x42fcda=_0x7782fe[_0xa154('0x2f')],_0x176ab2=_0x7782fe[_0xa154('0x2f')]+_0x7782fe[_0xa154('0x30')],_0x2a0cd7;if(_0x176ab2>=_0x536429){_0x176ab2=_0x536429;_0x2a0cd7=0xc8;}else{_0x2a0cd7=0xce;}_0x41001c['status'](_0x2a0cd7);return _0x41001c[_0xa154('0x31')](_0xa154('0x32'),_0x42fcda+'-'+_0x176ab2+'/'+_0x536429)[_0xa154('0x2d')](_0x23140d);}return null;};}function patchUpdates(_0xa14d43){return function(_0x293b53){try{jsonpatch[_0xa154('0x33')](_0x293b53,_0xa14d43,!![]);}catch(_0x11e520){return BPromise['reject'](_0x11e520);}return _0x293b53[_0xa154('0x34')]();};}function saveUpdates(_0x2b75ab,_0x185f1a){return function(_0x4fb6ac){if(_0x4fb6ac){return _0x4fb6ac[_0xa154('0x35')](_0x2b75ab)[_0xa154('0x20')](function(_0x46ce17){return _0x46ce17;});}return null;};}function removeEntity(_0x505ad0,_0x4b32db){return function(_0x409a5b){if(_0x409a5b){return _0x409a5b[_0xa154('0x36')]()[_0xa154('0x20')](function(){_0x505ad0[_0xa154('0x2b')](0xcc)[_0xa154('0x2c')]();});}};}function handleEntityNotFound(_0x205257,_0x253ff1){return function(_0x3db714){if(!_0x3db714){_0x205257[_0xa154('0x2a')](0x194);}return _0x3db714;};}function handleError(_0x63e47a,_0x4cd778){_0x4cd778=_0x4cd778||0x1f4;return function(_0xe31d62){logger[_0xa154('0x23')](_0xe31d62[_0xa154('0x37')]);if(_0xe31d62[_0xa154('0x38')]){delete _0xe31d62[_0xa154('0x38')];}_0x63e47a[_0xa154('0x2b')](_0x4cd778)[_0xa154('0x39')](_0xe31d62);};}exports['index']=function(_0x3dacbc,_0x530b4b){var _0xfc7053={},_0x1202fe={},_0x1a9dd3={'count':0x0,'rows':[]};var _0x239741=_[_0xa154('0x3a')](db['DeskAccount'][_0xa154('0x3b')],function(_0x10be8b){return{'name':_0x10be8b[_0xa154('0x3c')],'type':_0x10be8b['type'][_0xa154('0x3d')]};});_0x1202fe[_0xa154('0x3e')]=_[_0xa154('0x3a')](_0x239741,_0xa154('0x38'));_0x1202fe['query']=_[_0xa154('0x3f')](_0x3dacbc[_0xa154('0x40')]);_0x1202fe[_0xa154('0x41')]=_[_0xa154('0x42')](_0x1202fe['model'],_0x1202fe[_0xa154('0x40')]);_0xfc7053[_0xa154('0x43')]=_[_0xa154('0x42')](_0x1202fe[_0xa154('0x3e')],qs['fields'](_0x3dacbc[_0xa154('0x40')][_0xa154('0x44')]));_0xfc7053[_0xa154('0x43')]=_0xfc7053['attributes'][_0xa154('0x45')]?_0xfc7053[_0xa154('0x43')]:_0x1202fe['model'];if(!_0x3dacbc[_0xa154('0x40')][_0xa154('0x46')](_0xa154('0x47'))){_0xfc7053['limit']=qs['limit'](_0x3dacbc[_0xa154('0x40')][_0xa154('0x30')]);_0xfc7053[_0xa154('0x2f')]=qs[_0xa154('0x2f')](_0x3dacbc['query'][_0xa154('0x2f')]);}_0xfc7053[_0xa154('0x48')]=qs[_0xa154('0x49')](_0x3dacbc[_0xa154('0x40')][_0xa154('0x49')]);_0xfc7053[_0xa154('0x4a')]=qs[_0xa154('0x41')](_[_0xa154('0x4b')](_0x3dacbc[_0xa154('0x40')],_0x1202fe[_0xa154('0x41')]));if(_0x3dacbc[_0xa154('0x40')]['filter']){_0xfc7053[_0xa154('0x4a')]=_[_0xa154('0x4c')](_0xfc7053[_0xa154('0x4a')],{'$or':_[_0xa154('0x3a')](_0x239741,function(_0x2313a5){if(_0x2313a5['type']!==_0xa154('0x4d')){var _0x5476a3={};_0x5476a3[_0x2313a5[_0xa154('0x38')]]={'$like':'%'+_0x3dacbc[_0xa154('0x40')][_0xa154('0x4e')]+'%'};return _0x5476a3;}})});}_0xfc7053=_[_0xa154('0x4c')]({},_0xfc7053,_0x3dacbc[_0xa154('0x4f')]);var _0x3fdecc={'where':_0xfc7053['where']};return db[_0xa154('0x50')][_0xa154('0x2e')](_0x3fdecc)[_0xa154('0x20')](function(_0x5df460){_0x1a9dd3['count']=_0x5df460;if(_0x3dacbc['query'][_0xa154('0x51')]){_0xfc7053[_0xa154('0x52')]=[{'all':!![]}];}return db[_0xa154('0x50')][_0xa154('0x53')](_0xfc7053);})['then'](function(_0x12a031){_0x1a9dd3[_0xa154('0x54')]=_0x12a031;return _0x1a9dd3;})['then'](respondWithFilteredResult(_0x530b4b,_0xfc7053))['catch'](handleError(_0x530b4b,null));};exports[_0xa154('0x55')]=function(_0x323824,_0x3d5674){var _0x2c2a40={'raw':![],'where':{'id':_0x323824[_0xa154('0x56')]['id']}},_0x4e6c7e={};_0x4e6c7e[_0xa154('0x3e')]=_[_0xa154('0x3f')](db[_0xa154('0x50')][_0xa154('0x3b')]);_0x4e6c7e[_0xa154('0x40')]=_[_0xa154('0x3f')](_0x323824['query']);_0x4e6c7e['filters']=_[_0xa154('0x42')](_0x4e6c7e[_0xa154('0x3e')],_0x4e6c7e[_0xa154('0x40')]);_0x2c2a40[_0xa154('0x43')]=_[_0xa154('0x42')](_0x4e6c7e['model'],qs[_0xa154('0x44')](_0x323824['query']['fields']));_0x2c2a40[_0xa154('0x43')]=_0x2c2a40['attributes']['length']?_0x2c2a40[_0xa154('0x43')]:_0x4e6c7e[_0xa154('0x3e')];if(_0x323824[_0xa154('0x40')][_0xa154('0x51')]){_0x2c2a40['include']=[{'all':!![]}];}_0x2c2a40=_[_0xa154('0x4c')]({},_0x2c2a40,_0x323824[_0xa154('0x4f')]);return db['DeskAccount']['find'](_0x2c2a40)['then'](handleEntityNotFound(_0x3d5674,null))['then'](respondWithResult(_0x3d5674,null))[_0xa154('0x29')](handleError(_0x3d5674,null));};exports[_0xa154('0x57')]=function(_0x1bfa2f,_0x50a28c){return db['DeskAccount'][_0xa154('0x57')](_0x1bfa2f[_0xa154('0x58')],{})[_0xa154('0x20')](respondWithResult(_0x50a28c,0xc9))[_0xa154('0x29')](handleError(_0x50a28c,null));};exports['update']=function(_0x437940,_0x50d1b1){if(_0x437940[_0xa154('0x58')]['id']){delete _0x437940[_0xa154('0x58')]['id'];}return db[_0xa154('0x50')][_0xa154('0x59')]({'where':{'id':_0x437940['params']['id']}})[_0xa154('0x20')](handleEntityNotFound(_0x50d1b1,null))[_0xa154('0x20')](saveUpdates(_0x437940[_0xa154('0x58')],null))[_0xa154('0x20')](respondWithResult(_0x50d1b1,null))[_0xa154('0x29')](handleError(_0x50d1b1,null));};exports[_0xa154('0x36')]=function(_0x5c9bb6,_0x5ac321){return db[_0xa154('0x50')][_0xa154('0x59')]({'where':{'id':_0x5c9bb6[_0xa154('0x56')]['id']}})['then'](handleEntityNotFound(_0x5ac321,null))[_0xa154('0x20')](removeEntity(_0x5ac321,null))[_0xa154('0x29')](handleError(_0x5ac321,null));};exports[_0xa154('0x5a')]=function(_0x533679,_0x418260,_0x199243){var _0x1c95a1={};var _0x3d65f5={};var _0x3a847e;var _0xa6b0ad;return db[_0xa154('0x50')][_0xa154('0x5b')]({'where':{'id':_0x533679[_0xa154('0x56')]['id']}})[_0xa154('0x20')](handleEntityNotFound(_0x418260,null))[_0xa154('0x20')](function(_0x54f91f){if(_0x54f91f){_0x3a847e=_0x54f91f;_0x3d65f5[_0xa154('0x3e')]=_['keys'](db[_0xa154('0x5c')][_0xa154('0x3b')]);_0x3d65f5['query']=_[_0xa154('0x3f')](_0x533679[_0xa154('0x40')]);_0x3d65f5[_0xa154('0x41')]=_[_0xa154('0x42')](_0x3d65f5[_0xa154('0x3e')],_0x3d65f5['query']);_0x1c95a1[_0xa154('0x43')]=_[_0xa154('0x42')](_0x3d65f5[_0xa154('0x3e')],qs['fields'](_0x533679[_0xa154('0x40')][_0xa154('0x44')]));_0x1c95a1[_0xa154('0x43')]=_0x1c95a1[_0xa154('0x43')][_0xa154('0x45')]?_0x1c95a1[_0xa154('0x43')]:_0x3d65f5['model'];_0x1c95a1[_0xa154('0x48')]=qs[_0xa154('0x49')](_0x533679[_0xa154('0x40')][_0xa154('0x49')]);_0x1c95a1[_0xa154('0x4a')]=qs[_0xa154('0x41')](_[_0xa154('0x4b')](_0x533679['query'],_0x3d65f5[_0xa154('0x41')]));if(_0x533679[_0xa154('0x40')]['filter']){_0x1c95a1[_0xa154('0x4a')]=_[_0xa154('0x4c')](_0x1c95a1['where'],{'$or':_[_0xa154('0x3a')](_0x1c95a1[_0xa154('0x43')],function(_0x348188){var _0x428c89={};_0x428c89[_0x348188]={'$like':'%'+_0x533679['query'][_0xa154('0x4e')]+'%'};return _0x428c89;})});}_0x1c95a1=_[_0xa154('0x4c')]({},_0x1c95a1,_0x533679[_0xa154('0x4f')]);return _0x3a847e[_0xa154('0x5a')](_0x1c95a1);}})['then'](function(_0x3fa396){if(_0x3fa396){_0xa6b0ad=_0x3fa396['length'];if(!_0x533679[_0xa154('0x40')][_0xa154('0x46')](_0xa154('0x47'))){_0x1c95a1[_0xa154('0x30')]=qs['limit'](_0x533679[_0xa154('0x40')]['limit']);_0x1c95a1[_0xa154('0x2f')]=qs[_0xa154('0x2f')](_0x533679[_0xa154('0x40')][_0xa154('0x2f')]);}return _0x3a847e['getConfigurations'](_0x1c95a1);}})[_0xa154('0x20')](function(_0x38caf5){if(_0x38caf5){return _0x38caf5?{'count':_0xa6b0ad,'rows':_0x38caf5}:null;}})[_0xa154('0x20')](respondWithResult(_0x418260,null))[_0xa154('0x29')](handleError(_0x418260,null));};exports[_0xa154('0x5d')]=function(_0xe0fad3,_0x29a5f8,_0x5ea1af){if(_0xe0fad3[_0xa154('0x58')]['id']){delete _0xe0fad3[_0xa154('0x58')]['id'];}return db[_0xa154('0x50')][_0xa154('0x5b')]({'where':{'id':_0xe0fad3[_0xa154('0x56')]['id']}})[_0xa154('0x20')](handleEntityNotFound(_0x29a5f8,null))[_0xa154('0x20')](function(_0x203c2e){if(_0x203c2e){_0xe0fad3['body'][_0xa154('0x5e')]=_0x203c2e['id'];_0xe0fad3[_0xa154('0x58')][_0xa154('0x5f')]=integrations[_0xa154('0x60')](_0xe0fad3[_0xa154('0x58')][_0xa154('0x61')],_0xe0fad3[_0xa154('0x58')][_0xa154('0x62')]);_0xe0fad3['body'][_0xa154('0x63')]=integrations[_0xa154('0x64')](_0xe0fad3[_0xa154('0x58')][_0xa154('0x61')],_0xe0fad3[_0xa154('0x58')][_0xa154('0x62')]);return db[_0xa154('0x5c')][_0xa154('0x57')](_0xe0fad3[_0xa154('0x58')],{'include':[{'model':db[_0xa154('0x65')],'as':_0xa154('0x5f')},{'model':db['DeskField'],'as':'Descriptions'}]});}return null;})[_0xa154('0x20')](respondWithResult(_0x29a5f8,null))[_0xa154('0x29')](handleError(_0x29a5f8,null));};exports[_0xa154('0x66')]=function(_0x187dba,_0x307633,_0x1f026c){var _0x4a11f6=[{'name':_0xa154('0x67'),'label':_0xa154('0x67'),'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 _0xa62c3='';return db[_0xa154('0x50')][_0xa154('0x5b')]({'where':{'id':_0x187dba[_0xa154('0x56')]['id']},'attributes':['id','remoteUri',_0xa154('0x68'),'username',_0xa154('0x69'),_0xa154('0x6a'),_0xa154('0x6b'),_0xa154('0x6c'),_0xa154('0x6d')]})[_0xa154('0x20')](handleEntityNotFound(_0x307633,null))['then'](function(_0x298d35){if(_0x298d35){_0xa62c3=_0x298d35[_0xa154('0x6e')];var _0x54cd48=_0xa62c3[_0xa154('0x6f')](-0x1);if(_0x54cd48==='/'){_0xa62c3=_0xa62c3[_0xa154('0x70')](0x0,_0xa62c3[_0xa154('0x71')](_0x54cd48));}var _0x507301={'method':_0xa154('0x72'),'uri':util[_0xa154('0x73')](_0xa154('0x74'),_0xa62c3),'headers':{'Content-Type':_0xa154('0x75'),'Accept':_0xa154('0x75')},'json':!![]};if(_0x298d35[_0xa154('0x68')]===_0xa154('0x76')){_0x507301['headers'][_0xa154('0x77')]=util[_0xa154('0x73')](_0xa154('0x78'),new Buffer(util[_0xa154('0x73')](_0xa154('0x79'),_0x298d35['username'],_0x298d35[_0xa154('0x69')]))[_0xa154('0x7a')](_0xa154('0x7b')));}return rp(_0x507301)[_0xa154('0x20')](function(_0x5306d8){return _0x4a11f6[_0xa154('0x7c')](_['map'](_0x5306d8[_0xa154('0x7d')]['entries'],function(_0x5e99ff){return{'id':_0x5e99ff[_0xa154('0x38')],'name':_0x5e99ff[_0xa154('0x38')],'type':_0x5e99ff[_0xa154('0x62')],'active':_0x5e99ff[_0xa154('0x7e')],'label':_0x5e99ff[_0xa154('0x7f')],'custom':!![]};}));});}})['then'](function(_0x3bf110){return{'count':_0x3bf110[_0xa154('0x45')],'rows':_0x3bf110};})[_0xa154('0x20')](respondWithResult(_0x307633,null))[_0xa154('0x29')](function(_0x22d586){var _0x3a8c98=_0x187dba[_0xa154('0x40')][_0xa154('0x1b')]?0x1f4:_0x22d586[_0xa154('0x80')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x3a8c98,JSON['stringify'](_0x22d586));delete _0x22d586[_0xa154('0x38')];if(_0x3a8c98===0x191){_0x3a8c98=0x190;}_0x307633[_0xa154('0x2b')](_0x3a8c98)['send'](_0x187dba[_0xa154('0x40')]['test']?{'message':_0xa154('0x81'),'statusCode':_0x22d586[_0xa154('0x80')]}:_0x22d586);});};