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 _0x4147=['includeAll','include','Network','findAll','rows','show','params','create','sequelize','transaction','body','readFileSync','join','root','server/files/templates/network.ejs','utf8','render','format','/etc/asterisk/sip_xcally_%s.conf','Reload','find','writeFileSync','toLowerCase','chan_sip.so','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','jayson/promise','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','info','Network,\x20%s,\x20%s','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','json','offset','set','Content-Range','save','update','destroy','end','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','count'];(function(_0x68c979,_0x431cff){var _0x4f0001=function(_0xa7595d){while(--_0xa7595d){_0x68c979['push'](_0x68c979['shift']());}};_0x4f0001(++_0x431cff);}(_0x4147,0x1b8));var _0x7414=function(_0x5b9a9f,_0x4e5c97){_0x5b9a9f=_0x5b9a9f-0x0;var _0x4e7e4a=_0x4147[_0x5b9a9f];return _0x4e7e4a;};'use strict';var pdf=require(_0x7414('0x0'));var emlformat=require(_0x7414('0x1'));var rimraf=require(_0x7414('0x2'));var zipdir=require(_0x7414('0x3'));var jsonpatch=require(_0x7414('0x4'));var rp=require('request-promise');var moment=require(_0x7414('0x5'));var BPromise=require(_0x7414('0x6'));var Mustache=require('mustache');var util=require(_0x7414('0x7'));var path=require(_0x7414('0x8'));var sox=require(_0x7414('0x9'));var csv=require(_0x7414('0xa'));var ejs=require(_0x7414('0xb'));var fs=require('fs');var _=require(_0x7414('0xc'));var squel=require(_0x7414('0xd'));var crypto=require(_0x7414('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x7414('0xf'));var toCsv=require(_0x7414('0xa'));var querystring=require(_0x7414('0x10'));var Papa=require(_0x7414('0x11'));var Redis=require(_0x7414('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x7414('0x13'));var as=require(_0x7414('0x14'));var hardwareService=require(_0x7414('0x15'));var logger=require(_0x7414('0x16'))(_0x7414('0x17'));var utils=require(_0x7414('0x18'));var config=require(_0x7414('0x19'));var db=require('../../mysqldb')['db'];var jayson=require(_0x7414('0x1a'));var client=jayson['client'][_0x7414('0x1b')]({'port':0x232a});function checkPasswordPattern(_0x2b03ae,_0x4e87c1,_0x4f3eef){if(_0x4f3eef){var _0x42efc3=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x42efc3[_0x7414('0x1c')](_0x4e87c1)){return _0x2b03ae;}else{throw new db[(_0x7414('0x1d'))][(_0x7414('0x1e'))](_0x7414('0x1f'));}}else{return _0x2b03ae;}}function respondWithRpcPromise(_0x4cd659,_0x406ffc,_0x4ac4d0,_0xd0ba67){return new BPromise(function(_0x561cbd,_0x46bc3f){var _0x1df9d8=_0xd0ba67||client;return _0x1df9d8[_0x7414('0x20')](_0x4cd659,_0x4ac4d0)[_0x7414('0x21')](function(_0x4b9d8d){logger[_0x7414('0x22')](_0x7414('0x23'),_0x406ffc,'request\x20sent');logger['debug'](_0x7414('0x24'),_0x406ffc,'request\x20sent',JSON[_0x7414('0x25')](_0x4b9d8d));if(_0x4b9d8d[_0x7414('0x26')]){if(_0x4b9d8d['error'][_0x7414('0x27')]===0x1f4){logger[_0x7414('0x26')](_0x7414('0x23'),_0x406ffc,_0x4b9d8d['error'][_0x7414('0x28')]);return _0x46bc3f(_0x4b9d8d[_0x7414('0x26')][_0x7414('0x28')]);}logger['error'](_0x7414('0x23'),_0x406ffc,_0x4b9d8d[_0x7414('0x26')][_0x7414('0x28')]);return _0x561cbd(_0x4b9d8d[_0x7414('0x26')][_0x7414('0x28')]);}else{logger[_0x7414('0x22')](_0x7414('0x23'),_0x406ffc,'request\x20sent');_0x561cbd(_0x4b9d8d[_0x7414('0x29')]['message']);}})[_0x7414('0x2a')](function(_0x331aeb){logger['error']('Network,\x20%s,\x20%s',_0x406ffc,_0x331aeb);_0x46bc3f(_0x331aeb);});});}function respondWithStatusCode(_0x34abec,_0x1f498d){_0x1f498d=_0x1f498d||0xcc;return function(_0x367a4a){if(_0x367a4a){return _0x34abec[_0x7414('0x2b')](_0x1f498d);}return _0x34abec['status'](_0x1f498d)['end']();};}function respondWithResult(_0x183e5c,_0xc3b2ad){_0xc3b2ad=_0xc3b2ad||0xc8;return function(_0x165cd0){if(_0x165cd0){return _0x183e5c[_0x7414('0x2c')](_0xc3b2ad)[_0x7414('0x2d')](_0x165cd0);}};}function respondWithFilteredResult(_0x449a10,_0x1d5fad){return function(_0x618261){if(_0x618261){var _0x11d40c=_0x618261['count'],_0x5955dd=_0x1d5fad[_0x7414('0x2e')],_0x3b74eb=_0x1d5fad['offset']+_0x1d5fad['limit'],_0x12c620;if(_0x3b74eb>=_0x11d40c){_0x3b74eb=_0x11d40c;_0x12c620=0xc8;}else{_0x12c620=0xce;}_0x449a10[_0x7414('0x2c')](_0x12c620);return _0x449a10[_0x7414('0x2f')](_0x7414('0x30'),_0x5955dd+'-'+_0x3b74eb+'/'+_0x11d40c)[_0x7414('0x2d')](_0x618261);}return null;};}function patchUpdates(_0x1711b4){return function(_0x5949f2){try{jsonpatch['apply'](_0x5949f2,_0x1711b4,!![]);}catch(_0x4663c2){return BPromise['reject'](_0x4663c2);}return _0x5949f2[_0x7414('0x31')]();};}function saveUpdates(_0x620922,_0x20941d){return function(_0x4db2f8){if(_0x4db2f8){return _0x4db2f8[_0x7414('0x32')](_0x620922)[_0x7414('0x21')](function(_0x106502){return _0x106502;});}return null;};}function removeEntity(_0x557c58,_0x4c7778){return function(_0x375351){if(_0x375351){return _0x375351[_0x7414('0x33')]()[_0x7414('0x21')](function(){_0x557c58[_0x7414('0x2c')](0xcc)[_0x7414('0x34')]();});}};}function handleEntityNotFound(_0x52520d,_0xbadf84){return function(_0x224c8d){if(!_0x224c8d){_0x52520d[_0x7414('0x2b')](0x194);}return _0x224c8d;};}function handleError(_0x34da31,_0x3e99c5){_0x3e99c5=_0x3e99c5||0x1f4;return function(_0x539376){logger[_0x7414('0x26')](_0x539376[_0x7414('0x35')]);if(_0x539376['name']){delete _0x539376[_0x7414('0x36')];}_0x34da31['status'](_0x3e99c5)[_0x7414('0x37')](_0x539376);};}exports[_0x7414('0x38')]=function(_0x5eaa64,_0x341851){var _0x29a3b1={},_0x2b5fcc={},_0x1d8422={'count':0x0,'rows':[]};var _0x597184=_[_0x7414('0x39')](db['Network'][_0x7414('0x3a')],function(_0x1ff07e){return{'name':_0x1ff07e[_0x7414('0x3b')],'type':_0x1ff07e[_0x7414('0x3c')][_0x7414('0x3d')]};});_0x2b5fcc[_0x7414('0x3e')]=_[_0x7414('0x39')](_0x597184,_0x7414('0x36'));_0x2b5fcc['query']=_[_0x7414('0x3f')](_0x5eaa64[_0x7414('0x40')]);_0x2b5fcc[_0x7414('0x41')]=_[_0x7414('0x42')](_0x2b5fcc[_0x7414('0x3e')],_0x2b5fcc[_0x7414('0x40')]);_0x29a3b1[_0x7414('0x43')]=_[_0x7414('0x42')](_0x2b5fcc[_0x7414('0x3e')],qs[_0x7414('0x44')](_0x5eaa64[_0x7414('0x40')][_0x7414('0x44')]));_0x29a3b1[_0x7414('0x43')]=_0x29a3b1['attributes']['length']?_0x29a3b1['attributes']:_0x2b5fcc[_0x7414('0x3e')];if(!_0x5eaa64[_0x7414('0x40')]['hasOwnProperty'](_0x7414('0x45'))){_0x29a3b1[_0x7414('0x46')]=qs[_0x7414('0x46')](_0x5eaa64['query'][_0x7414('0x46')]);_0x29a3b1[_0x7414('0x2e')]=qs['offset'](_0x5eaa64[_0x7414('0x40')][_0x7414('0x2e')]);}_0x29a3b1[_0x7414('0x47')]=qs[_0x7414('0x48')](_0x5eaa64[_0x7414('0x40')][_0x7414('0x48')]);_0x29a3b1[_0x7414('0x49')]=qs['filters'](_[_0x7414('0x4a')](_0x5eaa64[_0x7414('0x40')],_0x2b5fcc[_0x7414('0x41')]));if(_0x5eaa64[_0x7414('0x40')][_0x7414('0x4b')]){_0x29a3b1['where']=_[_0x7414('0x4c')](_0x29a3b1[_0x7414('0x49')],{'$or':_[_0x7414('0x39')](_0x597184,function(_0x30c068){if(_0x30c068['type']!==_0x7414('0x4d')){var _0x24bd50={};_0x24bd50[_0x30c068['name']]={'$like':'%'+_0x5eaa64[_0x7414('0x40')]['filter']+'%'};return _0x24bd50;}})});}_0x29a3b1=_['merge']({},_0x29a3b1,_0x5eaa64[_0x7414('0x4e')]);var _0x5773fa={'where':_0x29a3b1[_0x7414('0x49')]};return db['Network'][_0x7414('0x4f')](_0x5773fa)[_0x7414('0x21')](function(_0x76c8ea){_0x1d8422[_0x7414('0x4f')]=_0x76c8ea;if(_0x5eaa64[_0x7414('0x40')][_0x7414('0x50')]){_0x29a3b1[_0x7414('0x51')]=[{'all':!![]}];}return db[_0x7414('0x52')][_0x7414('0x53')](_0x29a3b1);})['then'](function(_0x263134){_0x1d8422[_0x7414('0x54')]=_0x263134;return _0x1d8422;})[_0x7414('0x21')](respondWithFilteredResult(_0x341851,_0x29a3b1))[_0x7414('0x2a')](handleError(_0x341851,null));};exports[_0x7414('0x55')]=function(_0x1705c7,_0x3e8e93){var _0x38ed6a={'raw':!![],'where':{'id':_0x1705c7[_0x7414('0x56')]['id']}},_0x3beee2={};_0x3beee2[_0x7414('0x3e')]=_['keys'](db['Network']['rawAttributes']);_0x3beee2['query']=_[_0x7414('0x3f')](_0x1705c7[_0x7414('0x40')]);_0x3beee2['filters']=_[_0x7414('0x42')](_0x3beee2[_0x7414('0x3e')],_0x3beee2[_0x7414('0x40')]);_0x38ed6a['attributes']=_[_0x7414('0x42')](_0x3beee2[_0x7414('0x3e')],qs[_0x7414('0x44')](_0x1705c7['query'][_0x7414('0x44')]));_0x38ed6a['attributes']=_0x38ed6a[_0x7414('0x43')]['length']?_0x38ed6a[_0x7414('0x43')]:_0x3beee2['model'];if(_0x1705c7[_0x7414('0x40')]['includeAll']){_0x38ed6a[_0x7414('0x51')]=[{'all':!![]}];}_0x38ed6a=_[_0x7414('0x4c')]({},_0x38ed6a,_0x1705c7[_0x7414('0x4e')]);return db[_0x7414('0x52')]['find'](_0x38ed6a)[_0x7414('0x21')](handleEntityNotFound(_0x3e8e93,null))[_0x7414('0x21')](respondWithResult(_0x3e8e93,null))['catch'](handleError(_0x3e8e93,null));};exports[_0x7414('0x57')]=function(_0x202897,_0xb5009e,_0x33b909){var _0xb9b7e4;return db[_0x7414('0x58')][_0x7414('0x59')](function(_0x399080){return db['Network'][_0x7414('0x57')](_0x202897[_0x7414('0x5a')],{'raw':!![]})['then'](function(_0x4aa2b8){_0xb9b7e4=_0x4aa2b8;return db['Network'][_0x7414('0x53')]({'where':{'type':_0x202897['body']['type']},'raw':!![]});})[_0x7414('0x21')](function(_0xd3e7bb){var _0x54df2e=fs[_0x7414('0x5b')](path[_0x7414('0x5c')](config[_0x7414('0x5d')],_0x7414('0x5e')),_0x7414('0x5f'));var _0x1304e0=ejs[_0x7414('0x60')](_0x54df2e,{'networks':_0xd3e7bb||[]});fs['writeFileSync'](util[_0x7414('0x61')](_0x7414('0x62'),_0x202897[_0x7414('0x5a')][_0x7414('0x3c')]['toLowerCase']()),_0x1304e0);})[_0x7414('0x21')](function(){return respondWithRpcPromise(_0x7414('0x63'),_0x7414('0x57'),{'module':'chan_sip.so'});})[_0x7414('0x21')](function(){return _0xb9b7e4;});})[_0x7414('0x21')](respondWithResult(_0xb5009e,0xc9))[_0x7414('0x2a')](handleError(_0xb5009e,null));};exports[_0x7414('0x32')]=function(_0x56600c,_0x3f23c4,_0x3c331c){var _0x4ead06;return db[_0x7414('0x58')][_0x7414('0x59')](function(_0x26550a){return db[_0x7414('0x52')][_0x7414('0x64')]({'where':{'id':_0x56600c[_0x7414('0x56')]['id']}})[_0x7414('0x21')](handleEntityNotFound(_0x3f23c4,null))['then'](saveUpdates(_0x56600c[_0x7414('0x5a')],null))['then'](function(_0x3c388a){if(_0x3c388a){_0x4ead06=_0x3c388a;return db[_0x7414('0x52')][_0x7414('0x53')]({'where':{'type':_0x4ead06[_0x7414('0x3c')]},'raw':!![]});}return null;})[_0x7414('0x21')](function(_0x438d21){if(_0x438d21){var _0x2696f6=fs['readFileSync'](path[_0x7414('0x5c')](config[_0x7414('0x5d')],_0x7414('0x5e')),_0x7414('0x5f'));var _0x1a719c=ejs[_0x7414('0x60')](_0x2696f6,{'networks':_0x438d21||[]});fs[_0x7414('0x65')](util['format'](_0x7414('0x62'),_0x4ead06['type'][_0x7414('0x66')]()),_0x1a719c);return respondWithRpcPromise(_0x7414('0x63'),_0x7414('0x32'),{'module':_0x7414('0x67')});}return null;})['then'](function(_0x2e62d6){if(_0x2e62d6){return _0x4ead06;}return null;});})['then'](respondWithResult(_0x3f23c4,null))[_0x7414('0x2a')](handleError(_0x3f23c4,null));};exports[_0x7414('0x33')]=function(_0x230ad6,_0x2ee58f,_0x1ab0ab){var _0x484351;return db[_0x7414('0x52')][_0x7414('0x64')]({'where':{'id':_0x230ad6[_0x7414('0x56')]['id']}})[_0x7414('0x21')](function(_0x397928){_0x484351=_0x397928;return _0x397928;})[_0x7414('0x21')](handleEntityNotFound(_0x2ee58f,null))[_0x7414('0x21')](removeEntity(_0x2ee58f,null))['then'](function(){if(_0x484351){return db[_0x7414('0x52')][_0x7414('0x53')]({'where':{'type':_0x484351['type']},'raw':!![]});}})[_0x7414('0x21')](function(_0x378c4e){if(_0x378c4e){var _0x23df76=fs[_0x7414('0x5b')](path[_0x7414('0x5c')](config[_0x7414('0x5d')],_0x7414('0x5e')),_0x7414('0x5f'));var _0x235a02=ejs[_0x7414('0x60')](_0x23df76,{'networks':_0x378c4e||[]});fs[_0x7414('0x65')](util[_0x7414('0x61')](_0x7414('0x62'),_0x484351[_0x7414('0x3c')][_0x7414('0x66')]()),_0x235a02);return respondWithRpcPromise(_0x7414('0x63'),_0x7414('0x33'),{'module':'chan_sip.so'});}})[_0x7414('0x2a')](handleError(_0x2ee58f,null));};