Built motion from commit (unavailable).|2.4.9
[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 _0x965d=['lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','info','Network,\x20%s,\x20%s','Network,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','result','sendStatus','status','json','count','offset','limit','set','reject','save','update','then','destroy','end','stack','name','send','index','Network','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','map','key','VIRTUAL','field','filter','options','includeAll','include','findAll','rows','catch','keys','rawAttributes','find','create','sequelize','transaction','body','type','join','root','server/files/templates/network.ejs','utf8','render','writeFileSync','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','Reload','chan_sip.so','params','readFileSync','html-pdf','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0x965d,0x121));var _0xd965=function(_0x53b316,_0x59d9a4){_0x53b316=_0x53b316-0x0;var _0x256577=_0x965d[_0x53b316];return _0x256577;};'use strict';var pdf=require(_0xd965('0x0'));var emlformat=require(_0xd965('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xd965('0x2'));var jsonpatch=require(_0xd965('0x3'));var rp=require('request-promise');var moment=require(_0xd965('0x4'));var BPromise=require(_0xd965('0x5'));var Mustache=require(_0xd965('0x6'));var util=require(_0xd965('0x7'));var path=require('path');var sox=require(_0xd965('0x8'));var csv=require(_0xd965('0x9'));var ejs=require(_0xd965('0xa'));var fs=require('fs');var _=require(_0xd965('0xb'));var squel=require(_0xd965('0xc'));var crypto=require('crypto');var jsforce=require(_0xd965('0xd'));var deskjs=require(_0xd965('0xe'));var toCsv=require(_0xd965('0x9'));var querystring=require(_0xd965('0xf'));var Papa=require(_0xd965('0x10'));var Redis=require(_0xd965('0x11'));var authService=require(_0xd965('0x12'));var qs=require(_0xd965('0x13'));var hardwareService=require(_0xd965('0x14'));var logger=require(_0xd965('0x15'))(_0xd965('0x16'));var utils=require(_0xd965('0x17'));var config=require(_0xd965('0x18'));var db=require(_0xd965('0x19'))['db'];var jayson=require(_0xd965('0x1a'));var client=jayson[_0xd965('0x1b')][_0xd965('0x1c')]({'port':0x232a});function checkPasswordPattern(_0x40858b,_0x308836,_0x576aa5){if(_0x576aa5){var _0x3d5043=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x3d5043['test'](_0x308836)){return _0x40858b;}else{throw new Error('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0x40858b;}}function respondWithRpcPromise(_0x2c9ab7,_0x393b56,_0x5b52ea,_0x20b285){return new BPromise(function(_0x47b330,_0x370961){var _0x2fee7d=_0x20b285||client;return _0x2fee7d['request'](_0x2c9ab7,_0x5b52ea)['then'](function(_0x37c33e){logger[_0xd965('0x1d')](_0xd965('0x1e'),_0x393b56,'request\x20sent');logger['debug'](_0xd965('0x1f'),_0x393b56,'request\x20sent',JSON[_0xd965('0x20')](_0x37c33e));if(_0x37c33e[_0xd965('0x21')]){if(_0x37c33e[_0xd965('0x21')]['code']===0x1f4){logger[_0xd965('0x21')](_0xd965('0x1e'),_0x393b56,_0x37c33e[_0xd965('0x21')]['message']);return _0x370961(_0x37c33e['error'][_0xd965('0x22')]);}logger[_0xd965('0x21')](_0xd965('0x1e'),_0x393b56,_0x37c33e[_0xd965('0x21')]['message']);return _0x47b330(_0x37c33e['error'][_0xd965('0x22')]);}else{logger[_0xd965('0x1d')](_0xd965('0x1e'),_0x393b56,_0xd965('0x23'));_0x47b330(_0x37c33e[_0xd965('0x24')][_0xd965('0x22')]);}})['catch'](function(_0x391dc5){logger[_0xd965('0x21')]('Network,\x20%s,\x20%s',_0x393b56,_0x391dc5);_0x370961(_0x391dc5);});});}function respondWithStatusCode(_0x4185ea,_0x10dde7){_0x10dde7=_0x10dde7||0xcc;return function(_0x3d5e24){if(_0x3d5e24){return _0x4185ea[_0xd965('0x25')](_0x10dde7);}return _0x4185ea[_0xd965('0x26')](_0x10dde7)['end']();};}function respondWithResult(_0x4c11d2,_0x5c6506){_0x5c6506=_0x5c6506||0xc8;return function(_0xa4e014){if(_0xa4e014){return _0x4c11d2[_0xd965('0x26')](_0x5c6506)[_0xd965('0x27')](_0xa4e014);}};}function respondWithFilteredResult(_0x206f64,_0x44bfeb){return function(_0x34d6ea){if(_0x34d6ea){var _0x2ce10a=_0x34d6ea[_0xd965('0x28')],_0x112b0f=_0x44bfeb[_0xd965('0x29')],_0x5bc89c=_0x44bfeb[_0xd965('0x29')]+_0x44bfeb[_0xd965('0x2a')],_0x54da5a;if(_0x5bc89c>=_0x2ce10a){_0x5bc89c=_0x2ce10a;_0x54da5a=0xc8;}else{_0x54da5a=0xce;}_0x206f64[_0xd965('0x26')](_0x54da5a);return _0x206f64[_0xd965('0x2b')]('Content-Range',_0x112b0f+'-'+_0x5bc89c+'/'+_0x2ce10a)[_0xd965('0x27')](_0x34d6ea);}return null;};}function patchUpdates(_0xf9b719){return function(_0x3fec5f){try{jsonpatch['apply'](_0x3fec5f,_0xf9b719,!![]);}catch(_0x3c8bed){return BPromise[_0xd965('0x2c')](_0x3c8bed);}return _0x3fec5f[_0xd965('0x2d')]();};}function saveUpdates(_0x321ec4,_0x5949be){return function(_0x4ab4ed){if(_0x4ab4ed){return _0x4ab4ed[_0xd965('0x2e')](_0x321ec4)[_0xd965('0x2f')](function(_0x37951f){return _0x37951f;});}return null;};}function removeEntity(_0x5baeaa,_0x2517b7){return function(_0x2001da){if(_0x2001da){return _0x2001da[_0xd965('0x30')]()[_0xd965('0x2f')](function(){_0x5baeaa[_0xd965('0x26')](0xcc)[_0xd965('0x31')]();});}};}function handleEntityNotFound(_0x471f6f,_0x4e26d3){return function(_0x582c34){if(!_0x582c34){_0x471f6f[_0xd965('0x25')](0x194);}return _0x582c34;};}function handleError(_0xce28f1,_0xea5d97){_0xea5d97=_0xea5d97||0x1f4;return function(_0x46e34b){logger[_0xd965('0x21')](_0x46e34b[_0xd965('0x32')]);if(_0x46e34b[_0xd965('0x33')]){delete _0x46e34b[_0xd965('0x33')];}_0xce28f1[_0xd965('0x26')](_0xea5d97)[_0xd965('0x34')](_0x46e34b);};}exports[_0xd965('0x35')]=function(_0x2fc22f,_0x26edd6){var _0x1f5271={},_0x1a1aad={},_0x13cab7={'count':0x0,'rows':[]};var _0x33bab7=db[_0xd965('0x36')]['rawAttributes'];_0x1a1aad[_0xd965('0x37')]=_['keys'](_0x33bab7);_0x1a1aad[_0xd965('0x38')]=_['keys'](_0x2fc22f[_0xd965('0x38')]);_0x1a1aad[_0xd965('0x39')]=_[_0xd965('0x3a')](_0x1a1aad[_0xd965('0x37')],_0x1a1aad[_0xd965('0x38')]);_0x1f5271[_0xd965('0x3b')]=_[_0xd965('0x3a')](_0x1a1aad['model'],qs[_0xd965('0x3c')](_0x2fc22f[_0xd965('0x38')][_0xd965('0x3c')]));_0x1f5271[_0xd965('0x3b')]=_0x1f5271[_0xd965('0x3b')]['length']?_0x1f5271['attributes']:_0x1a1aad['model'];if(!_0x2fc22f[_0xd965('0x38')][_0xd965('0x3d')](_0xd965('0x3e'))){_0x1f5271[_0xd965('0x2a')]=qs[_0xd965('0x2a')](_0x2fc22f[_0xd965('0x38')]['limit']);_0x1f5271[_0xd965('0x29')]=qs[_0xd965('0x29')](_0x2fc22f[_0xd965('0x38')][_0xd965('0x29')]);}_0x1f5271[_0xd965('0x3f')]=qs['sort'](_0x2fc22f['query'][_0xd965('0x40')]);_0x1f5271[_0xd965('0x41')]=qs[_0xd965('0x39')](_[_0xd965('0x42')](_0x2fc22f[_0xd965('0x38')],_0x1a1aad['filters']));if(_0x2fc22f[_0xd965('0x38')]['filter']){_0x1f5271[_0xd965('0x41')]=_[_0xd965('0x43')](_0x1f5271[_0xd965('0x41')],{'$or':_[_0xd965('0x44')](_0x33bab7,function(_0x43725){if(_0x43725['type'][_0xd965('0x45')]!==_0xd965('0x46')){var _0x53d6de={};_0x53d6de[_0x43725[_0xd965('0x47')]]={'$like':'%'+_0x2fc22f[_0xd965('0x38')][_0xd965('0x48')]+'%'};return _0x53d6de;}})});}_0x1f5271=_['merge']({},_0x1f5271,_0x2fc22f[_0xd965('0x49')]);var _0x34c04a={'where':_0x1f5271['where']};return db[_0xd965('0x36')][_0xd965('0x28')](_0x34c04a)[_0xd965('0x2f')](function(_0x9eb5d){_0x13cab7[_0xd965('0x28')]=_0x9eb5d;if(_0x2fc22f[_0xd965('0x38')][_0xd965('0x4a')]){_0x1f5271[_0xd965('0x4b')]=[{'all':!![]}];}return db['Network'][_0xd965('0x4c')](_0x1f5271);})[_0xd965('0x2f')](function(_0x2e67f6){_0x13cab7[_0xd965('0x4d')]=_0x2e67f6;return _0x13cab7;})['then'](respondWithFilteredResult(_0x26edd6,_0x1f5271))[_0xd965('0x4e')](handleError(_0x26edd6,null));};exports['show']=function(_0x3702b5,_0x46bd5f){var _0x512b0c={'raw':!![],'where':{'id':_0x3702b5['params']['id']}},_0x210d7b={};_0x210d7b[_0xd965('0x37')]=_[_0xd965('0x4f')](db[_0xd965('0x36')][_0xd965('0x50')]);_0x210d7b[_0xd965('0x38')]=_[_0xd965('0x4f')](_0x3702b5[_0xd965('0x38')]);_0x210d7b[_0xd965('0x39')]=_[_0xd965('0x3a')](_0x210d7b['model'],_0x210d7b['query']);_0x512b0c[_0xd965('0x3b')]=_[_0xd965('0x3a')](_0x210d7b[_0xd965('0x37')],qs[_0xd965('0x3c')](_0x3702b5[_0xd965('0x38')][_0xd965('0x3c')]));_0x512b0c[_0xd965('0x3b')]=_0x512b0c['attributes']['length']?_0x512b0c[_0xd965('0x3b')]:_0x210d7b[_0xd965('0x37')];if(_0x3702b5[_0xd965('0x38')][_0xd965('0x4a')]){_0x512b0c['include']=[{'all':!![]}];}_0x512b0c=_[_0xd965('0x43')]({},_0x512b0c,_0x3702b5[_0xd965('0x49')]);return db[_0xd965('0x36')][_0xd965('0x51')](_0x512b0c)[_0xd965('0x2f')](handleEntityNotFound(_0x46bd5f,null))[_0xd965('0x2f')](respondWithResult(_0x46bd5f,null))[_0xd965('0x4e')](handleError(_0x46bd5f,null));};exports[_0xd965('0x52')]=function(_0x1f0d3c,_0x2172a2,_0x47c376){var _0x350fe2;return db[_0xd965('0x53')][_0xd965('0x54')](function(_0x367913){return db[_0xd965('0x36')]['create'](_0x1f0d3c[_0xd965('0x55')],{'raw':!![]})[_0xd965('0x2f')](function(_0x3df66a){_0x350fe2=_0x3df66a;return db[_0xd965('0x36')][_0xd965('0x4c')]({'where':{'type':_0x1f0d3c[_0xd965('0x55')][_0xd965('0x56')]},'raw':!![]});})[_0xd965('0x2f')](function(_0x260715){var _0x5f16be=fs['readFileSync'](path[_0xd965('0x57')](config[_0xd965('0x58')],_0xd965('0x59')),_0xd965('0x5a'));var _0x3eec9f=ejs[_0xd965('0x5b')](_0x5f16be,{'networks':_0x260715||[]});fs[_0xd965('0x5c')](util[_0xd965('0x5d')](_0xd965('0x5e'),_0x1f0d3c['body'][_0xd965('0x56')][_0xd965('0x5f')]()),_0x3eec9f);})[_0xd965('0x2f')](function(){return respondWithRpcPromise(_0xd965('0x60'),'create',{'module':_0xd965('0x61')});})[_0xd965('0x2f')](function(){return _0x350fe2;});})[_0xd965('0x2f')](respondWithResult(_0x2172a2,0xc9))[_0xd965('0x4e')](handleError(_0x2172a2,null));};exports['update']=function(_0x322205,_0x18f0e9,_0x47b9f8){var _0x27d3de;return db['sequelize'][_0xd965('0x54')](function(_0x5b83b5){return db[_0xd965('0x36')][_0xd965('0x51')]({'where':{'id':_0x322205[_0xd965('0x62')]['id']}})['then'](handleEntityNotFound(_0x18f0e9,null))['then'](saveUpdates(_0x322205[_0xd965('0x55')],null))['then'](function(_0x530f0c){if(_0x530f0c){_0x27d3de=_0x530f0c;return db[_0xd965('0x36')][_0xd965('0x4c')]({'where':{'type':_0x27d3de['type']},'raw':!![]});}return null;})['then'](function(_0x13fe43){if(_0x13fe43){var _0xab4719=fs[_0xd965('0x63')](path[_0xd965('0x57')](config[_0xd965('0x58')],_0xd965('0x59')),_0xd965('0x5a'));var _0xcb02e9=ejs[_0xd965('0x5b')](_0xab4719,{'networks':_0x13fe43||[]});fs[_0xd965('0x5c')](util[_0xd965('0x5d')](_0xd965('0x5e'),_0x27d3de[_0xd965('0x56')][_0xd965('0x5f')]()),_0xcb02e9);return respondWithRpcPromise(_0xd965('0x60'),'update',{'module':_0xd965('0x61')});}return null;})['then'](function(_0x276e27){if(_0x276e27){return _0x27d3de;}return null;});})[_0xd965('0x2f')](respondWithResult(_0x18f0e9,null))['catch'](handleError(_0x18f0e9,null));};exports['destroy']=function(_0xae22f2,_0x1f7e50,_0x259df9){var _0x1efe26;return db['Network'][_0xd965('0x51')]({'where':{'id':_0xae22f2[_0xd965('0x62')]['id']}})[_0xd965('0x2f')](function(_0xf43ad6){_0x1efe26=_0xf43ad6;return _0xf43ad6;})['then'](handleEntityNotFound(_0x1f7e50,null))[_0xd965('0x2f')](removeEntity(_0x1f7e50,null))['then'](function(){if(_0x1efe26){return db['Network'][_0xd965('0x4c')]({'where':{'type':_0x1efe26[_0xd965('0x56')]},'raw':!![]});}})[_0xd965('0x2f')](function(_0x3351d0){if(_0x3351d0){var _0x24a992=fs[_0xd965('0x63')](path[_0xd965('0x57')](config[_0xd965('0x58')],'server/files/templates/network.ejs'),_0xd965('0x5a'));var _0xbb0593=ejs[_0xd965('0x5b')](_0x24a992,{'networks':_0x3351d0||[]});fs[_0xd965('0x5c')](util[_0xd965('0x5d')](_0xd965('0x5e'),_0x1efe26[_0xd965('0x56')]['toLowerCase']()),_0xbb0593);return respondWithRpcPromise(_0xd965('0x60'),_0xd965('0x30'),{'module':_0xd965('0x61')});}})['catch'](handleError(_0x1f7e50,null));};