Built motion from commit (unavailable).|2.4.18
[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 _0x30a0=['limit','status','Content-Range','apply','reject','update','destroy','Trunks','UserProfileResource','name','send','map','Trunk','rawAttributes','fieldName','type','key','model','query','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','options','include','findAll','catch','show','keys','intersection','includeAll','merge','clone','params','find','get','omit','updatedAt','body','createdAt','create','user','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','root','utf8','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry','chan_sip.so','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','join','server/files/templates/trunk.ejs','Reload','server/files/templates/registry.ejs','/etc/asterisk/sip_xcally_registers.conf','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../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~!@#$%^&-_=+[{]}.','request','then','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','message','info','sendStatus','end','json','count','offset'];(function(_0x3a0fec,_0x3a4380){var _0x214f18=function(_0x5f292e){while(--_0x5f292e){_0x3a0fec['push'](_0x3a0fec['shift']());}};_0x214f18(++_0x3a4380);}(_0x30a0,0x19b));var _0x030a=function(_0x27d1e7,_0x2b450f){_0x27d1e7=_0x27d1e7-0x0;var _0x185341=_0x30a0[_0x27d1e7];return _0x185341;};'use strict';var pdf=require(_0x030a('0x0'));var emlformat=require(_0x030a('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x030a('0x2'));var jsonpatch=require(_0x030a('0x3'));var rp=require(_0x030a('0x4'));var moment=require(_0x030a('0x5'));var BPromise=require(_0x030a('0x6'));var Mustache=require(_0x030a('0x7'));var util=require('util');var path=require(_0x030a('0x8'));var sox=require(_0x030a('0x9'));var csv=require(_0x030a('0xa'));var ejs=require(_0x030a('0xb'));var fs=require('fs');var _=require(_0x030a('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x030a('0xd'));var deskjs=require(_0x030a('0xe'));var toCsv=require(_0x030a('0xa'));var querystring=require(_0x030a('0xf'));var Papa=require('papaparse');var Redis=require(_0x030a('0x10'));var authService=require(_0x030a('0x11'));var qs=require(_0x030a('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x030a('0x13'));var logger=require('../../config/logger')(_0x030a('0x14'));var utils=require('../../config/utils');var config=require(_0x030a('0x15'));var db=require(_0x030a('0x16'))['db'];var jayson=require(_0x030a('0x17'));var client=jayson[_0x030a('0x18')][_0x030a('0x19')]({'port':0x232a});function checkPasswordPattern(_0x162561,_0x131694,_0x2452cc){if(_0x2452cc){var _0x29f225=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x29f225[_0x030a('0x1a')](_0x131694)){return _0x162561;}else{throw new db[(_0x030a('0x1b'))][(_0x030a('0x1c'))](_0x030a('0x1d'));}}else{return _0x162561;}}function respondWithRpcPromise(_0x1b23de,_0x35db9b,_0x2365c1,_0xd4b125){return new BPromise(function(_0xd05e67,_0x305407){var _0x213a53=_0xd4b125||client;return _0x213a53[_0x030a('0x1e')](_0x1b23de,_0x2365c1)[_0x030a('0x1f')](function(_0x3698d2){logger['info'](_0x030a('0x20'),_0x35db9b,_0x030a('0x21'));logger[_0x030a('0x22')](_0x030a('0x23'),_0x35db9b,'request\x20sent',JSON[_0x030a('0x24')](_0x3698d2));if(_0x3698d2[_0x030a('0x25')]){if(_0x3698d2['error']['code']===0x1f4){logger['error'](_0x030a('0x20'),_0x35db9b,_0x3698d2['error']['message']);return _0x305407(_0x3698d2[_0x030a('0x25')][_0x030a('0x26')]);}logger[_0x030a('0x25')](_0x030a('0x20'),_0x35db9b,_0x3698d2[_0x030a('0x25')]['message']);return _0xd05e67(_0x3698d2['error'][_0x030a('0x26')]);}else{logger[_0x030a('0x27')](_0x030a('0x20'),_0x35db9b,_0x030a('0x21'));_0xd05e67(_0x3698d2['result'][_0x030a('0x26')]);}})['catch'](function(_0xcdd2ac){logger[_0x030a('0x25')]('Trunk,\x20%s,\x20%s',_0x35db9b,_0xcdd2ac);_0x305407(_0xcdd2ac);});});}function respondWithStatusCode(_0x469fe5,_0xb559f8){_0xb559f8=_0xb559f8||0xcc;return function(_0x195390){if(_0x195390){return _0x469fe5[_0x030a('0x28')](_0xb559f8);}return _0x469fe5['status'](_0xb559f8)[_0x030a('0x29')]();};}function respondWithResult(_0x179169,_0x19cdb3){_0x19cdb3=_0x19cdb3||0xc8;return function(_0x228beb){if(_0x228beb){return _0x179169['status'](_0x19cdb3)[_0x030a('0x2a')](_0x228beb);}};}function respondWithFilteredResult(_0x4b2f80,_0x13c408){return function(_0x1c7075){if(_0x1c7075){var _0x4da8b6=_0x1c7075[_0x030a('0x2b')],_0x1c0eda=_0x13c408[_0x030a('0x2c')],_0x201089=_0x13c408[_0x030a('0x2c')]+_0x13c408[_0x030a('0x2d')],_0x4e3020;if(_0x201089>=_0x4da8b6){_0x201089=_0x4da8b6;_0x4e3020=0xc8;}else{_0x4e3020=0xce;}_0x4b2f80[_0x030a('0x2e')](_0x4e3020);return _0x4b2f80['set'](_0x030a('0x2f'),_0x1c0eda+'-'+_0x201089+'/'+_0x4da8b6)[_0x030a('0x2a')](_0x1c7075);}return null;};}function patchUpdates(_0xef9f21){return function(_0x561966){try{jsonpatch[_0x030a('0x30')](_0x561966,_0xef9f21,!![]);}catch(_0x22df6b){return BPromise[_0x030a('0x31')](_0x22df6b);}return _0x561966['save']();};}function saveUpdates(_0x339f82,_0xfb782f){return function(_0x497e3d){if(_0x497e3d){return _0x497e3d[_0x030a('0x32')](_0x339f82)[_0x030a('0x1f')](function(_0x529629){return _0x529629;});}return null;};}function removeEntity(_0x5afbe6,_0x334367){return function(_0x51172e){if(_0x51172e){return _0x51172e[_0x030a('0x33')]()[_0x030a('0x1f')](function(){var _0x440b45=_0x51172e['get']({'plain':!![]});var _0x477be2=_0x030a('0x34');return db[_0x030a('0x35')][_0x030a('0x33')]({'where':{'type':_0x477be2,'resourceId':_0x440b45['id']}})[_0x030a('0x1f')](function(){return _0x51172e;});})['then'](function(){_0x5afbe6['status'](0xcc)[_0x030a('0x29')]();});}};}function handleEntityNotFound(_0x464b12,_0x142cc5){return function(_0x255c3a){if(!_0x255c3a){_0x464b12[_0x030a('0x28')](0x194);}return _0x255c3a;};}function handleError(_0x2dee74,_0x8d9366){_0x8d9366=_0x8d9366||0x1f4;return function(_0x366037){logger[_0x030a('0x25')](_0x366037['stack']);if(_0x366037[_0x030a('0x36')]){delete _0x366037[_0x030a('0x36')];}_0x2dee74[_0x030a('0x2e')](_0x8d9366)[_0x030a('0x37')](_0x366037);};}exports['index']=function(_0x1d91cb,_0x2031a8){var _0x5a8617={},_0x28af38={},_0x3ddc40={'count':0x0,'rows':[]};var _0x669f10=_[_0x030a('0x38')](db[_0x030a('0x39')][_0x030a('0x3a')],function(_0x42a19b){return{'name':_0x42a19b[_0x030a('0x3b')],'type':_0x42a19b[_0x030a('0x3c')][_0x030a('0x3d')]};});_0x28af38[_0x030a('0x3e')]=_[_0x030a('0x38')](_0x669f10,_0x030a('0x36'));_0x28af38[_0x030a('0x3f')]=_['keys'](_0x1d91cb[_0x030a('0x3f')]);_0x28af38[_0x030a('0x40')]=_['intersection'](_0x28af38[_0x030a('0x3e')],_0x28af38['query']);_0x5a8617[_0x030a('0x41')]=_['intersection'](_0x28af38[_0x030a('0x3e')],qs[_0x030a('0x42')](_0x1d91cb[_0x030a('0x3f')][_0x030a('0x42')]));_0x5a8617[_0x030a('0x41')]=_0x5a8617[_0x030a('0x41')][_0x030a('0x43')]?_0x5a8617[_0x030a('0x41')]:_0x28af38[_0x030a('0x3e')];if(!_0x1d91cb[_0x030a('0x3f')][_0x030a('0x44')](_0x030a('0x45'))){_0x5a8617[_0x030a('0x2d')]=qs[_0x030a('0x2d')](_0x1d91cb[_0x030a('0x3f')][_0x030a('0x2d')]);_0x5a8617[_0x030a('0x2c')]=qs[_0x030a('0x2c')](_0x1d91cb['query'][_0x030a('0x2c')]);}_0x5a8617[_0x030a('0x46')]=qs[_0x030a('0x47')](_0x1d91cb[_0x030a('0x3f')][_0x030a('0x47')]);_0x5a8617[_0x030a('0x48')]=qs[_0x030a('0x40')](_[_0x030a('0x49')](_0x1d91cb[_0x030a('0x3f')],_0x28af38[_0x030a('0x40')]));if(_0x1d91cb[_0x030a('0x3f')][_0x030a('0x4a')]){_0x5a8617[_0x030a('0x48')]=_['merge'](_0x5a8617[_0x030a('0x48')],{'$or':_[_0x030a('0x38')](_0x669f10,function(_0x373973){if(_0x373973[_0x030a('0x3c')]!==_0x030a('0x4b')){var _0x48fc55={};_0x48fc55[_0x373973[_0x030a('0x36')]]={'$like':'%'+_0x1d91cb['query'][_0x030a('0x4a')]+'%'};return _0x48fc55;}})});}_0x5a8617=_['merge']({},_0x5a8617,_0x1d91cb[_0x030a('0x4c')]);var _0x1e9985={'where':_0x5a8617[_0x030a('0x48')]};return db[_0x030a('0x39')][_0x030a('0x2b')](_0x1e9985)[_0x030a('0x1f')](function(_0xe9b627){_0x3ddc40[_0x030a('0x2b')]=_0xe9b627;if(_0x1d91cb[_0x030a('0x3f')]['includeAll']){_0x5a8617[_0x030a('0x4d')]=[{'all':!![]}];}return db[_0x030a('0x39')][_0x030a('0x4e')](_0x5a8617);})[_0x030a('0x1f')](function(_0x59c0c0){_0x3ddc40['rows']=_0x59c0c0;return _0x3ddc40;})[_0x030a('0x1f')](respondWithFilteredResult(_0x2031a8,_0x5a8617))[_0x030a('0x4f')](handleError(_0x2031a8,null));};exports[_0x030a('0x50')]=function(_0x3877aa,_0x27b4e1){var _0x5615d8={'raw':![],'where':{'id':_0x3877aa['params']['id']}},_0x2099a0={};_0x2099a0[_0x030a('0x3e')]=_[_0x030a('0x51')](db[_0x030a('0x39')][_0x030a('0x3a')]);_0x2099a0[_0x030a('0x3f')]=_[_0x030a('0x51')](_0x3877aa[_0x030a('0x3f')]);_0x2099a0[_0x030a('0x40')]=_[_0x030a('0x52')](_0x2099a0[_0x030a('0x3e')],_0x2099a0['query']);_0x5615d8[_0x030a('0x41')]=_[_0x030a('0x52')](_0x2099a0[_0x030a('0x3e')],qs[_0x030a('0x42')](_0x3877aa['query'][_0x030a('0x42')]));_0x5615d8[_0x030a('0x41')]=_0x5615d8[_0x030a('0x41')][_0x030a('0x43')]?_0x5615d8[_0x030a('0x41')]:_0x2099a0[_0x030a('0x3e')];if(_0x3877aa[_0x030a('0x3f')][_0x030a('0x53')]){_0x5615d8[_0x030a('0x4d')]=[{'all':!![]}];}_0x5615d8=_[_0x030a('0x54')]({},_0x5615d8,_0x3877aa[_0x030a('0x4c')]);return db[_0x030a('0x39')]['find'](_0x5615d8)[_0x030a('0x1f')](handleEntityNotFound(_0x27b4e1,null))[_0x030a('0x1f')](respondWithResult(_0x27b4e1,null))['catch'](handleError(_0x27b4e1,null));};exports[_0x030a('0x55')]=function(_0x5bff57,_0x4bad70){var _0x34dca8={'where':{'id':_0x5bff57[_0x030a('0x56')]['id']}},_0x2170b3={};_0x2170b3['model']=_[_0x030a('0x51')](db[_0x030a('0x39')][_0x030a('0x3a')]);_0x34dca8[_0x030a('0x41')]=_[_0x030a('0x52')](_0x2170b3['model'],qs['fields'](_0x5bff57[_0x030a('0x3f')]['fields']));_0x34dca8[_0x030a('0x41')]=_0x34dca8['attributes'][_0x030a('0x43')]?_0x34dca8[_0x030a('0x41')]:_0x2170b3[_0x030a('0x3e')];if(_0x5bff57[_0x030a('0x3f')][_0x030a('0x53')]){_0x34dca8['include']=[{'all':!![]}];}_0x34dca8=_[_0x030a('0x54')]({},_0x34dca8,_0x5bff57['options']);return db[_0x030a('0x39')][_0x030a('0x57')](_0x34dca8)[_0x030a('0x1f')](handleEntityNotFound(_0x4bad70,null))[_0x030a('0x1f')](function(_0x2a0644){if(_0x2a0644){var _0x717226=_0x2a0644[_0x030a('0x58')]({'plain':!![]});_0x717226=qs[_0x030a('0x59')](_0x717226,['id','createdAt',_0x030a('0x5a')]);_0x5bff57[_0x030a('0x5b')]=_['omit'](_0x5bff57[_0x030a('0x5b')],['id',_0x030a('0x5c'),_0x030a('0x5a')]);return db['Trunk'][_0x030a('0x5d')](_[_0x030a('0x54')](_0x717226,_0x5bff57[_0x030a('0x5b')]),{'include':_0x5bff57[_0x030a('0x3f')][_0x030a('0x53')]?[{'all':!![]}]:undefined})[_0x030a('0x1f')](function(_0x40b7c2){var _0x26c095=_0x5bff57[_0x030a('0x5e')][_0x030a('0x58')]({'plain':!![]});if(!_0x26c095)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x26c095['role']===_0x030a('0x5e')){var _0x52f57f=_0x40b7c2[_0x030a('0x58')]({'plain':!![]});var _0x6e6d1e=_0x030a('0x34');return db['UserProfileSection'][_0x030a('0x57')]({'where':{'name':_0x6e6d1e,'userProfileId':_0x26c095['userProfileId']},'raw':!![]})[_0x030a('0x1f')](function(_0x310a7d){if(_0x310a7d&&_0x310a7d[_0x030a('0x5f')]===0x0){return db[_0x030a('0x35')]['create']({'name':_0x52f57f['name'],'resourceId':_0x52f57f['id'],'type':_0x310a7d[_0x030a('0x36')],'sectionId':_0x310a7d['id']},{})[_0x030a('0x1f')](function(){return _0x40b7c2;});}else{return _0x40b7c2;}})['catch'](function(_0x1c3f72){logger['error'](_0x030a('0x60'),_0x1c3f72);throw _0x1c3f72;});}return _0x40b7c2;});}})[_0x030a('0x1f')](respondWithResult(_0x4bad70,0xc9))[_0x030a('0x4f')](handleError(_0x4bad70,null));};exports[_0x030a('0x5d')]=function(_0x5db328,_0x4be77c,_0x49f099){var _0x127f24;return db[_0x030a('0x39')]['create'](_0x5db328['body'],{'raw':!![]})[_0x030a('0x1f')](function(_0xa05e11){_0x127f24=_0xa05e11;return db[_0x030a('0x39')]['findAll']({'raw':!![]});})[_0x030a('0x1f')](function(_0x4036c4){var _0x20aee5=fs[_0x030a('0x61')](path['join'](config[_0x030a('0x62')],'server/files/templates/trunk.ejs'),_0x030a('0x63'));var _0x3a1f7e=fs[_0x030a('0x61')](path['join'](config[_0x030a('0x62')],'server/files/templates/registry.ejs'),_0x030a('0x63'));var _0x1bfb0a=ejs[_0x030a('0x64')](_0x20aee5,{'trunks':_0x4036c4||[]});fs[_0x030a('0x65')](_0x030a('0x66'),_0x1bfb0a);if(_0x127f24[_0x030a('0x67')]){var _0x186b78=ejs[_0x030a('0x64')](_0x3a1f7e,{'trunks':_0x4036c4||[]});fs[_0x030a('0x65')]('/etc/asterisk/sip_xcally_registers.conf',_0x186b78);}})[_0x030a('0x1f')](function(){return respondWithRpcPromise('Reload',_0x030a('0x5d'),{'module':_0x030a('0x68')});})['then'](function(){var _0x10d1e8=_0x5db328[_0x030a('0x5e')][_0x030a('0x58')]({'plain':!![]});if(!_0x10d1e8)throw new Error(_0x030a('0x69'));if(_0x10d1e8[_0x030a('0x6a')]===_0x030a('0x5e')){var _0x479c0b=_0x127f24['get']({'plain':!![]});return db[_0x030a('0x6b')][_0x030a('0x57')]({'where':{'name':_0x030a('0x34'),'userProfileId':_0x10d1e8[_0x030a('0x6c')]},'raw':!![]})['then'](function(_0x21c08f){if(_0x21c08f&&_0x21c08f[_0x030a('0x5f')]===0x0){return db['UserProfileResource']['create']({'name':_0x479c0b['name'],'resourceId':_0x479c0b['id'],'type':_0x21c08f['name'],'sectionId':_0x21c08f['id']},{})[_0x030a('0x1f')](function(){return _0x127f24;});}else{return _0x127f24;}})['catch'](function(_0x4530bc){logger['error'](_0x030a('0x60'),_0x4530bc);throw _0x4530bc;});}return _0x127f24;})['then'](respondWithResult(_0x4be77c,0xc9))[_0x030a('0x4f')](handleError(_0x4be77c,null));};exports['update']=function(_0x4ef34a,_0x494e74,_0xcf6b0b){var _0x36f928;return db[_0x030a('0x39')][_0x030a('0x57')]({'where':{'id':_0x4ef34a[_0x030a('0x56')]['id']}})[_0x030a('0x1f')](handleEntityNotFound(_0x494e74,null))[_0x030a('0x1f')](saveUpdates(_0x4ef34a[_0x030a('0x5b')],null))[_0x030a('0x1f')](function(_0x4648f0){if(_0x4648f0){_0x36f928=_0x4648f0;return db[_0x030a('0x39')][_0x030a('0x4e')]({'raw':!![]});}})[_0x030a('0x1f')](function(_0x4f1d2e){if(_0x4f1d2e){var _0xdb192e=fs[_0x030a('0x61')](path[_0x030a('0x6d')](config[_0x030a('0x62')],_0x030a('0x6e')),_0x030a('0x63'));var _0x53e139=fs[_0x030a('0x61')](path[_0x030a('0x6d')](config[_0x030a('0x62')],'server/files/templates/registry.ejs'),'utf8');var _0x5743a3=ejs[_0x030a('0x64')](_0xdb192e,{'trunks':_0x4f1d2e||[]});fs[_0x030a('0x65')](_0x030a('0x66'),_0x5743a3);var _0x548f23=ejs[_0x030a('0x64')](_0x53e139,{'trunks':_0x4f1d2e||[]});fs[_0x030a('0x65')]('/etc/asterisk/sip_xcally_registers.conf',_0x548f23);return respondWithRpcPromise(_0x030a('0x6f'),_0x030a('0x32'),{'module':_0x030a('0x68')});}return null;})[_0x030a('0x1f')](function(_0x441f80){if(_0x441f80){return _0x36f928;}})['then'](respondWithResult(_0x494e74,null))[_0x030a('0x4f')](handleError(_0x494e74,null));};exports[_0x030a('0x33')]=function(_0x1d849f,_0x280401,_0x594ead){var _0x4260a1;return db[_0x030a('0x39')][_0x030a('0x57')]({'where':{'id':_0x1d849f[_0x030a('0x56')]['id']}})[_0x030a('0x1f')](handleEntityNotFound(_0x280401,null))[_0x030a('0x1f')](removeEntity(_0x280401,null))[_0x030a('0x1f')](function(){return db['Trunk'][_0x030a('0x4e')]({'raw':!![]});})[_0x030a('0x1f')](function(_0x16ab1a){var _0x162698=fs[_0x030a('0x61')](path[_0x030a('0x6d')](config[_0x030a('0x62')],_0x030a('0x6e')),_0x030a('0x63'));var _0x512855=fs['readFileSync'](path[_0x030a('0x6d')](config[_0x030a('0x62')],_0x030a('0x70')),_0x030a('0x63'));var _0xf39b9e=ejs[_0x030a('0x64')](_0x162698,{'trunks':_0x16ab1a});var _0x12e796=ejs[_0x030a('0x64')](_0x512855,{'trunks':_0x16ab1a});fs[_0x030a('0x65')](_0x030a('0x66'),_0xf39b9e);fs[_0x030a('0x65')](_0x030a('0x71'),_0x12e796);return respondWithRpcPromise('Reload','destroy',{'module':'chan_sip.so'});})[_0x030a('0x4f')](handleError(_0x280401,null));};