From 71cd973e25fa6b16e8cef9df3a10def38717ab4a Mon Sep 17 00:00:00 2001 From: Francisco Sandoval Date: Wed, 14 Feb 2024 23:13:20 -0300 Subject: [PATCH] se agrega en mantenedor de persona, subir foto --- src/layouts/LayoutUser.svelte | 77 ++++++++++++++++--------------- src/pages/personas/Form.svelte | 64 +++++++++++++++++-------- src/pages/personas/Persona.svelte | 2 +- src/services/gtfs_archivo.js | 2 - src/services/personas.js | 37 +++++++++++++-- 5 files changed, 121 insertions(+), 61 deletions(-) diff --git a/src/layouts/LayoutUser.svelte b/src/layouts/LayoutUser.svelte index c205f14..27837a3 100644 --- a/src/layouts/LayoutUser.svelte +++ b/src/layouts/LayoutUser.svelte @@ -3,48 +3,53 @@
diff --git a/src/pages/personas/Form.svelte b/src/pages/personas/Form.svelte index 2e86817..adbcffc 100644 --- a/src/pages/personas/Form.svelte +++ b/src/pages/personas/Form.svelte @@ -1,29 +1,42 @@
@@ -83,4 +96,19 @@ Dirección
+
+ + +
+
+ {#if form.rut} + imagen de persona + {/if} +
+
+ Fotografia +
+ form.photo = inputFile}> +
+
\ No newline at end of file diff --git a/src/pages/personas/Persona.svelte b/src/pages/personas/Persona.svelte index cf99dbf..84244de 100644 --- a/src/pages/personas/Persona.svelte +++ b/src/pages/personas/Persona.svelte @@ -16,7 +16,7 @@ const params = useParams() const navigate = useNavigate() let es_nuevo = true; - let form = {} + let form = { photo: null } let loading = false; let escritura = false diff --git a/src/services/gtfs_archivo.js b/src/services/gtfs_archivo.js index b3d5a82..6849d06 100644 --- a/src/services/gtfs_archivo.js +++ b/src/services/gtfs_archivo.js @@ -23,8 +23,6 @@ export async function getGtfsArchivoId(id) { export async function createGtfsArchivo(data) { const form = new FormData() - const directorioUpload = '/uploads' - form.append('ruta_archivo', directorioUpload) form.append('status', 'PENDIENTE') for (let key in data) { if (key === 'archivo') { diff --git a/src/services/personas.js b/src/services/personas.js index cff1cf7..3ccae5d 100644 --- a/src/services/personas.js +++ b/src/services/personas.js @@ -19,21 +19,50 @@ export async function getPersona(rut) { } export async function createPersona(data) { + const form = new FormData() + for (const key in data) { + if (data[key]?.files?.length) { + form.append(key, data[key].files[0], data[key].files[0].name) + } else { + form.append(key, data[key] || '') + } + } + const res = await fetch(`${base}/personas/`, { method: 'POST', - body: JSON.stringify(data), - headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" } + body: form, + headers: { "Authorization": `Bearer ${getToken()}` } }) if (!res.ok) throw await res.text() return res.json() } export async function updatePersona({ rut: id = null, ...data }) { + console.log({ data }) + const form = new FormData() + for (const key in data) { + if (data[key]?.files?.length) { + form.append(key, data[key].files[0], data[key].files[0].name) + } else { + form.append(key, data[key] || '') + } + } + const res = await fetch(`${base}/personas/${id}/`, { method: 'PATCH', - body: JSON.stringify(data), - headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" } + body: form, + headers: { "Authorization": `Bearer ${getToken()}` } }) if (!res.ok) throw await res.text() return res.json() +} + +export async function getPhoto(id) { + const res = await fetch(`${base}/personas/photo/?id=${id}`, { + headers: { "Authorization": `Bearer ${getToken()}` } + }) + if (!res.ok) throw await res.text() + + const blob = await res.blob() + return URL.createObjectURL(blob); } \ No newline at end of file