b4c928e241508213bdcd8e8562b1405c8064fe87
[motion2.git] / server / api / trunk / trunk.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 _0xe283=['../../components/parsers/qs','../../config/license/hardware','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~!@#$%^&-_=+[{]}.','then','request\x20sent','debug','error','code','Trunk,\x20%s,\x20%s','message','info','result','catch','end','status','json','count','offset','Content-Range','apply','reject','save','update','destroy','get','Trunks','UserProfileResource','sendStatus','name','send','index','map','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','limit','order','sort','where','pick','filter','merge','options','Trunk','findAll','rows','show','params','includeAll','include','find','omit','createdAt','body','updatedAt','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','root','server/files/templates/trunk.ejs','utf8','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','join','server/files/templates/registry.ejs','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','path','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service'];(function(_0x137f44,_0x182c1d){var _0x149fc4=function(_0x3eac25){while(--_0x3eac25){_0x137f44['push'](_0x137f44['shift']());}};_0x149fc4(++_0x182c1d);}(_0xe283,0xcb));var _0x3e28=function(_0x1be3b3,_0x4335ee){_0x1be3b3=_0x1be3b3-0x0;var _0x4f8b2d=_0xe283[_0x1be3b3];return _0x4f8b2d;};'use strict';var pdf=require(_0x3e28('0x0'));var emlformat=require(_0x3e28('0x1'));var rimraf=require(_0x3e28('0x2'));var zipdir=require(_0x3e28('0x3'));var jsonpatch=require(_0x3e28('0x4'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x3e28('0x5'));var Mustache=require(_0x3e28('0x6'));var util=require('util');var path=require(_0x3e28('0x7'));var sox=require('sox');var csv=require(_0x3e28('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x3e28('0x9'));var squel=require('squel');var crypto=require(_0x3e28('0xa'));var jsforce=require(_0x3e28('0xb'));var deskjs=require(_0x3e28('0xc'));var toCsv=require(_0x3e28('0x8'));var querystring=require(_0x3e28('0xd'));var Papa=require(_0x3e28('0xe'));var Redis=require(_0x3e28('0xf'));var authService=require(_0x3e28('0x10'));var qs=require(_0x3e28('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3e28('0x12'));var logger=require('../../config/logger')(_0x3e28('0x13'));var utils=require('../../config/utils');var config=require(_0x3e28('0x14'));var db=require(_0x3e28('0x15'))['db'];var jayson=require(_0x3e28('0x16'));var client=jayson[_0x3e28('0x17')][_0x3e28('0x18')]({'port':0x232a});function checkPasswordPattern(_0x25a8dc,_0x3bfa5a,_0x5694a6){if(_0x5694a6){var _0x4919e3=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x4919e3[_0x3e28('0x19')](_0x3bfa5a)){return _0x25a8dc;}else{throw new db[(_0x3e28('0x1a'))][(_0x3e28('0x1b'))](_0x3e28('0x1c'));}}else{return _0x25a8dc;}}function respondWithRpcPromise(_0x47fbf3,_0x51d1e1,_0x19c4b5,_0x149df1){return new BPromise(function(_0x20e0f8,_0x56978e){var _0x51278d=_0x149df1||client;return _0x51278d['request'](_0x47fbf3,_0x19c4b5)[_0x3e28('0x1d')](function(_0x4f7953){logger['info']('Trunk,\x20%s,\x20%s',_0x51d1e1,_0x3e28('0x1e'));logger[_0x3e28('0x1f')]('Trunk,\x20%s,\x20%s,\x20%s',_0x51d1e1,'request\x20sent',JSON['stringify'](_0x4f7953));if(_0x4f7953[_0x3e28('0x20')]){if(_0x4f7953['error'][_0x3e28('0x21')]===0x1f4){logger['error'](_0x3e28('0x22'),_0x51d1e1,_0x4f7953[_0x3e28('0x20')][_0x3e28('0x23')]);return _0x56978e(_0x4f7953['error'][_0x3e28('0x23')]);}logger[_0x3e28('0x20')](_0x3e28('0x22'),_0x51d1e1,_0x4f7953[_0x3e28('0x20')]['message']);return _0x20e0f8(_0x4f7953[_0x3e28('0x20')][_0x3e28('0x23')]);}else{logger[_0x3e28('0x24')]('Trunk,\x20%s,\x20%s',_0x51d1e1,_0x3e28('0x1e'));_0x20e0f8(_0x4f7953[_0x3e28('0x25')][_0x3e28('0x23')]);}})[_0x3e28('0x26')](function(_0x322d9b){logger[_0x3e28('0x20')](_0x3e28('0x22'),_0x51d1e1,_0x322d9b);_0x56978e(_0x322d9b);});});}function respondWithStatusCode(_0x55ff98,_0x20a50f){_0x20a50f=_0x20a50f||0xcc;return function(_0x12c2f1){if(_0x12c2f1){return _0x55ff98['sendStatus'](_0x20a50f);}return _0x55ff98['status'](_0x20a50f)[_0x3e28('0x27')]();};}function respondWithResult(_0x384339,_0x13f826){_0x13f826=_0x13f826||0xc8;return function(_0x456cd6){if(_0x456cd6){return _0x384339[_0x3e28('0x28')](_0x13f826)[_0x3e28('0x29')](_0x456cd6);}};}function respondWithFilteredResult(_0xdbf2ac,_0x1bdd5f){return function(_0x27e5bf){if(_0x27e5bf){var _0x251e3d=_0x27e5bf[_0x3e28('0x2a')],_0x439583=_0x1bdd5f[_0x3e28('0x2b')],_0x518f4c=_0x1bdd5f[_0x3e28('0x2b')]+_0x1bdd5f['limit'],_0x392eb7;if(_0x518f4c>=_0x251e3d){_0x518f4c=_0x251e3d;_0x392eb7=0xc8;}else{_0x392eb7=0xce;}_0xdbf2ac[_0x3e28('0x28')](_0x392eb7);return _0xdbf2ac['set'](_0x3e28('0x2c'),_0x439583+'-'+_0x518f4c+'/'+_0x251e3d)[_0x3e28('0x29')](_0x27e5bf);}return null;};}function patchUpdates(_0xf5fe06){return function(_0x241573){try{jsonpatch[_0x3e28('0x2d')](_0x241573,_0xf5fe06,!![]);}catch(_0x2a0115){return BPromise[_0x3e28('0x2e')](_0x2a0115);}return _0x241573[_0x3e28('0x2f')]();};}function saveUpdates(_0x59fdf2,_0x120319){return function(_0x3ef323){if(_0x3ef323){return _0x3ef323[_0x3e28('0x30')](_0x59fdf2)[_0x3e28('0x1d')](function(_0x25b621){return _0x25b621;});}return null;};}function removeEntity(_0x2aef7e,_0x3a27da){return function(_0x51a22b){if(_0x51a22b){return _0x51a22b[_0x3e28('0x31')]()[_0x3e28('0x1d')](function(){var _0x91d288=_0x51a22b[_0x3e28('0x32')]({'plain':!![]});var _0x40efbb=_0x3e28('0x33');return db[_0x3e28('0x34')][_0x3e28('0x31')]({'where':{'type':_0x40efbb,'resourceId':_0x91d288['id']}})['then'](function(){return _0x51a22b;});})[_0x3e28('0x1d')](function(){_0x2aef7e[_0x3e28('0x28')](0xcc)[_0x3e28('0x27')]();});}};}function handleEntityNotFound(_0x2ff737,_0x4f3f4d){return function(_0x17d58f){if(!_0x17d58f){_0x2ff737[_0x3e28('0x35')](0x194);}return _0x17d58f;};}function handleError(_0x2484bb,_0x15c717){_0x15c717=_0x15c717||0x1f4;return function(_0x1c7359){logger[_0x3e28('0x20')](_0x1c7359['stack']);if(_0x1c7359[_0x3e28('0x36')]){delete _0x1c7359[_0x3e28('0x36')];}_0x2484bb['status'](_0x15c717)[_0x3e28('0x37')](_0x1c7359);};}exports[_0x3e28('0x38')]=function(_0x352fc3,_0x439721){var _0x43bd54={},_0x5ec5b1={},_0x4d3859={'count':0x0,'rows':[]};var _0xcca0df=_[_0x3e28('0x39')](db['Trunk'][_0x3e28('0x3a')],function(_0x4377e5){return{'name':_0x4377e5['fieldName'],'type':_0x4377e5[_0x3e28('0x3b')][_0x3e28('0x3c')]};});_0x5ec5b1[_0x3e28('0x3d')]=_[_0x3e28('0x39')](_0xcca0df,_0x3e28('0x36'));_0x5ec5b1[_0x3e28('0x3e')]=_[_0x3e28('0x3f')](_0x352fc3[_0x3e28('0x3e')]);_0x5ec5b1[_0x3e28('0x40')]=_[_0x3e28('0x41')](_0x5ec5b1[_0x3e28('0x3d')],_0x5ec5b1[_0x3e28('0x3e')]);_0x43bd54[_0x3e28('0x42')]=_[_0x3e28('0x41')](_0x5ec5b1[_0x3e28('0x3d')],qs[_0x3e28('0x43')](_0x352fc3[_0x3e28('0x3e')][_0x3e28('0x43')]));_0x43bd54['attributes']=_0x43bd54['attributes'][_0x3e28('0x44')]?_0x43bd54['attributes']:_0x5ec5b1[_0x3e28('0x3d')];if(!_0x352fc3['query']['hasOwnProperty']('nolimit')){_0x43bd54['limit']=qs[_0x3e28('0x45')](_0x352fc3[_0x3e28('0x3e')][_0x3e28('0x45')]);_0x43bd54[_0x3e28('0x2b')]=qs['offset'](_0x352fc3['query'][_0x3e28('0x2b')]);}_0x43bd54[_0x3e28('0x46')]=qs[_0x3e28('0x47')](_0x352fc3['query'][_0x3e28('0x47')]);_0x43bd54[_0x3e28('0x48')]=qs[_0x3e28('0x40')](_[_0x3e28('0x49')](_0x352fc3[_0x3e28('0x3e')],_0x5ec5b1[_0x3e28('0x40')]));if(_0x352fc3[_0x3e28('0x3e')][_0x3e28('0x4a')]){_0x43bd54[_0x3e28('0x48')]=_[_0x3e28('0x4b')](_0x43bd54[_0x3e28('0x48')],{'$or':_[_0x3e28('0x39')](_0xcca0df,function(_0x32a11c){if(_0x32a11c[_0x3e28('0x3b')]!=='VIRTUAL'){var _0x201a1b={};_0x201a1b[_0x32a11c[_0x3e28('0x36')]]={'$like':'%'+_0x352fc3[_0x3e28('0x3e')]['filter']+'%'};return _0x201a1b;}})});}_0x43bd54=_[_0x3e28('0x4b')]({},_0x43bd54,_0x352fc3[_0x3e28('0x4c')]);var _0x1c40ec={'where':_0x43bd54[_0x3e28('0x48')]};return db[_0x3e28('0x4d')][_0x3e28('0x2a')](_0x1c40ec)[_0x3e28('0x1d')](function(_0x69884f){_0x4d3859[_0x3e28('0x2a')]=_0x69884f;if(_0x352fc3['query']['includeAll']){_0x43bd54['include']=[{'all':!![]}];}return db[_0x3e28('0x4d')][_0x3e28('0x4e')](_0x43bd54);})[_0x3e28('0x1d')](function(_0x1b6842){_0x4d3859[_0x3e28('0x4f')]=_0x1b6842;return _0x4d3859;})[_0x3e28('0x1d')](respondWithFilteredResult(_0x439721,_0x43bd54))[_0x3e28('0x26')](handleError(_0x439721,null));};exports[_0x3e28('0x50')]=function(_0x2b91e5,_0x675e2a){var _0x704c09={'raw':![],'where':{'id':_0x2b91e5[_0x3e28('0x51')]['id']}},_0x81317c={};_0x81317c[_0x3e28('0x3d')]=_[_0x3e28('0x3f')](db['Trunk']['rawAttributes']);_0x81317c[_0x3e28('0x3e')]=_[_0x3e28('0x3f')](_0x2b91e5['query']);_0x81317c[_0x3e28('0x40')]=_[_0x3e28('0x41')](_0x81317c[_0x3e28('0x3d')],_0x81317c['query']);_0x704c09[_0x3e28('0x42')]=_[_0x3e28('0x41')](_0x81317c[_0x3e28('0x3d')],qs['fields'](_0x2b91e5[_0x3e28('0x3e')][_0x3e28('0x43')]));_0x704c09['attributes']=_0x704c09[_0x3e28('0x42')][_0x3e28('0x44')]?_0x704c09[_0x3e28('0x42')]:_0x81317c[_0x3e28('0x3d')];if(_0x2b91e5[_0x3e28('0x3e')][_0x3e28('0x52')]){_0x704c09[_0x3e28('0x53')]=[{'all':!![]}];}_0x704c09=_[_0x3e28('0x4b')]({},_0x704c09,_0x2b91e5[_0x3e28('0x4c')]);return db[_0x3e28('0x4d')]['find'](_0x704c09)[_0x3e28('0x1d')](handleEntityNotFound(_0x675e2a,null))[_0x3e28('0x1d')](respondWithResult(_0x675e2a,null))['catch'](handleError(_0x675e2a,null));};exports['clone']=function(_0x4d93bc,_0x34a5af){var _0x3630e4={'where':{'id':_0x4d93bc[_0x3e28('0x51')]['id']}},_0x3ccb7b={};_0x3ccb7b[_0x3e28('0x3d')]=_[_0x3e28('0x3f')](db[_0x3e28('0x4d')][_0x3e28('0x3a')]);_0x3630e4[_0x3e28('0x42')]=_['intersection'](_0x3ccb7b['model'],qs['fields'](_0x4d93bc[_0x3e28('0x3e')]['fields']));_0x3630e4[_0x3e28('0x42')]=_0x3630e4['attributes']['length']?_0x3630e4[_0x3e28('0x42')]:_0x3ccb7b[_0x3e28('0x3d')];if(_0x4d93bc[_0x3e28('0x3e')][_0x3e28('0x52')]){_0x3630e4[_0x3e28('0x53')]=[{'all':!![]}];}_0x3630e4=_['merge']({},_0x3630e4,_0x4d93bc[_0x3e28('0x4c')]);return db[_0x3e28('0x4d')][_0x3e28('0x54')](_0x3630e4)['then'](handleEntityNotFound(_0x34a5af,null))['then'](function(_0x536ad6){if(_0x536ad6){var _0x427108=_0x536ad6[_0x3e28('0x32')]({'plain':!![]});_0x427108=qs[_0x3e28('0x55')](_0x427108,['id',_0x3e28('0x56'),'updatedAt']);_0x4d93bc[_0x3e28('0x57')]=_[_0x3e28('0x55')](_0x4d93bc['body'],['id',_0x3e28('0x56'),_0x3e28('0x58')]);return db['Trunk'][_0x3e28('0x59')](_[_0x3e28('0x4b')](_0x427108,_0x4d93bc[_0x3e28('0x57')]),{'include':_0x4d93bc['query'][_0x3e28('0x52')]?[{'all':!![]}]:undefined})[_0x3e28('0x1d')](function(_0x4eb8cf){var _0x1a1c18=_0x4d93bc[_0x3e28('0x5a')]['get']({'plain':!![]});if(!_0x1a1c18)throw new Error(_0x3e28('0x5b'));if(_0x1a1c18[_0x3e28('0x5c')]===_0x3e28('0x5a')){var _0x569049=_0x4eb8cf[_0x3e28('0x32')]({'plain':!![]});var _0x500b49='Trunks';return db[_0x3e28('0x5d')][_0x3e28('0x54')]({'where':{'name':_0x500b49,'userProfileId':_0x1a1c18[_0x3e28('0x5e')]},'raw':!![]})['then'](function(_0x1e39cb){if(_0x1e39cb&&_0x1e39cb[_0x3e28('0x5f')]===0x0){return db[_0x3e28('0x34')][_0x3e28('0x59')]({'name':_0x569049[_0x3e28('0x36')],'resourceId':_0x569049['id'],'type':_0x1e39cb[_0x3e28('0x36')],'sectionId':_0x1e39cb['id']},{})[_0x3e28('0x1d')](function(){return _0x4eb8cf;});}else{return _0x4eb8cf;}})[_0x3e28('0x26')](function(_0x4b8896){logger[_0x3e28('0x20')](_0x3e28('0x60'),_0x4b8896);throw _0x4b8896;});}return _0x4eb8cf;});}})['then'](respondWithResult(_0x34a5af,0xc9))['catch'](handleError(_0x34a5af,null));};exports['create']=function(_0x184925,_0x322414,_0x2b73f9){var _0xd12f98;return db[_0x3e28('0x4d')][_0x3e28('0x59')](_0x184925[_0x3e28('0x57')],{'raw':!![]})[_0x3e28('0x1d')](function(_0x4119d6){_0xd12f98=_0x4119d6;return db[_0x3e28('0x4d')][_0x3e28('0x4e')]({'raw':!![]});})['then'](function(_0x508fda){var _0x12f539=fs[_0x3e28('0x61')](path['join'](config[_0x3e28('0x62')],_0x3e28('0x63')),_0x3e28('0x64'));var _0x2a67ba=fs[_0x3e28('0x61')](path['join'](config[_0x3e28('0x62')],'server/files/templates/registry.ejs'),_0x3e28('0x64'));var _0x2ba721=ejs[_0x3e28('0x65')](_0x12f539,{'trunks':_0x508fda||[]});fs[_0x3e28('0x66')](_0x3e28('0x67'),_0x2ba721);if(_0xd12f98[_0x3e28('0x68')]){var _0x59f0dc=ejs[_0x3e28('0x65')](_0x2a67ba,{'trunks':_0x508fda||[]});fs[_0x3e28('0x66')](_0x3e28('0x69'),_0x59f0dc);}})[_0x3e28('0x1d')](function(){return respondWithRpcPromise(_0x3e28('0x6a'),'create',{'module':_0x3e28('0x6b')});})['then'](function(){var _0x7b08d2=_0x184925[_0x3e28('0x5a')][_0x3e28('0x32')]({'plain':!![]});if(!_0x7b08d2)throw new Error(_0x3e28('0x5b'));if(_0x7b08d2[_0x3e28('0x5c')]===_0x3e28('0x5a')){var _0x2e6b59=_0xd12f98['get']({'plain':!![]});return db['UserProfileSection'][_0x3e28('0x54')]({'where':{'name':_0x3e28('0x33'),'userProfileId':_0x7b08d2[_0x3e28('0x5e')]},'raw':!![]})['then'](function(_0x3152ca){if(_0x3152ca&&_0x3152ca[_0x3e28('0x5f')]===0x0){return db[_0x3e28('0x34')][_0x3e28('0x59')]({'name':_0x2e6b59[_0x3e28('0x36')],'resourceId':_0x2e6b59['id'],'type':_0x3152ca[_0x3e28('0x36')],'sectionId':_0x3152ca['id']},{})[_0x3e28('0x1d')](function(){return _0xd12f98;});}else{return _0xd12f98;}})[_0x3e28('0x26')](function(_0x40885d){logger[_0x3e28('0x20')](_0x3e28('0x60'),_0x40885d);throw _0x40885d;});}return _0xd12f98;})[_0x3e28('0x1d')](respondWithResult(_0x322414,0xc9))['catch'](handleError(_0x322414,null));};exports[_0x3e28('0x30')]=function(_0xfe4e49,_0x21978f,_0x399c74){var _0x146308;return db[_0x3e28('0x4d')][_0x3e28('0x54')]({'where':{'id':_0xfe4e49['params']['id']}})['then'](handleEntityNotFound(_0x21978f,null))['then'](saveUpdates(_0xfe4e49[_0x3e28('0x57')],null))[_0x3e28('0x1d')](function(_0x83951){if(_0x83951){_0x146308=_0x83951;return db[_0x3e28('0x4d')][_0x3e28('0x4e')]({'raw':!![]});}})[_0x3e28('0x1d')](function(_0x6917dd){if(_0x6917dd){var _0xc35bc2=fs[_0x3e28('0x61')](path[_0x3e28('0x6c')](config[_0x3e28('0x62')],_0x3e28('0x63')),'utf8');var _0x22a72d=fs['readFileSync'](path[_0x3e28('0x6c')](config[_0x3e28('0x62')],_0x3e28('0x6d')),_0x3e28('0x64'));var _0x43354e=ejs[_0x3e28('0x65')](_0xc35bc2,{'trunks':_0x6917dd||[]});fs[_0x3e28('0x66')]('/etc/asterisk/sip_xcally_trunks.conf',_0x43354e);var _0x3f4c77=ejs[_0x3e28('0x65')](_0x22a72d,{'trunks':_0x6917dd||[]});fs[_0x3e28('0x66')]('/etc/asterisk/sip_xcally_registers.conf',_0x3f4c77);return respondWithRpcPromise('Reload','update',{'module':'chan_sip.so'});}return null;})[_0x3e28('0x1d')](function(_0x33e8de){if(_0x33e8de){return _0x146308;}})['then'](respondWithResult(_0x21978f,null))[_0x3e28('0x26')](handleError(_0x21978f,null));};exports['destroy']=function(_0x36bead,_0xccd17d,_0x354333){var _0x8ce2d0;return db[_0x3e28('0x4d')][_0x3e28('0x54')]({'where':{'id':_0x36bead[_0x3e28('0x51')]['id']}})[_0x3e28('0x1d')](handleEntityNotFound(_0xccd17d,null))[_0x3e28('0x1d')](removeEntity(_0xccd17d,null))[_0x3e28('0x1d')](function(){return db['Trunk'][_0x3e28('0x4e')]({'raw':!![]});})[_0x3e28('0x1d')](function(_0x2de6e0){var _0x2f5464=fs['readFileSync'](path['join'](config['root'],_0x3e28('0x63')),_0x3e28('0x64'));var _0x14e3a0=fs[_0x3e28('0x61')](path['join'](config[_0x3e28('0x62')],'server/files/templates/registry.ejs'),_0x3e28('0x64'));var _0x5117a8=ejs['render'](_0x2f5464,{'trunks':_0x2de6e0});var _0x41a0ff=ejs[_0x3e28('0x65')](_0x14e3a0,{'trunks':_0x2de6e0});fs[_0x3e28('0x66')](_0x3e28('0x67'),_0x5117a8);fs[_0x3e28('0x66')](_0x3e28('0x69'),_0x41a0ff);return respondWithRpcPromise('Reload',_0x3e28('0x31'),{'module':_0x3e28('0x6b')});})[_0x3e28('0x26')](handleError(_0xccd17d,null));};