Built motion from commit (unavailable).|2.4.17
[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 _0x59b6=['transaction','create','body','root','server/files/templates/network.ejs','utf8','render','writeFileSync','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','Reload','chan_sip.so','sequelize','join','find','html-pdf','zip-dir','moment','sox','to-csv','lodash','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','test','Sequelize','ValidationError','then','info','debug','Network,\x20%s,\x20%s,\x20%s','request\x20sent','error','Network,\x20%s,\x20%s','message','result','sendStatus','end','status','json','offset','limit','set','Content-Range','apply','reject','save','update','destroy','stack','name','index','map','Network','rawAttributes','fieldName','type','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','catch','show','params'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x59b6,0x124));var _0x659b=function(_0xf449fc,_0x3cc5a2){_0xf449fc=_0xf449fc-0x0;var _0x4c55fb=_0x59b6[_0xf449fc];return _0x4c55fb;};'use strict';var pdf=require(_0x659b('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x659b('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x659b('0x2'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x659b('0x3'));var csv=require(_0x659b('0x4'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x659b('0x5'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x659b('0x6'));var deskjs=require(_0x659b('0x7'));var toCsv=require('to-csv');var querystring=require(_0x659b('0x8'));var Papa=require(_0x659b('0x9'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x659b('0xa'));var as=require(_0x659b('0xb'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x659b('0xc'))('api');var utils=require(_0x659b('0xd'));var config=require(_0x659b('0xe'));var db=require(_0x659b('0xf'))['db'];var jayson=require(_0x659b('0x10'));var client=jayson[_0x659b('0x11')]['http']({'port':0x232a});function checkPasswordPattern(_0x36faaf,_0x5d254c,_0x4430ef){if(_0x4430ef){var _0xef6e86=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0xef6e86[_0x659b('0x12')](_0x5d254c)){return _0x36faaf;}else{throw new db[(_0x659b('0x13'))][(_0x659b('0x14'))]('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 _0x36faaf;}}function respondWithRpcPromise(_0x26b1ce,_0x21f478,_0xf7e38a,_0x2f0fac){return new BPromise(function(_0x28caa3,_0x31ccaa){var _0x4ece0e=_0x2f0fac||client;return _0x4ece0e['request'](_0x26b1ce,_0xf7e38a)[_0x659b('0x15')](function(_0x165aed){logger[_0x659b('0x16')]('Network,\x20%s,\x20%s',_0x21f478,'request\x20sent');logger[_0x659b('0x17')](_0x659b('0x18'),_0x21f478,_0x659b('0x19'),JSON['stringify'](_0x165aed));if(_0x165aed['error']){if(_0x165aed[_0x659b('0x1a')]['code']===0x1f4){logger[_0x659b('0x1a')](_0x659b('0x1b'),_0x21f478,_0x165aed[_0x659b('0x1a')][_0x659b('0x1c')]);return _0x31ccaa(_0x165aed[_0x659b('0x1a')][_0x659b('0x1c')]);}logger['error'](_0x659b('0x1b'),_0x21f478,_0x165aed[_0x659b('0x1a')][_0x659b('0x1c')]);return _0x28caa3(_0x165aed[_0x659b('0x1a')][_0x659b('0x1c')]);}else{logger[_0x659b('0x16')](_0x659b('0x1b'),_0x21f478,'request\x20sent');_0x28caa3(_0x165aed[_0x659b('0x1d')][_0x659b('0x1c')]);}})['catch'](function(_0x1e1b30){logger['error'](_0x659b('0x1b'),_0x21f478,_0x1e1b30);_0x31ccaa(_0x1e1b30);});});}function respondWithStatusCode(_0x21f7b9,_0x447c47){_0x447c47=_0x447c47||0xcc;return function(_0x297330){if(_0x297330){return _0x21f7b9[_0x659b('0x1e')](_0x447c47);}return _0x21f7b9['status'](_0x447c47)[_0x659b('0x1f')]();};}function respondWithResult(_0xadac,_0x56e404){_0x56e404=_0x56e404||0xc8;return function(_0x4a7ad2){if(_0x4a7ad2){return _0xadac[_0x659b('0x20')](_0x56e404)[_0x659b('0x21')](_0x4a7ad2);}};}function respondWithFilteredResult(_0x4d6427,_0x3c19c0){return function(_0x2b0ec8){if(_0x2b0ec8){var _0x10dd7=_0x2b0ec8['count'],_0x14781f=_0x3c19c0[_0x659b('0x22')],_0x1669ee=_0x3c19c0['offset']+_0x3c19c0[_0x659b('0x23')],_0x4adcd8;if(_0x1669ee>=_0x10dd7){_0x1669ee=_0x10dd7;_0x4adcd8=0xc8;}else{_0x4adcd8=0xce;}_0x4d6427['status'](_0x4adcd8);return _0x4d6427[_0x659b('0x24')](_0x659b('0x25'),_0x14781f+'-'+_0x1669ee+'/'+_0x10dd7)[_0x659b('0x21')](_0x2b0ec8);}return null;};}function patchUpdates(_0x355870){return function(_0xdb9c9a){try{jsonpatch[_0x659b('0x26')](_0xdb9c9a,_0x355870,!![]);}catch(_0x2875bd){return BPromise[_0x659b('0x27')](_0x2875bd);}return _0xdb9c9a[_0x659b('0x28')]();};}function saveUpdates(_0x488729,_0x3c3802){return function(_0x59e5e0){if(_0x59e5e0){return _0x59e5e0[_0x659b('0x29')](_0x488729)[_0x659b('0x15')](function(_0x39097d){return _0x39097d;});}return null;};}function removeEntity(_0x5f5df0,_0x1c2bf6){return function(_0x3ca098){if(_0x3ca098){return _0x3ca098[_0x659b('0x2a')]()['then'](function(){_0x5f5df0[_0x659b('0x20')](0xcc)[_0x659b('0x1f')]();});}};}function handleEntityNotFound(_0x37f80f,_0x437de7){return function(_0x2075a7){if(!_0x2075a7){_0x37f80f[_0x659b('0x1e')](0x194);}return _0x2075a7;};}function handleError(_0x6b3546,_0x149803){_0x149803=_0x149803||0x1f4;return function(_0x9e9d51){logger['error'](_0x9e9d51[_0x659b('0x2b')]);if(_0x9e9d51[_0x659b('0x2c')]){delete _0x9e9d51[_0x659b('0x2c')];}_0x6b3546[_0x659b('0x20')](_0x149803)['send'](_0x9e9d51);};}exports[_0x659b('0x2d')]=function(_0x260204,_0x3e542b){var _0x3608ad={},_0x4f5c56={},_0x2e2986={'count':0x0,'rows':[]};var _0x3c9136=_[_0x659b('0x2e')](db[_0x659b('0x2f')][_0x659b('0x30')],function(_0x5cc068){return{'name':_0x5cc068[_0x659b('0x31')],'type':_0x5cc068[_0x659b('0x32')]['key']};});_0x4f5c56['model']=_[_0x659b('0x2e')](_0x3c9136,_0x659b('0x2c'));_0x4f5c56[_0x659b('0x33')]=_[_0x659b('0x34')](_0x260204[_0x659b('0x33')]);_0x4f5c56['filters']=_[_0x659b('0x35')](_0x4f5c56[_0x659b('0x36')],_0x4f5c56['query']);_0x3608ad[_0x659b('0x37')]=_[_0x659b('0x35')](_0x4f5c56[_0x659b('0x36')],qs[_0x659b('0x38')](_0x260204[_0x659b('0x33')][_0x659b('0x38')]));_0x3608ad['attributes']=_0x3608ad[_0x659b('0x37')][_0x659b('0x39')]?_0x3608ad[_0x659b('0x37')]:_0x4f5c56[_0x659b('0x36')];if(!_0x260204[_0x659b('0x33')][_0x659b('0x3a')](_0x659b('0x3b'))){_0x3608ad['limit']=qs[_0x659b('0x23')](_0x260204[_0x659b('0x33')][_0x659b('0x23')]);_0x3608ad['offset']=qs[_0x659b('0x22')](_0x260204[_0x659b('0x33')]['offset']);}_0x3608ad[_0x659b('0x3c')]=qs['sort'](_0x260204[_0x659b('0x33')][_0x659b('0x3d')]);_0x3608ad[_0x659b('0x3e')]=qs[_0x659b('0x3f')](_[_0x659b('0x40')](_0x260204['query'],_0x4f5c56[_0x659b('0x3f')]));if(_0x260204[_0x659b('0x33')][_0x659b('0x41')]){_0x3608ad[_0x659b('0x3e')]=_[_0x659b('0x42')](_0x3608ad[_0x659b('0x3e')],{'$or':_[_0x659b('0x2e')](_0x3c9136,function(_0x1d3b60){if(_0x1d3b60[_0x659b('0x32')]!==_0x659b('0x43')){var _0x1bdf3b={};_0x1bdf3b[_0x1d3b60['name']]={'$like':'%'+_0x260204[_0x659b('0x33')][_0x659b('0x41')]+'%'};return _0x1bdf3b;}})});}_0x3608ad=_[_0x659b('0x42')]({},_0x3608ad,_0x260204[_0x659b('0x44')]);var _0xf00f3a={'where':_0x3608ad[_0x659b('0x3e')]};return db['Network'][_0x659b('0x45')](_0xf00f3a)[_0x659b('0x15')](function(_0x204531){_0x2e2986[_0x659b('0x45')]=_0x204531;if(_0x260204[_0x659b('0x33')][_0x659b('0x46')]){_0x3608ad[_0x659b('0x47')]=[{'all':!![]}];}return db['Network'][_0x659b('0x48')](_0x3608ad);})['then'](function(_0x5a5eb4){_0x2e2986['rows']=_0x5a5eb4;return _0x2e2986;})[_0x659b('0x15')](respondWithFilteredResult(_0x3e542b,_0x3608ad))[_0x659b('0x49')](handleError(_0x3e542b,null));};exports[_0x659b('0x4a')]=function(_0x12cd46,_0x3a72a3){var _0x482275={'raw':!![],'where':{'id':_0x12cd46[_0x659b('0x4b')]['id']}},_0x2d6a1d={};_0x2d6a1d[_0x659b('0x36')]=_[_0x659b('0x34')](db['Network'][_0x659b('0x30')]);_0x2d6a1d[_0x659b('0x33')]=_[_0x659b('0x34')](_0x12cd46['query']);_0x2d6a1d['filters']=_[_0x659b('0x35')](_0x2d6a1d[_0x659b('0x36')],_0x2d6a1d[_0x659b('0x33')]);_0x482275[_0x659b('0x37')]=_[_0x659b('0x35')](_0x2d6a1d[_0x659b('0x36')],qs['fields'](_0x12cd46[_0x659b('0x33')][_0x659b('0x38')]));_0x482275[_0x659b('0x37')]=_0x482275[_0x659b('0x37')][_0x659b('0x39')]?_0x482275['attributes']:_0x2d6a1d[_0x659b('0x36')];if(_0x12cd46[_0x659b('0x33')][_0x659b('0x46')]){_0x482275[_0x659b('0x47')]=[{'all':!![]}];}_0x482275=_['merge']({},_0x482275,_0x12cd46[_0x659b('0x44')]);return db[_0x659b('0x2f')]['find'](_0x482275)['then'](handleEntityNotFound(_0x3a72a3,null))[_0x659b('0x15')](respondWithResult(_0x3a72a3,null))[_0x659b('0x49')](handleError(_0x3a72a3,null));};exports['create']=function(_0x1d6db7,_0x43b079,_0x1ece81){var _0x45a96b;return db['sequelize'][_0x659b('0x4c')](function(_0x5ac0ad){return db['Network'][_0x659b('0x4d')](_0x1d6db7[_0x659b('0x4e')],{'raw':!![]})[_0x659b('0x15')](function(_0x5aacd8){_0x45a96b=_0x5aacd8;return db[_0x659b('0x2f')][_0x659b('0x48')]({'where':{'type':_0x1d6db7[_0x659b('0x4e')][_0x659b('0x32')]},'raw':!![]});})[_0x659b('0x15')](function(_0x4e3578){var _0x15ad66=fs['readFileSync'](path['join'](config[_0x659b('0x4f')],_0x659b('0x50')),_0x659b('0x51'));var _0x7077f7=ejs[_0x659b('0x52')](_0x15ad66,{'networks':_0x4e3578||[]});fs[_0x659b('0x53')](util[_0x659b('0x54')](_0x659b('0x55'),_0x1d6db7[_0x659b('0x4e')][_0x659b('0x32')][_0x659b('0x56')]()),_0x7077f7);})[_0x659b('0x15')](function(){return respondWithRpcPromise(_0x659b('0x57'),_0x659b('0x4d'),{'module':_0x659b('0x58')});})[_0x659b('0x15')](function(){return _0x45a96b;});})[_0x659b('0x15')](respondWithResult(_0x43b079,0xc9))[_0x659b('0x49')](handleError(_0x43b079,null));};exports[_0x659b('0x29')]=function(_0x443d94,_0x3c1f51,_0x315e1f){var _0x20db77;return db[_0x659b('0x59')][_0x659b('0x4c')](function(_0x52c047){return db[_0x659b('0x2f')]['find']({'where':{'id':_0x443d94[_0x659b('0x4b')]['id']}})['then'](handleEntityNotFound(_0x3c1f51,null))[_0x659b('0x15')](saveUpdates(_0x443d94[_0x659b('0x4e')],null))[_0x659b('0x15')](function(_0x4c862d){if(_0x4c862d){_0x20db77=_0x4c862d;return db[_0x659b('0x2f')]['findAll']({'where':{'type':_0x20db77['type']},'raw':!![]});}return null;})[_0x659b('0x15')](function(_0x2e9494){if(_0x2e9494){var _0x281770=fs['readFileSync'](path[_0x659b('0x5a')](config[_0x659b('0x4f')],_0x659b('0x50')),_0x659b('0x51'));var _0x396263=ejs[_0x659b('0x52')](_0x281770,{'networks':_0x2e9494||[]});fs['writeFileSync'](util[_0x659b('0x54')](_0x659b('0x55'),_0x20db77[_0x659b('0x32')][_0x659b('0x56')]()),_0x396263);return respondWithRpcPromise(_0x659b('0x57'),_0x659b('0x29'),{'module':_0x659b('0x58')});}return null;})[_0x659b('0x15')](function(_0x2e4548){if(_0x2e4548){return _0x20db77;}return null;});})['then'](respondWithResult(_0x3c1f51,null))[_0x659b('0x49')](handleError(_0x3c1f51,null));};exports[_0x659b('0x2a')]=function(_0x56a22e,_0x1b0241,_0x26c6bd){var _0x2da698;return db[_0x659b('0x2f')][_0x659b('0x5b')]({'where':{'id':_0x56a22e[_0x659b('0x4b')]['id']}})[_0x659b('0x15')](function(_0x203a49){_0x2da698=_0x203a49;return _0x203a49;})[_0x659b('0x15')](handleEntityNotFound(_0x1b0241,null))['then'](removeEntity(_0x1b0241,null))[_0x659b('0x15')](function(){if(_0x2da698){return db['Network'][_0x659b('0x48')]({'where':{'type':_0x2da698[_0x659b('0x32')]},'raw':!![]});}})[_0x659b('0x15')](function(_0x356769){if(_0x356769){var _0x1101f3=fs['readFileSync'](path[_0x659b('0x5a')](config[_0x659b('0x4f')],_0x659b('0x50')),_0x659b('0x51'));var _0x57d476=ejs[_0x659b('0x52')](_0x1101f3,{'networks':_0x356769||[]});fs[_0x659b('0x53')](util[_0x659b('0x54')](_0x659b('0x55'),_0x2da698[_0x659b('0x32')][_0x659b('0x56')]()),_0x57d476);return respondWithRpcPromise(_0x659b('0x57'),'destroy',{'module':'chan_sip.so'});}})[_0x659b('0x49')](handleError(_0x1b0241,null));};