diff --git a/app.ts b/app.ts index bb672d7..6c0bd07 100644 --- a/app.ts +++ b/app.ts @@ -3,6 +3,12 @@ let app = express(); app.use(express.static('dist')); +app.use(express.urlencoded()); +app.use(express.json()); + app.get("/"); +app.post('/links', require('./srv/LinksAnimes/obtenerLinks').obtenerLinks); +app.put('/links', require('./srv/LinksAnimes/modificarLink').modificarLinks); + app.listen(8080); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 7a33f04..4f3ff47 100644 --- a/package-lock.json +++ b/package-lock.json @@ -103,6 +103,12 @@ "integrity": "sha512-5Th3OsZ4gTRdr9Mho83BQ23cex4sRhOR4XTG+m+cJc0FhtUBK9Vn62hBJ+pnQYnSxoPOsKoAPOx6FcphxBC8ng==", "dev": true }, + "@types/yaml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/yaml/-/yaml-1.0.1.tgz", + "integrity": "sha512-Bq8/v5jtk4TsPY4qSmlEM2hucw5vgA7jWaDV6NFNv6ZjSoqxicRB5RH8Cc1eMEr0VcbgnysGIujg6hR3nZ14sw==", + "dev": true + }, "@vue/cli-overlay": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.0.5.tgz", @@ -10058,6 +10064,11 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, + "yaml": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.0.2.tgz", + "integrity": "sha512-vPmXtExk6AV7F5l2N5jW4LhbhZZPPN+xOK8x/+EgSXsXoawuo19Iqa+9nYMwrltsi6nl0rMKiROA/SAfG2OgUw==" + }, "yargs": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", diff --git a/package.json b/package.json index f6535c2..ecf9536 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { + "start": "node app.js", "serve": "vue-cli-service serve", "build": "vue-cli-service build", "express": "vue-cli-service express:watch", @@ -16,9 +17,11 @@ "vue": "^2.5.17", "vue-class-component": "^6.0.0", "vue-property-decorator": "^7.0.0", - "vue-router": "^3.0.1" + "vue-router": "^3.0.1", + "yaml": "^1.0.2" }, "devDependencies": { + "@types/yaml": "^1.0.1", "@vue/cli-plugin-typescript": "^3.0.5", "@vue/cli-service": "^3.0.5", "node-sass": "^4.9.0", diff --git a/public/index.html b/public/index.html index d816795..1843f2b 100644 --- a/public/index.html +++ b/public/index.html @@ -24,5 +24,6 @@
+ diff --git a/src/components/AnimeView/Contenido.vue b/src/components/AnimeView/Contenido.vue index a350d17..fbed46a 100644 --- a/src/components/AnimeView/Contenido.vue +++ b/src/components/AnimeView/Contenido.vue @@ -1,79 +1,103 @@ - diff --git a/src/components/AnimeView/anuncioLocal.vue b/src/components/AnimeView/anuncioLocal.vue index 3a06cf3..30991a5 100644 --- a/src/components/AnimeView/anuncioLocal.vue +++ b/src/components/AnimeView/anuncioLocal.vue @@ -1,5 +1,5 @@ - \ No newline at end of file diff --git a/src/components/comp-cargando.vue b/src/components/comp-cargando.vue new file mode 100644 index 0000000..dfdccf9 --- /dev/null +++ b/src/components/comp-cargando.vue @@ -0,0 +1,56 @@ + + + + + \ No newline at end of file diff --git a/src/router.ts b/src/router.ts index 5a3bb56..fd03a02 100644 --- a/src/router.ts +++ b/src/router.ts @@ -6,7 +6,7 @@ import AnimeView from './views/AnimeView.vue' Vue.use(Router); -export default new Router({ +const rutas = { mode: 'history', base: process.env.BASE_URL, routes: [ @@ -26,8 +26,11 @@ export default new Router({ component: AnimeView } ], - scrollBehavior (to, from, savedPosition) { + scrollBehavior (to: any, from: any, savedPosition: any) { // return desired position return { x: 0, y: 0 } } -}); +}; + +// @ts-ignore +export default new Router(rutas); diff --git a/src/views/AnimeView.vue b/src/views/AnimeView.vue index f0a54b3..b39fa12 100644 --- a/src/views/AnimeView.vue +++ b/src/views/AnimeView.vue @@ -10,8 +10,12 @@
- + +
@@ -25,16 +29,23 @@ diff --git a/srv/LinksAnimes/modificarLink.ts b/srv/LinksAnimes/modificarLink.ts new file mode 100644 index 0000000..2267c5a --- /dev/null +++ b/srv/LinksAnimes/modificarLink.ts @@ -0,0 +1,50 @@ +const modificarLink = (req: any, res: any) => { + + const nombre = req.body.nombre; + const variante = parseInt(req.body.variante); + const episodio = req.body.episodio; + + const con = require('../mysql').obtenerConexionMySql(); + + con.connect((err: any) => { + if (!err) { + + con.query( + `SELECT data FROM links WHERE nombre='${nombre}'`, + (err: any, respuesta: any) => { + if (!err) { + + const data = JSON.parse(respuesta[0]["data"]); + + for (const opcion of data["opciones"]) { + if (opcion.key === variante) { + opcion["eps"][episodio][0]++; + } + } + + con.query( + `UPDATE links SET data='${JSON.stringify(data)}' WHERE nombre='${nombre}'`, + (err:any) => { + if (err) + console.log("Error al actualizar la tabla :c"); + + con.end(); + } + ); + + } else { + console.log("Eror al ejecutar query."); + con.end(); + } + } + ); + + } else { + console.log("Error al conectarse a base de datos."); + con.end(); + } + }); + +}; + +module.exports.modificarLinks = modificarLink; \ No newline at end of file diff --git a/srv/LinksAnimes/obtenerLinks.ts b/srv/LinksAnimes/obtenerLinks.ts index a576b23..8d15c65 100644 --- a/srv/LinksAnimes/obtenerLinks.ts +++ b/srv/LinksAnimes/obtenerLinks.ts @@ -14,8 +14,10 @@ const obtenerLinks = (req: any, res: any) => { res.send(`{ "exito": true, "payload": ${JSON.stringify(objecto)} }`); + } else if (!err) { + console.log("Error: La consulta no dio ningun resultado en obtenerLinks"); } else { - console.log("Error al ejecutar Query.\n" + err); + console.log("Error al ejecutar Query en obtenerLinks.\n" + err); res.send(`{ "exito": false }`); } diff --git a/srv/index.ts b/srv/index.ts index 2c4af48..0bf2262 100644 --- a/srv/index.ts +++ b/srv/index.ts @@ -16,5 +16,6 @@ export default (app:any) => { app.get("/"); app.post('/links', require('./LinksAnimes/obtenerLinks').obtenerLinks); + app.put('/links', require('./LinksAnimes/modificarLink').modificarLinks); } diff --git a/srv/mysql.ts b/srv/mysql.ts index 61c3a1f..d8959ae 100644 --- a/srv/mysql.ts +++ b/srv/mysql.ts @@ -3,7 +3,7 @@ const obtenerConexionMySql = () => { const mysql = require('mysql'); const SQL_CONNECT_DATA:object = { // Solo para produccion habilitar socketPath - // socketPath: '/cloudsql/pseudosubs:us-central1:base-principal', + socketPath: '/cloudsql/pseudosubs:us-central1:base-principal', user: 'root', password: 'GgwTo5GryvDhAr06wk5opKhd', database: 'animes_links',