Built motion from commit (unavailable).|2.4.18
[motion2.git] / server / api / network / network.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 _0x2440=['Network,\x20%s,\x20%s','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','sendStatus','status','end','json','count','offset','limit','set','reject','save','update','destroy','stack','name','map','Network','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','options','includeAll','include','findAll','rows','show','params','find','create','transaction','body','readFileSync','join','root','server/files/templates/network.ejs','utf8','writeFileSync','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','Reload','chan_sip.so','render','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','client','http','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'];(function(_0x50c322,_0x3c4803){var _0x147f29=function(_0x2d46a9){while(--_0x2d46a9){_0x50c322['push'](_0x50c322['shift']());}};_0x147f29(++_0x3c4803);}(_0x2440,0x1db));var _0x0244=function(_0x6c8d99,_0x4740f7){_0x6c8d99=_0x6c8d99-0x0;var _0x19d74b=_0x2440[_0x6c8d99];return _0x19d74b;};'use strict';var pdf=require(_0x0244('0x0'));var emlformat=require(_0x0244('0x1'));var rimraf=require(_0x0244('0x2'));var zipdir=require(_0x0244('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0244('0x4'));var moment=require(_0x0244('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x0244('0x6'));var util=require(_0x0244('0x7'));var path=require(_0x0244('0x8'));var sox=require(_0x0244('0x9'));var csv=require(_0x0244('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x0244('0xb'));var squel=require('squel');var crypto=require(_0x0244('0xc'));var jsforce=require(_0x0244('0xd'));var deskjs=require(_0x0244('0xe'));var toCsv=require(_0x0244('0xa'));var querystring=require(_0x0244('0xf'));var Papa=require(_0x0244('0x10'));var Redis=require(_0x0244('0x11'));var authService=require(_0x0244('0x12'));var qs=require(_0x0244('0x13'));var as=require(_0x0244('0x14'));var hardwareService=require(_0x0244('0x15'));var logger=require(_0x0244('0x16'))(_0x0244('0x17'));var utils=require(_0x0244('0x18'));var config=require(_0x0244('0x19'));var db=require(_0x0244('0x1a'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x0244('0x1b')][_0x0244('0x1c')]({'port':0x232a});function checkPasswordPattern(_0xc81eb0,_0x36b62b,_0x20fe31){if(_0x20fe31){var _0x504461=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x504461['test'](_0x36b62b)){return _0xc81eb0;}else{throw new db[(_0x0244('0x1d'))][(_0x0244('0x1e'))](_0x0244('0x1f'));}}else{return _0xc81eb0;}}function respondWithRpcPromise(_0x5c6382,_0x3c4ab3,_0x3b9a26,_0x12b6e3){return new BPromise(function(_0x43429f,_0x32f56a){var _0x17ab63=_0x12b6e3||client;return _0x17ab63[_0x0244('0x20')](_0x5c6382,_0x3b9a26)[_0x0244('0x21')](function(_0x5c7967){logger[_0x0244('0x22')](_0x0244('0x23'),_0x3c4ab3,'request\x20sent');logger[_0x0244('0x24')](_0x0244('0x25'),_0x3c4ab3,'request\x20sent',JSON[_0x0244('0x26')](_0x5c7967));if(_0x5c7967['error']){if(_0x5c7967[_0x0244('0x27')][_0x0244('0x28')]===0x1f4){logger[_0x0244('0x27')](_0x0244('0x23'),_0x3c4ab3,_0x5c7967['error'][_0x0244('0x29')]);return _0x32f56a(_0x5c7967[_0x0244('0x27')][_0x0244('0x29')]);}logger[_0x0244('0x27')](_0x0244('0x23'),_0x3c4ab3,_0x5c7967[_0x0244('0x27')][_0x0244('0x29')]);return _0x43429f(_0x5c7967[_0x0244('0x27')][_0x0244('0x29')]);}else{logger[_0x0244('0x22')]('Network,\x20%s,\x20%s',_0x3c4ab3,_0x0244('0x2a'));_0x43429f(_0x5c7967[_0x0244('0x2b')]['message']);}})[_0x0244('0x2c')](function(_0x3e5c6a){logger[_0x0244('0x27')](_0x0244('0x23'),_0x3c4ab3,_0x3e5c6a);_0x32f56a(_0x3e5c6a);});});}function respondWithStatusCode(_0x2c711,_0x14356a){_0x14356a=_0x14356a||0xcc;return function(_0x44dfa7){if(_0x44dfa7){return _0x2c711[_0x0244('0x2d')](_0x14356a);}return _0x2c711[_0x0244('0x2e')](_0x14356a)[_0x0244('0x2f')]();};}function respondWithResult(_0x33939c,_0x4d4eca){_0x4d4eca=_0x4d4eca||0xc8;return function(_0xaf79c0){if(_0xaf79c0){return _0x33939c[_0x0244('0x2e')](_0x4d4eca)[_0x0244('0x30')](_0xaf79c0);}};}function respondWithFilteredResult(_0x1e9b76,_0x474b4e){return function(_0x3e48c7){if(_0x3e48c7){var _0x1ce449=_0x3e48c7[_0x0244('0x31')],_0x231b8a=_0x474b4e[_0x0244('0x32')],_0x3e01a0=_0x474b4e['offset']+_0x474b4e[_0x0244('0x33')],_0x138485;if(_0x3e01a0>=_0x1ce449){_0x3e01a0=_0x1ce449;_0x138485=0xc8;}else{_0x138485=0xce;}_0x1e9b76['status'](_0x138485);return _0x1e9b76[_0x0244('0x34')]('Content-Range',_0x231b8a+'-'+_0x3e01a0+'/'+_0x1ce449)[_0x0244('0x30')](_0x3e48c7);}return null;};}function patchUpdates(_0x4de84e){return function(_0xa88ed){try{jsonpatch['apply'](_0xa88ed,_0x4de84e,!![]);}catch(_0x424902){return BPromise[_0x0244('0x35')](_0x424902);}return _0xa88ed[_0x0244('0x36')]();};}function saveUpdates(_0x371516,_0x1f6047){return function(_0x1ea726){if(_0x1ea726){return _0x1ea726[_0x0244('0x37')](_0x371516)[_0x0244('0x21')](function(_0x1b8a45){return _0x1b8a45;});}return null;};}function removeEntity(_0x2d9cb8,_0x2415cd){return function(_0x38ef13){if(_0x38ef13){return _0x38ef13[_0x0244('0x38')]()[_0x0244('0x21')](function(){_0x2d9cb8[_0x0244('0x2e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x24e3f6,_0x3ff6a0){return function(_0x43eb43){if(!_0x43eb43){_0x24e3f6[_0x0244('0x2d')](0x194);}return _0x43eb43;};}function handleError(_0x3e24d2,_0x2e7c08){_0x2e7c08=_0x2e7c08||0x1f4;return function(_0x5d0bee){logger['error'](_0x5d0bee[_0x0244('0x39')]);if(_0x5d0bee[_0x0244('0x3a')]){delete _0x5d0bee['name'];}_0x3e24d2[_0x0244('0x2e')](_0x2e7c08)['send'](_0x5d0bee);};}exports['index']=function(_0x33031c,_0x6bbed3){var _0x4491ef={},_0x1c00a7={},_0x37e065={'count':0x0,'rows':[]};var _0xd00d64=_[_0x0244('0x3b')](db[_0x0244('0x3c')][_0x0244('0x3d')],function(_0x370e82){return{'name':_0x370e82['fieldName'],'type':_0x370e82[_0x0244('0x3e')][_0x0244('0x3f')]};});_0x1c00a7[_0x0244('0x40')]=_[_0x0244('0x3b')](_0xd00d64,_0x0244('0x3a'));_0x1c00a7[_0x0244('0x41')]=_[_0x0244('0x42')](_0x33031c[_0x0244('0x41')]);_0x1c00a7[_0x0244('0x43')]=_[_0x0244('0x44')](_0x1c00a7[_0x0244('0x40')],_0x1c00a7[_0x0244('0x41')]);_0x4491ef[_0x0244('0x45')]=_['intersection'](_0x1c00a7[_0x0244('0x40')],qs['fields'](_0x33031c[_0x0244('0x41')][_0x0244('0x46')]));_0x4491ef[_0x0244('0x45')]=_0x4491ef[_0x0244('0x45')][_0x0244('0x47')]?_0x4491ef[_0x0244('0x45')]:_0x1c00a7[_0x0244('0x40')];if(!_0x33031c['query'][_0x0244('0x48')]('nolimit')){_0x4491ef[_0x0244('0x33')]=qs[_0x0244('0x33')](_0x33031c[_0x0244('0x41')][_0x0244('0x33')]);_0x4491ef['offset']=qs[_0x0244('0x32')](_0x33031c[_0x0244('0x41')]['offset']);}_0x4491ef[_0x0244('0x49')]=qs[_0x0244('0x4a')](_0x33031c[_0x0244('0x41')][_0x0244('0x4a')]);_0x4491ef['where']=qs['filters'](_[_0x0244('0x4b')](_0x33031c[_0x0244('0x41')],_0x1c00a7[_0x0244('0x43')]));if(_0x33031c[_0x0244('0x41')][_0x0244('0x4c')]){_0x4491ef[_0x0244('0x4d')]=_[_0x0244('0x4e')](_0x4491ef[_0x0244('0x4d')],{'$or':_[_0x0244('0x3b')](_0xd00d64,function(_0x399329){if(_0x399329['type']!=='VIRTUAL'){var _0xca67b3={};_0xca67b3[_0x399329[_0x0244('0x3a')]]={'$like':'%'+_0x33031c[_0x0244('0x41')][_0x0244('0x4c')]+'%'};return _0xca67b3;}})});}_0x4491ef=_[_0x0244('0x4e')]({},_0x4491ef,_0x33031c[_0x0244('0x4f')]);var _0x104248={'where':_0x4491ef[_0x0244('0x4d')]};return db[_0x0244('0x3c')][_0x0244('0x31')](_0x104248)[_0x0244('0x21')](function(_0x175912){_0x37e065['count']=_0x175912;if(_0x33031c[_0x0244('0x41')][_0x0244('0x50')]){_0x4491ef[_0x0244('0x51')]=[{'all':!![]}];}return db[_0x0244('0x3c')][_0x0244('0x52')](_0x4491ef);})[_0x0244('0x21')](function(_0x19ab18){_0x37e065[_0x0244('0x53')]=_0x19ab18;return _0x37e065;})[_0x0244('0x21')](respondWithFilteredResult(_0x6bbed3,_0x4491ef))[_0x0244('0x2c')](handleError(_0x6bbed3,null));};exports[_0x0244('0x54')]=function(_0x46fe97,_0x1831dd){var _0x43764a={'raw':!![],'where':{'id':_0x46fe97[_0x0244('0x55')]['id']}},_0xae2c20={};_0xae2c20['model']=_[_0x0244('0x42')](db['Network'][_0x0244('0x3d')]);_0xae2c20[_0x0244('0x41')]=_[_0x0244('0x42')](_0x46fe97['query']);_0xae2c20[_0x0244('0x43')]=_[_0x0244('0x44')](_0xae2c20[_0x0244('0x40')],_0xae2c20[_0x0244('0x41')]);_0x43764a[_0x0244('0x45')]=_[_0x0244('0x44')](_0xae2c20[_0x0244('0x40')],qs[_0x0244('0x46')](_0x46fe97[_0x0244('0x41')]['fields']));_0x43764a[_0x0244('0x45')]=_0x43764a['attributes']['length']?_0x43764a[_0x0244('0x45')]:_0xae2c20['model'];if(_0x46fe97[_0x0244('0x41')][_0x0244('0x50')]){_0x43764a[_0x0244('0x51')]=[{'all':!![]}];}_0x43764a=_['merge']({},_0x43764a,_0x46fe97[_0x0244('0x4f')]);return db['Network'][_0x0244('0x56')](_0x43764a)[_0x0244('0x21')](handleEntityNotFound(_0x1831dd,null))[_0x0244('0x21')](respondWithResult(_0x1831dd,null))[_0x0244('0x2c')](handleError(_0x1831dd,null));};exports[_0x0244('0x57')]=function(_0x11cc4c,_0x38d608,_0x418bd0){var _0x486cf4;return db['sequelize'][_0x0244('0x58')](function(_0x48d9f6){return db['Network'][_0x0244('0x57')](_0x11cc4c[_0x0244('0x59')],{'raw':!![]})['then'](function(_0x44ce74){_0x486cf4=_0x44ce74;return db['Network'][_0x0244('0x52')]({'where':{'type':_0x11cc4c[_0x0244('0x59')]['type']},'raw':!![]});})[_0x0244('0x21')](function(_0x21a269){var _0x2eb0fe=fs[_0x0244('0x5a')](path[_0x0244('0x5b')](config[_0x0244('0x5c')],_0x0244('0x5d')),_0x0244('0x5e'));var _0x5c3ea7=ejs['render'](_0x2eb0fe,{'networks':_0x21a269||[]});fs[_0x0244('0x5f')](util[_0x0244('0x60')](_0x0244('0x61'),_0x11cc4c[_0x0244('0x59')][_0x0244('0x3e')][_0x0244('0x62')]()),_0x5c3ea7);})['then'](function(){return respondWithRpcPromise(_0x0244('0x63'),_0x0244('0x57'),{'module':_0x0244('0x64')});})['then'](function(){return _0x486cf4;});})[_0x0244('0x21')](respondWithResult(_0x38d608,0xc9))[_0x0244('0x2c')](handleError(_0x38d608,null));};exports[_0x0244('0x37')]=function(_0x54d624,_0x1732bd,_0x34fad2){var _0xfc2ac;return db['sequelize'][_0x0244('0x58')](function(_0x339127){return db[_0x0244('0x3c')][_0x0244('0x56')]({'where':{'id':_0x54d624[_0x0244('0x55')]['id']}})[_0x0244('0x21')](handleEntityNotFound(_0x1732bd,null))[_0x0244('0x21')](saveUpdates(_0x54d624['body'],null))[_0x0244('0x21')](function(_0x4016b6){if(_0x4016b6){_0xfc2ac=_0x4016b6;return db[_0x0244('0x3c')][_0x0244('0x52')]({'where':{'type':_0xfc2ac['type']},'raw':!![]});}return null;})[_0x0244('0x21')](function(_0x266aad){if(_0x266aad){var _0x1d2cd5=fs[_0x0244('0x5a')](path[_0x0244('0x5b')](config['root'],'server/files/templates/network.ejs'),'utf8');var _0x5264a1=ejs[_0x0244('0x65')](_0x1d2cd5,{'networks':_0x266aad||[]});fs[_0x0244('0x5f')](util[_0x0244('0x60')]('/etc/asterisk/sip_xcally_%s.conf',_0xfc2ac[_0x0244('0x3e')]['toLowerCase']()),_0x5264a1);return respondWithRpcPromise(_0x0244('0x63'),_0x0244('0x37'),{'module':'chan_sip.so'});}return null;})[_0x0244('0x21')](function(_0x5e8e3c){if(_0x5e8e3c){return _0xfc2ac;}return null;});})[_0x0244('0x21')](respondWithResult(_0x1732bd,null))[_0x0244('0x2c')](handleError(_0x1732bd,null));};exports[_0x0244('0x38')]=function(_0x226f57,_0x49fbed,_0xe57526){var _0x3ec2e9;return db[_0x0244('0x3c')][_0x0244('0x56')]({'where':{'id':_0x226f57[_0x0244('0x55')]['id']}})['then'](function(_0x49f843){_0x3ec2e9=_0x49f843;return _0x49f843;})['then'](handleEntityNotFound(_0x49fbed,null))['then'](removeEntity(_0x49fbed,null))[_0x0244('0x21')](function(){if(_0x3ec2e9){return db['Network'][_0x0244('0x52')]({'where':{'type':_0x3ec2e9[_0x0244('0x3e')]},'raw':!![]});}})[_0x0244('0x21')](function(_0x4da400){if(_0x4da400){var _0x2f7776=fs[_0x0244('0x5a')](path[_0x0244('0x5b')](config['root'],_0x0244('0x5d')),_0x0244('0x5e'));var _0x5aec58=ejs[_0x0244('0x65')](_0x2f7776,{'networks':_0x4da400||[]});fs[_0x0244('0x5f')](util[_0x0244('0x60')]('/etc/asterisk/sip_xcally_%s.conf',_0x3ec2e9['type'][_0x0244('0x62')]()),_0x5aec58);return respondWithRpcPromise(_0x0244('0x63'),_0x0244('0x38'),{'module':_0x0244('0x64')});}})[_0x0244('0x2c')](handleError(_0x49fbed,null));};