Built motion from commit (unavailable).|2.5.4
[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 _0x915a=['rows','catch','show','params','clone','find','get','omit','updatedAt','body','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','readFileSync','join','root','server/files/templates/trunk.ejs','server/files/templates/registry.ejs','utf8','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','util','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','client','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','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','error','code','message','result','sendStatus','status','end','json','count','offset','limit','set','reject','save','update','destroy','Trunks','UserProfileResource','stack','name','send','index','map','Trunk','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0x915a,0x1d2));var _0xa915=function(_0x262911,_0x1aa085){_0x262911=_0x262911-0x0;var _0x1879b3=_0x915a[_0x262911];return _0x1879b3;};'use strict';var pdf=require(_0xa915('0x0'));var emlformat=require(_0xa915('0x1'));var rimraf=require(_0xa915('0x2'));var zipdir=require(_0xa915('0x3'));var jsonpatch=require(_0xa915('0x4'));var rp=require('request-promise');var moment=require(_0xa915('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xa915('0x6'));var path=require(_0xa915('0x7'));var sox=require(_0xa915('0x8'));var csv=require(_0xa915('0x9'));var ejs=require(_0xa915('0xa'));var fs=require('fs');var _=require(_0xa915('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa915('0xc'));var deskjs=require(_0xa915('0xd'));var toCsv=require(_0xa915('0x9'));var querystring=require(_0xa915('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xa915('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xa915('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa915('0x11'))(_0xa915('0x12'));var utils=require(_0xa915('0x13'));var config=require(_0xa915('0x14'));var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var client=jayson[_0xa915('0x15')]['http']({'port':0x232a});function checkPasswordPattern(_0x274f4d,_0x563972,_0xb897e2){if(_0xb897e2){var _0x3aae6f=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x3aae6f[_0xa915('0x16')](_0x563972)){return _0x274f4d;}else{throw new db[(_0xa915('0x17'))][(_0xa915('0x18'))](_0xa915('0x19'));}}else{return _0x274f4d;}}function respondWithRpcPromise(_0x4c3f35,_0x23ecd8,_0x19889d,_0xf9f02c){return new BPromise(function(_0x590be6,_0x3284b8){var _0xf8046b=_0xf9f02c||client;return _0xf8046b[_0xa915('0x1a')](_0x4c3f35,_0x19889d)[_0xa915('0x1b')](function(_0x3f5aff){logger[_0xa915('0x1c')](_0xa915('0x1d'),_0x23ecd8,_0xa915('0x1e'));logger[_0xa915('0x1f')](_0xa915('0x20'),_0x23ecd8,_0xa915('0x1e'),JSON['stringify'](_0x3f5aff));if(_0x3f5aff[_0xa915('0x21')]){if(_0x3f5aff['error'][_0xa915('0x22')]===0x1f4){logger[_0xa915('0x21')](_0xa915('0x1d'),_0x23ecd8,_0x3f5aff[_0xa915('0x21')][_0xa915('0x23')]);return _0x3284b8(_0x3f5aff['error'][_0xa915('0x23')]);}logger[_0xa915('0x21')](_0xa915('0x1d'),_0x23ecd8,_0x3f5aff[_0xa915('0x21')][_0xa915('0x23')]);return _0x590be6(_0x3f5aff[_0xa915('0x21')]['message']);}else{logger[_0xa915('0x1c')](_0xa915('0x1d'),_0x23ecd8,_0xa915('0x1e'));_0x590be6(_0x3f5aff[_0xa915('0x24')]['message']);}})['catch'](function(_0x34a8c6){logger['error'](_0xa915('0x1d'),_0x23ecd8,_0x34a8c6);_0x3284b8(_0x34a8c6);});});}function respondWithStatusCode(_0x3b8cbb,_0x3898cc){_0x3898cc=_0x3898cc||0xcc;return function(_0x462b94){if(_0x462b94){return _0x3b8cbb[_0xa915('0x25')](_0x3898cc);}return _0x3b8cbb[_0xa915('0x26')](_0x3898cc)[_0xa915('0x27')]();};}function respondWithResult(_0x525f55,_0x152d6e){_0x152d6e=_0x152d6e||0xc8;return function(_0x1bb9e4){if(_0x1bb9e4){return _0x525f55['status'](_0x152d6e)[_0xa915('0x28')](_0x1bb9e4);}};}function respondWithFilteredResult(_0x1645d5,_0x3d7251){return function(_0x30bfe2){if(_0x30bfe2){var _0x5a62c0=_0x30bfe2[_0xa915('0x29')],_0x3cca8e=_0x3d7251[_0xa915('0x2a')],_0x427742=_0x3d7251[_0xa915('0x2a')]+_0x3d7251[_0xa915('0x2b')],_0x486ca1;if(_0x427742>=_0x5a62c0){_0x427742=_0x5a62c0;_0x486ca1=0xc8;}else{_0x486ca1=0xce;}_0x1645d5[_0xa915('0x26')](_0x486ca1);return _0x1645d5[_0xa915('0x2c')]('Content-Range',_0x3cca8e+'-'+_0x427742+'/'+_0x5a62c0)[_0xa915('0x28')](_0x30bfe2);}return null;};}function patchUpdates(_0x319238){return function(_0x119d36){try{jsonpatch['apply'](_0x119d36,_0x319238,!![]);}catch(_0x29de2a){return BPromise[_0xa915('0x2d')](_0x29de2a);}return _0x119d36[_0xa915('0x2e')]();};}function saveUpdates(_0x4a367d,_0x3e20c8){return function(_0x39482f){if(_0x39482f){return _0x39482f[_0xa915('0x2f')](_0x4a367d)[_0xa915('0x1b')](function(_0x4e8968){return _0x4e8968;});}return null;};}function removeEntity(_0x4de4c9,_0x2cf0f0){return function(_0x3dc789){if(_0x3dc789){return _0x3dc789[_0xa915('0x30')]()['then'](function(){var _0xe82283=_0x3dc789['get']({'plain':!![]});var _0x680b13=_0xa915('0x31');return db[_0xa915('0x32')][_0xa915('0x30')]({'where':{'type':_0x680b13,'resourceId':_0xe82283['id']}})[_0xa915('0x1b')](function(){return _0x3dc789;});})[_0xa915('0x1b')](function(){_0x4de4c9[_0xa915('0x26')](0xcc)['end']();});}};}function handleEntityNotFound(_0x252643,_0x3ab97d){return function(_0x42a0f7){if(!_0x42a0f7){_0x252643[_0xa915('0x25')](0x194);}return _0x42a0f7;};}function handleError(_0x67cec1,_0x3bc4d0){_0x3bc4d0=_0x3bc4d0||0x1f4;return function(_0x489945){logger[_0xa915('0x21')](_0x489945[_0xa915('0x33')]);if(_0x489945[_0xa915('0x34')]){delete _0x489945[_0xa915('0x34')];}_0x67cec1[_0xa915('0x26')](_0x3bc4d0)[_0xa915('0x35')](_0x489945);};}exports[_0xa915('0x36')]=function(_0x57f120,_0x5d9d18){var _0x50ff83={},_0x4a74c3={},_0x277686={'count':0x0,'rows':[]};var _0x23d976=_[_0xa915('0x37')](db[_0xa915('0x38')][_0xa915('0x39')],function(_0x3985e7){return{'name':_0x3985e7[_0xa915('0x3a')],'type':_0x3985e7[_0xa915('0x3b')][_0xa915('0x3c')]};});_0x4a74c3[_0xa915('0x3d')]=_[_0xa915('0x37')](_0x23d976,_0xa915('0x34'));_0x4a74c3[_0xa915('0x3e')]=_[_0xa915('0x3f')](_0x57f120['query']);_0x4a74c3[_0xa915('0x40')]=_[_0xa915('0x41')](_0x4a74c3[_0xa915('0x3d')],_0x4a74c3[_0xa915('0x3e')]);_0x50ff83[_0xa915('0x42')]=_['intersection'](_0x4a74c3[_0xa915('0x3d')],qs[_0xa915('0x43')](_0x57f120[_0xa915('0x3e')][_0xa915('0x43')]));_0x50ff83['attributes']=_0x50ff83[_0xa915('0x42')][_0xa915('0x44')]?_0x50ff83[_0xa915('0x42')]:_0x4a74c3[_0xa915('0x3d')];if(!_0x57f120[_0xa915('0x3e')][_0xa915('0x45')](_0xa915('0x46'))){_0x50ff83[_0xa915('0x2b')]=qs['limit'](_0x57f120[_0xa915('0x3e')][_0xa915('0x2b')]);_0x50ff83[_0xa915('0x2a')]=qs[_0xa915('0x2a')](_0x57f120['query'][_0xa915('0x2a')]);}_0x50ff83['order']=qs[_0xa915('0x47')](_0x57f120[_0xa915('0x3e')]['sort']);_0x50ff83[_0xa915('0x48')]=qs['filters'](_['pick'](_0x57f120[_0xa915('0x3e')],_0x4a74c3[_0xa915('0x40')]),_0x23d976);if(_0x57f120[_0xa915('0x3e')][_0xa915('0x49')]){_0x50ff83[_0xa915('0x48')]=_[_0xa915('0x4a')](_0x50ff83['where'],{'$or':_[_0xa915('0x37')](_0x23d976,function(_0x6cc2c5){if(_0x6cc2c5[_0xa915('0x3b')]!==_0xa915('0x4b')){var _0x3739c7={};_0x3739c7[_0x6cc2c5[_0xa915('0x34')]]={'$like':'%'+_0x57f120[_0xa915('0x3e')][_0xa915('0x49')]+'%'};return _0x3739c7;}})});}_0x50ff83=_['merge']({},_0x50ff83,_0x57f120['options']);var _0x1a0545={'where':_0x50ff83[_0xa915('0x48')]};return db[_0xa915('0x38')][_0xa915('0x29')](_0x1a0545)[_0xa915('0x1b')](function(_0x22b82d){_0x277686['count']=_0x22b82d;if(_0x57f120[_0xa915('0x3e')][_0xa915('0x4c')]){_0x50ff83[_0xa915('0x4d')]=[{'all':!![]}];}return db[_0xa915('0x38')][_0xa915('0x4e')](_0x50ff83);})[_0xa915('0x1b')](function(_0x40a57e){_0x277686[_0xa915('0x4f')]=_0x40a57e;return _0x277686;})['then'](respondWithFilteredResult(_0x5d9d18,_0x50ff83))[_0xa915('0x50')](handleError(_0x5d9d18,null));};exports[_0xa915('0x51')]=function(_0x4744ef,_0x1c2230){var _0x2ac04b={'raw':![],'where':{'id':_0x4744ef[_0xa915('0x52')]['id']}},_0x3f485={};_0x3f485[_0xa915('0x3d')]=_[_0xa915('0x3f')](db[_0xa915('0x38')]['rawAttributes']);_0x3f485['query']=_['keys'](_0x4744ef[_0xa915('0x3e')]);_0x3f485[_0xa915('0x40')]=_[_0xa915('0x41')](_0x3f485[_0xa915('0x3d')],_0x3f485['query']);_0x2ac04b[_0xa915('0x42')]=_[_0xa915('0x41')](_0x3f485[_0xa915('0x3d')],qs[_0xa915('0x43')](_0x4744ef[_0xa915('0x3e')][_0xa915('0x43')]));_0x2ac04b[_0xa915('0x42')]=_0x2ac04b['attributes'][_0xa915('0x44')]?_0x2ac04b[_0xa915('0x42')]:_0x3f485[_0xa915('0x3d')];if(_0x4744ef[_0xa915('0x3e')][_0xa915('0x4c')]){_0x2ac04b['include']=[{'all':!![]}];}_0x2ac04b=_[_0xa915('0x4a')]({},_0x2ac04b,_0x4744ef['options']);return db['Trunk']['find'](_0x2ac04b)[_0xa915('0x1b')](handleEntityNotFound(_0x1c2230,null))[_0xa915('0x1b')](respondWithResult(_0x1c2230,null))[_0xa915('0x50')](handleError(_0x1c2230,null));};exports[_0xa915('0x53')]=function(_0x5b83c5,_0x9fff41){var _0x107af9={'where':{'id':_0x5b83c5[_0xa915('0x52')]['id']}},_0x19259b={};_0x19259b[_0xa915('0x3d')]=_[_0xa915('0x3f')](db[_0xa915('0x38')][_0xa915('0x39')]);_0x107af9[_0xa915('0x42')]=_[_0xa915('0x41')](_0x19259b[_0xa915('0x3d')],qs['fields'](_0x5b83c5[_0xa915('0x3e')][_0xa915('0x43')]));_0x107af9[_0xa915('0x42')]=_0x107af9[_0xa915('0x42')][_0xa915('0x44')]?_0x107af9[_0xa915('0x42')]:_0x19259b[_0xa915('0x3d')];if(_0x5b83c5['query']['includeAll']){_0x107af9[_0xa915('0x4d')]=[{'all':!![]}];}_0x107af9=_[_0xa915('0x4a')]({},_0x107af9,_0x5b83c5['options']);return db[_0xa915('0x38')][_0xa915('0x54')](_0x107af9)['then'](handleEntityNotFound(_0x9fff41,null))[_0xa915('0x1b')](function(_0x228ff8){if(_0x228ff8){var _0x4a3e14=_0x228ff8[_0xa915('0x55')]({'plain':!![]});_0x4a3e14=qs[_0xa915('0x56')](_0x4a3e14,['id','createdAt',_0xa915('0x57')]);_0x5b83c5[_0xa915('0x58')]=_[_0xa915('0x56')](_0x5b83c5[_0xa915('0x58')],['id','createdAt','updatedAt']);return db[_0xa915('0x38')][_0xa915('0x59')](_[_0xa915('0x4a')](_0x4a3e14,_0x5b83c5[_0xa915('0x58')]),{'include':_0x5b83c5[_0xa915('0x3e')][_0xa915('0x4c')]?[{'all':!![]}]:undefined})[_0xa915('0x1b')](function(_0x361cb2){var _0x5c290e=_0x5b83c5[_0xa915('0x5a')][_0xa915('0x55')]({'plain':!![]});if(!_0x5c290e)throw new Error(_0xa915('0x5b'));if(_0x5c290e[_0xa915('0x5c')]===_0xa915('0x5a')){var _0x3f2b09=_0x361cb2[_0xa915('0x55')]({'plain':!![]});var _0x3c21a2=_0xa915('0x31');return db['UserProfileSection'][_0xa915('0x54')]({'where':{'name':_0x3c21a2,'userProfileId':_0x5c290e[_0xa915('0x5d')]},'raw':!![]})[_0xa915('0x1b')](function(_0x3cf7d6){if(_0x3cf7d6&&_0x3cf7d6['autoAssociation']===0x0){return db[_0xa915('0x32')][_0xa915('0x59')]({'name':_0x3f2b09[_0xa915('0x34')],'resourceId':_0x3f2b09['id'],'type':_0x3cf7d6[_0xa915('0x34')],'sectionId':_0x3cf7d6['id']},{})[_0xa915('0x1b')](function(){return _0x361cb2;});}else{return _0x361cb2;}})[_0xa915('0x50')](function(_0x4b1d34){logger[_0xa915('0x21')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4b1d34);throw _0x4b1d34;});}return _0x361cb2;});}})[_0xa915('0x1b')](respondWithResult(_0x9fff41,0xc9))[_0xa915('0x50')](handleError(_0x9fff41,null));};exports[_0xa915('0x59')]=function(_0x3ddcfd,_0x525217,_0x2c50ec){var _0x601ecb;return db[_0xa915('0x38')]['create'](_0x3ddcfd[_0xa915('0x58')],{'raw':!![]})[_0xa915('0x1b')](function(_0x4b1102){_0x601ecb=_0x4b1102;return db[_0xa915('0x38')][_0xa915('0x4e')]({'raw':!![]});})[_0xa915('0x1b')](function(_0x1f8eb3){var _0x1e5eca=fs[_0xa915('0x5e')](path[_0xa915('0x5f')](config[_0xa915('0x60')],_0xa915('0x61')),'utf8');var _0x4fa2e6=fs[_0xa915('0x5e')](path['join'](config['root'],_0xa915('0x62')),_0xa915('0x63'));var _0x12de88=ejs[_0xa915('0x64')](_0x1e5eca,{'trunks':_0x1f8eb3||[]});fs[_0xa915('0x65')](_0xa915('0x66'),_0x12de88);if(_0x601ecb[_0xa915('0x67')]){var _0xbd2935=ejs[_0xa915('0x64')](_0x4fa2e6,{'trunks':_0x1f8eb3||[]});fs[_0xa915('0x65')](_0xa915('0x68'),_0xbd2935);}})['then'](function(){return respondWithRpcPromise(_0xa915('0x69'),_0xa915('0x59'),{'module':_0xa915('0x6a')});})['then'](function(){var _0x2d3ae8=_0x3ddcfd[_0xa915('0x5a')][_0xa915('0x55')]({'plain':!![]});if(!_0x2d3ae8)throw new Error(_0xa915('0x5b'));if(_0x2d3ae8[_0xa915('0x5c')]==='user'){var _0x342db9=_0x601ecb[_0xa915('0x55')]({'plain':!![]});return db['UserProfileSection'][_0xa915('0x54')]({'where':{'name':'Trunks','userProfileId':_0x2d3ae8[_0xa915('0x5d')]},'raw':!![]})[_0xa915('0x1b')](function(_0x461634){if(_0x461634&&_0x461634[_0xa915('0x6b')]===0x0){return db[_0xa915('0x32')][_0xa915('0x59')]({'name':_0x342db9[_0xa915('0x34')],'resourceId':_0x342db9['id'],'type':_0x461634[_0xa915('0x34')],'sectionId':_0x461634['id']},{})[_0xa915('0x1b')](function(){return _0x601ecb;});}else{return _0x601ecb;}})['catch'](function(_0x5dd438){logger[_0xa915('0x21')](_0xa915('0x6c'),_0x5dd438);throw _0x5dd438;});}return _0x601ecb;})[_0xa915('0x1b')](respondWithResult(_0x525217,0xc9))['catch'](handleError(_0x525217,null));};exports[_0xa915('0x2f')]=function(_0x2df02a,_0x376365,_0x369033){var _0x5d8d44;return db[_0xa915('0x38')]['find']({'where':{'id':_0x2df02a[_0xa915('0x52')]['id']}})[_0xa915('0x1b')](handleEntityNotFound(_0x376365,null))['then'](saveUpdates(_0x2df02a[_0xa915('0x58')],null))[_0xa915('0x1b')](function(_0x589b62){if(_0x589b62){_0x5d8d44=_0x589b62;return db['Trunk']['findAll']({'raw':!![]});}})[_0xa915('0x1b')](function(_0x24e04e){if(_0x24e04e){var _0x58e488=fs['readFileSync'](path[_0xa915('0x5f')](config[_0xa915('0x60')],_0xa915('0x61')),_0xa915('0x63'));var _0x5e2ebe=fs['readFileSync'](path[_0xa915('0x5f')](config[_0xa915('0x60')],_0xa915('0x62')),_0xa915('0x63'));var _0x530ecb=ejs['render'](_0x58e488,{'trunks':_0x24e04e||[]});fs[_0xa915('0x65')](_0xa915('0x66'),_0x530ecb);var _0x463151=ejs[_0xa915('0x64')](_0x5e2ebe,{'trunks':_0x24e04e||[]});fs[_0xa915('0x65')](_0xa915('0x68'),_0x463151);return respondWithRpcPromise(_0xa915('0x69'),'update',{'module':_0xa915('0x6a')});}return null;})['then'](function(_0x31099f){if(_0x31099f){return _0x5d8d44;}})[_0xa915('0x1b')](respondWithResult(_0x376365,null))[_0xa915('0x50')](handleError(_0x376365,null));};exports['destroy']=function(_0x296206,_0x320be8,_0x5c850e){var _0x113717;return db[_0xa915('0x38')][_0xa915('0x54')]({'where':{'id':_0x296206[_0xa915('0x52')]['id']}})[_0xa915('0x1b')](handleEntityNotFound(_0x320be8,null))[_0xa915('0x1b')](removeEntity(_0x320be8,null))['then'](function(){return db[_0xa915('0x38')][_0xa915('0x4e')]({'raw':!![]});})[_0xa915('0x1b')](function(_0x4db568){var _0x2e2b31=fs[_0xa915('0x5e')](path['join'](config[_0xa915('0x60')],'server/files/templates/trunk.ejs'),'utf8');var _0x41dd4c=fs[_0xa915('0x5e')](path[_0xa915('0x5f')](config['root'],_0xa915('0x62')),_0xa915('0x63'));var _0x2edd05=ejs['render'](_0x2e2b31,{'trunks':_0x4db568});var _0x35d712=ejs[_0xa915('0x64')](_0x41dd4c,{'trunks':_0x4db568});fs[_0xa915('0x65')](_0xa915('0x66'),_0x2edd05);fs[_0xa915('0x65')](_0xa915('0x68'),_0x35d712);return respondWithRpcPromise(_0xa915('0x69'),_0xa915('0x30'),{'module':_0xa915('0x6a')});})[_0xa915('0x50')](handleError(_0x320be8,null));};