From 535723900d8b3c41534d0c19d7e3cc9d2db27457 Mon Sep 17 00:00:00 2001 From: fede Date: Thu, 27 Nov 2025 20:11:21 -0300 Subject: [PATCH] fetch de usuarios ya funcional junto con la ui de usurios --- src/lib/components/TablaUsuarios.svelte | 38 ++++++++++++++++++++++ src/lib/components/crear-post.svelte | 1 + src/routes/(privado)/admin/+page.server.ts | 9 ----- src/routes/(privado)/admin/+page.svelte | 31 ++++-------------- src/routes/(privado)/admin/+page.ts | 29 +++++++++++++++++ 5 files changed, 75 insertions(+), 33 deletions(-) create mode 100644 src/lib/components/TablaUsuarios.svelte delete mode 100644 src/routes/(privado)/admin/+page.server.ts create mode 100644 src/routes/(privado)/admin/+page.ts diff --git a/src/lib/components/TablaUsuarios.svelte b/src/lib/components/TablaUsuarios.svelte new file mode 100644 index 0000000..25ffd32 --- /dev/null +++ b/src/lib/components/TablaUsuarios.svelte @@ -0,0 +1,38 @@ + + + + + + Usuario + Nombre + Cantidad de posts + Fecha de Creacion + Acciones + + + + {#each usuarios as usuario} + + @{usuario.username} + {usuario.displayName} + ? + {usuario.createdAt.replace('Z', ' ').replace('T', ' | ')} + ? + + {/each} + +
diff --git a/src/lib/components/crear-post.svelte b/src/lib/components/crear-post.svelte index dd40c7f..19da76a 100644 --- a/src/lib/components/crear-post.svelte +++ b/src/lib/components/crear-post.svelte @@ -85,6 +85,7 @@ - import CardAction from '@/components/ui/card/card-action.svelte'; import CardContent from '@/components/ui/card/card-content.svelte'; - import CardHeader from '@/components/ui/card/card-header.svelte'; - import CardTitle from '@/components/ui/card/card-title.svelte'; import Card from '@/components/ui/card/card.svelte'; import TableBody from '@/components/ui/table/table-body.svelte'; import TableHead from '@/components/ui/table/table-head.svelte'; @@ -12,10 +9,11 @@ import type { User } from '../../../types'; import CardDescription from '@/components/ui/card/card-description.svelte'; import Spinner from '@/components/ui/spinner/spinner.svelte'; + import TableCell from '@/components/ui/table/table-cell.svelte'; + import { page } from '$app/state'; + import TablaUsuarios from '@/components/TablaUsuarios.svelte'; - let usuarios: User[] = $state([]); let cargando = $state(true); - let error = $state(true);
@@ -25,33 +23,18 @@ > Gestion Usuarios - + - {#if usuarios.length === 0} - {#if error} + {#if page.data.usuarios.length === 0} + {#if page.data.error} Error al cargar usuarios. - {:else if cargando} - - - Cargando usuarios... - {:else} No hay posts que mostar {/if} {:else} - - - - Usuario - Nombre - Cantidad de posts - Acciones - - - -
+ {/if}
diff --git a/src/routes/(privado)/admin/+page.ts b/src/routes/(privado)/admin/+page.ts new file mode 100644 index 0000000..b253ba8 --- /dev/null +++ b/src/routes/(privado)/admin/+page.ts @@ -0,0 +1,29 @@ +import { apiBase } from '@/stores/url.js'; +import { sesionStore } from '@/stores/usuario'; +import { redirect } from '@sveltejs/kit'; +import { get } from 'svelte/store'; +import type { UserResponseDto } from '../../../types.js'; + +//para que solo se envie cuando se requiere +export const prerender = true; + +export async function load({}) { + const response = await fetch(get(apiBase) + '/api/admin/users', { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${get(sesionStore)?.accessToken}` + } + }); + + if (response.status === 401) { + throw redirect(302, '/'); + } + if (!response.ok) { + return { error: true }; + } + + const usuarios: UserResponseDto[] = await response.json(); + + return { usuarios, error: false }; +}