From a4b53f5a6d924f7298ce3fb7980ade91be1acfee Mon Sep 17 00:00:00 2001 From: Francisco Sandoval Date: Sat, 25 Nov 2023 19:32:43 -0300 Subject: [PATCH] se agrega informacion de dispositivos del paradero --- package-lock.json | 8 +- package.json | 3 +- .../mapas/FormParaderoDispositivos.svelte | 56 +++++++++-- src/pages/mapas/FormParaderoServicios.svelte | 99 +++++++------------ src/services/_config.js | 1 + src/services/dispositivos.js | 41 ++++++++ src/services/paraderos.js | 11 ++- src/services/tipos_dispositivo.js | 11 +++ 8 files changed, 155 insertions(+), 75 deletions(-) create mode 100644 src/services/dispositivos.js create mode 100644 src/services/tipos_dispositivo.js diff --git a/package-lock.json b/package-lock.json index 820cd82..b17b8d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,8 @@ "bootstrap-icons": "^1.10.5", "history": "^5.3.0", "svelte-navigator": "^3.2.2", - "svelte-pagination": "^0.0.1" + "svelte-pagination": "^0.0.1", + "svelte-qrcode": "^1.0.0" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^2.0.4", @@ -899,6 +900,11 @@ "resolved": "https://registry.npmjs.org/svelte-pagination/-/svelte-pagination-0.0.1.tgz", "integrity": "sha512-CSGrZmwouUixUTWpRSFjmQB86VnhCemc6Vl/AxAPcuOOHKOQp3GLF1ZNLCK1Ik8Nrnf5osLwwwTHctPHfTtGfw==" }, + "node_modules/svelte-qrcode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svelte-qrcode/-/svelte-qrcode-1.0.0.tgz", + "integrity": "sha512-WrOvyyxtUzu32gVIDxcFMy0A7uUpbl/8yHaTNOsUaI8W5V4wa7AmReCjffhNY2aS42CqCLJ6qdwUoj/KxmeZzA==" + }, "node_modules/svelte2tsx": { "version": "0.1.193", "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.1.193.tgz", diff --git a/package.json b/package.json index 395edfd..1949780 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "bootstrap-icons": "^1.10.5", "history": "^5.3.0", "svelte-navigator": "^3.2.2", - "svelte-pagination": "^0.0.1" + "svelte-pagination": "^0.0.1", + "svelte-qrcode": "^1.0.0" } } diff --git a/src/pages/mapas/FormParaderoDispositivos.svelte b/src/pages/mapas/FormParaderoDispositivos.svelte index 8b5e9f5..efef820 100644 --- a/src/pages/mapas/FormParaderoDispositivos.svelte +++ b/src/pages/mapas/FormParaderoDispositivos.svelte @@ -1,5 +1,40 @@
@@ -12,19 +47,26 @@ + {#each dispositivos as disp} - AAAAAAAAAA - Panel Led - - - BBBBBBBBBB - Totem + {disp.id_dispositivo} + {disp.tipo_dispositivo?.descripcion || '--'} + {/each} + {#if loading} +
+ + Cargando información +
+ {/if} +
- + {#if url_qrcode} + + {/if}
diff --git a/src/pages/mapas/FormParaderoServicios.svelte b/src/pages/mapas/FormParaderoServicios.svelte index 06ff200..0bdd984 100644 --- a/src/pages/mapas/FormParaderoServicios.svelte +++ b/src/pages/mapas/FormParaderoServicios.svelte @@ -1,76 +1,54 @@

Servicios

- - {#if loading}
@@ -80,23 +58,14 @@ import { getLinea } from "../../services/lineas";
    {#each servicios as servicio} -
  • - -
    -
    {servicio.nombre_operador}
    - Destino: {servicio.route_long_name} -
    - {servicio.route_short_name} -
  • +
  • +
    +
    {servicio.nombre_operador}
    + Destino: {servicio.route_long_name} +
    + {servicio.route_short_name} +
  • {/each}
- - \ No newline at end of file diff --git a/src/services/_config.js b/src/services/_config.js index 046a97c..06620a6 100644 --- a/src/services/_config.js +++ b/src/services/_config.js @@ -1,2 +1,3 @@ +export const url_base = document.location.origin; export const base = import.meta.env.VITE_BACKEND || '/api'; export const getToken = () => sessionStorage.getItem('token') || null; \ No newline at end of file diff --git a/src/services/dispositivos.js b/src/services/dispositivos.js new file mode 100644 index 0000000..8f24f9c --- /dev/null +++ b/src/services/dispositivos.js @@ -0,0 +1,41 @@ + +import { base, getToken } from './_config' + +export async function getDispositivos(params) { + const query = !params ? '' : '?' + (new URLSearchParams(params).toString()); + const res = await fetch(`${base}/dispositivos/${query}`, { + headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" } + }) + if (!res.ok) throw await res.text() + return res.json() +} + + +export async function createDispositivo(data) { + const res = await fetch(`${base}/dispositivos/`, { + method: 'POST', + body: JSON.stringify(data), + headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" } + }) + if (!res.ok) throw await res.text() + return res.json() +} + +export async function updateDispositivo({ id_comuna: id, ...data }) { + const res = await fetch(`${base}/dispositivos/${id}/`, { + method: 'PATCH', + body: JSON.stringify(data), + headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" } + }) + if (!res.ok) throw await res.text() + return res.json() +} + +export async function deleteDispositivo(id) { + const res = await fetch(`${base}/dispositivos/${id}/`, { + method: 'DELETE', + headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" } + }) + if (!res.ok) throw await res.text() + return res.text() +} \ No newline at end of file diff --git a/src/services/paraderos.js b/src/services/paraderos.js index d708cbb..ae7c5b0 100644 --- a/src/services/paraderos.js +++ b/src/services/paraderos.js @@ -111,4 +111,13 @@ export async function deleteLineaParadero(id_paradero_linea) { }) if (!res.ok) throw await res.text() return res.text() -} \ No newline at end of file +} + + +export async function getInfoPublic(id_paradero) { + const res = await fetch(`${base}/paraderos/info-public/${id_paradero}`, { + headers: { "Authorization": `Bearer ${getToken()}` } + }) + if (!res.ok) throw await res.text() + return res.json() +} diff --git a/src/services/tipos_dispositivo.js b/src/services/tipos_dispositivo.js new file mode 100644 index 0000000..1a8d670 --- /dev/null +++ b/src/services/tipos_dispositivo.js @@ -0,0 +1,11 @@ + +import { base, getToken } from './_config' + +export async function getTiposDispositivo(params) { + const query = !params ? '' : '?' + (new URLSearchParams(params).toString()); + const res = await fetch(`${base}/tipos/dispositivo/${query}`, { + headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" } + }) + if (!res.ok) throw await res.json() + return res.json() +} \ No newline at end of file