diff --git a/src/components/GoogleMap.svelte b/src/components/GoogleMap.svelte
index 8db34aa..b3f6436 100644
--- a/src/components/GoogleMap.svelte
+++ b/src/components/GoogleMap.svelte
@@ -1,14 +1,16 @@
Cargando...
diff --git a/src/pages/mapas/ModalParadero.svelte b/src/pages/mapas/ModalParadero.svelte
new file mode 100644
index 0000000..3e96d75
--- /dev/null
+++ b/src/pages/mapas/ModalParadero.svelte
@@ -0,0 +1,92 @@
+
+
+
\ No newline at end of file
diff --git a/src/pages/mapas/Paraderos.svelte b/src/pages/mapas/Paraderos.svelte
index b000b8c..a9610aa 100644
--- a/src/pages/mapas/Paraderos.svelte
+++ b/src/pages/mapas/Paraderos.svelte
@@ -4,12 +4,12 @@
import { storeParaderos } from "$/stores/global";
import GoogleMap from '$/components/GoogleMap.svelte'
import IconLoading from "$/components/IconLoading.svelte";
+ import ModalParadero from "./ModalParadero.svelte";
- let my_map = null;
let data_map = null
+ let paradero = null
$: init_google_map($storeParaderos)
- $: console.log({ data_map })
async function init_google_map(data_inicial) {
const paraderos = data_inicial || await getMarcasParaderos()
@@ -17,7 +17,9 @@
data_map = paraderos;
}
-
+ function onEdita(id_paradero) {
+ paradero = { id_paradero }
+ }
Paraderos
@@ -33,9 +35,15 @@
center={data_map.center}
zoom={data_map.zoom}
marks={data_map.marks}
+ on:edita={ev => onEdita(ev.detail)}
/>
{:else}
{/if}
+
+
+{#if paradero}
+ paradero = null} />
+{/if}
\ No newline at end of file
diff --git a/src/services/paraderos.js b/src/services/paraderos.js
new file mode 100644
index 0000000..f60768c
--- /dev/null
+++ b/src/services/paraderos.js
@@ -0,0 +1,65 @@
+
+import { base, getToken } from './_config'
+
+export function getUrlImagen(id_paradero) {
+ return `${base}/paraderos/image/${id_paradero}`
+}
+
+export async function getParaderos(params) {
+ const query = !params ? '' : '?' + (new URLSearchParams(params).toString());
+ const res = await fetch(`${base}/paraderos/${query}`, {
+ headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" }
+ })
+ if (!res.ok) throw await res.text()
+ return res.json()
+}
+
+export async function getParadero(rut) {
+ const res = await fetch(`${base}/paraderos/${rut}/`, {
+ headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" }
+ })
+ if (!res.ok) throw await res.text()
+ return res.json()
+}
+
+export async function createParadero(data) {
+ const res = await fetch(`${base}/paraderos/`, {
+ 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 updateParadero({ id_paradero: id = null, ...data }) {
+ const res = await fetch(`${base}/paraderos/${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 deleteParadero(id) {
+ const res = await fetch(`${base}/paraderos/${id}/`, {
+ method: 'DELETE',
+ headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" }
+ })
+ if (!res.ok) throw await res.text()
+ return res.json()
+}
+
+export async function saveImageParadero(id = null, file) {
+ const form = new FormData()
+ form.append('imagen', file)
+
+ const res = await fetch(`${base}/paraderos/image/${id}/`, {
+ method: 'POST',
+ body: form,
+ headers: { "Authorization": `Bearer ${getToken()}` }
+ })
+ if (!res.ok) throw await res.text()
+ return res.json()
+}
\ No newline at end of file