From cab78245105b913d36b319c3568f25fa5d38d367 Mon Sep 17 00:00:00 2001 From: Sean Morley Date: Fri, 12 Jul 2024 22:07:36 -0400 Subject: [PATCH] refactor: Update API endpoint for fetching visited adventures --- backend/server/adventures/views.py | 10 ++ docker-compose.yml | 8 +- frontend/src/routes/+page.svelte | 2 +- frontend/src/routes/map/+page.server.ts | 2 +- frontend/src/routes/planner/+page.server.ts | 28 ----- frontend/src/routes/planner/+page.svelte | 111 -------------------- frontend/src/routes/visited/+page.server.ts | 28 ----- frontend/src/routes/visited/+page.svelte | 96 ----------------- 8 files changed, 16 insertions(+), 269 deletions(-) delete mode 100644 frontend/src/routes/planner/+page.server.ts delete mode 100644 frontend/src/routes/planner/+page.svelte delete mode 100644 frontend/src/routes/visited/+page.server.ts delete mode 100644 frontend/src/routes/visited/+page.svelte diff --git a/backend/server/adventures/views.py b/backend/server/adventures/views.py index f7a2730..349c80e 100644 --- a/backend/server/adventures/views.py +++ b/backend/server/adventures/views.py @@ -61,6 +61,16 @@ class AdventureViewSet(viewsets.ModelViewSet): queryset = queryset.order_by(lower_name) adventures = self.paginate_and_respond(queryset, request) return adventures + + @action(detail=False, methods=['get']) + def all(self, request): + # return error if user is not authenticated + if not request.user.is_authenticated: + return Response({"error": "User is not authenticated"}, status=400) + queryset = Adventure.objects.filter(user_id=request.user.id).exclude(type='featured') + serializer = self.get_serializer(queryset, many=True) + return Response(serializer.data) + def paginate_and_respond(self, queryset, request): paginator = self.pagination_class() diff --git a/docker-compose.yml b/docker-compose.yml index 90e3194..7ffadeb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,8 +2,8 @@ version: "3.9" services: web: - build: ./frontend/ - #image: ghcr.io/seanmorley15/adventurelog-frontend:latest + #build: ./frontend/ + image: ghcr.io/seanmorley15/adventurelog-frontend:latest environment: - PUBLIC_SERVER_URL=http://server:8000 - ORIGIN=http://localhost:8080 @@ -23,8 +23,8 @@ services: - postgres_data:/var/lib/postgresql/data/ server: - build: ./backend/ - #image: ghcr.io/seanmorley15/adventurelog-backend:latest + #build: ./backend/ + image: ghcr.io/seanmorley15/adventurelog-backend:latest environment: - PGHOST=db - PGDATABASE=database diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index 7f28dc9..5611857 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -40,7 +40,7 @@

-
diff --git a/frontend/src/routes/map/+page.server.ts b/frontend/src/routes/map/+page.server.ts index 44e935c..2465952 100644 --- a/frontend/src/routes/map/+page.server.ts +++ b/frontend/src/routes/map/+page.server.ts @@ -8,7 +8,7 @@ export const load = (async (event) => { if (!event.locals.user) { return redirect(302, '/login'); } else { - let visitedFetch = await fetch(`${endpoint}/api/adventures/`, { + let visitedFetch = await fetch(`${endpoint}/api/adventures/all/`, { headers: { Cookie: `${event.cookies.get('auth')}` } diff --git a/frontend/src/routes/planner/+page.server.ts b/frontend/src/routes/planner/+page.server.ts deleted file mode 100644 index fcdc109..0000000 --- a/frontend/src/routes/planner/+page.server.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { redirect } from '@sveltejs/kit'; -import type { PageServerLoad } from './$types'; -const PUBLIC_SERVER_URL = process.env['PUBLIC_SERVER_URL']; -import type { Adventure } from '$lib/types'; -const endpoint = PUBLIC_SERVER_URL || 'http://localhost:8000'; - -export const load = (async (event) => { - if (!event.locals.user) { - return redirect(302, '/login'); - } else { - let plannedFetch = await fetch(`${endpoint}/api/adventures/planned/`, { - headers: { - Cookie: `${event.cookies.get('auth')}` - } - }); - if (!plannedFetch.ok) { - console.error('Failed to fetch planned adventures'); - return redirect(302, '/login'); - } else { - let planned = (await plannedFetch.json()) as Adventure[]; - return { - props: { - planned - } - }; - } - } -}) satisfies PageServerLoad; diff --git a/frontend/src/routes/planner/+page.svelte b/frontend/src/routes/planner/+page.svelte deleted file mode 100644 index 00d216f..0000000 --- a/frontend/src/routes/planner/+page.svelte +++ /dev/null @@ -1,111 +0,0 @@ - - -{#if isShowingCreateModal} - (isShowingCreateModal = false)} - /> -{/if} - -{#if isEditModalOpen} - (isEditModalOpen = false)} - on:saveEdit={saveEdit} - /> -{/if} - -
-
- -
-
- -{#if adventures.length > 0} -

Planned Adventures

-{/if} - -
- {#each adventures as adventure} - - {/each} -
- -{#if adventures.length === 0} -
-
-
- Lost -
-

- No planned adventures found -

-

- There are no adventures to display. Add some using the plus button at the bottom right! -

-
-
-{/if} diff --git a/frontend/src/routes/visited/+page.server.ts b/frontend/src/routes/visited/+page.server.ts deleted file mode 100644 index 1ff6432..0000000 --- a/frontend/src/routes/visited/+page.server.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { redirect } from '@sveltejs/kit'; -import type { PageServerLoad } from './$types'; -const PUBLIC_SERVER_URL = process.env['PUBLIC_SERVER_URL']; -import type { Adventure } from '$lib/types'; -const endpoint = PUBLIC_SERVER_URL || 'http://localhost:8000'; - -export const load = (async (event) => { - if (!event.locals.user) { - return redirect(302, '/login'); - } else { - let visitedFetch = await fetch(`${endpoint}/api/adventures/visited/`, { - headers: { - Cookie: `${event.cookies.get('auth')}` - } - }); - if (!visitedFetch.ok) { - console.error('Failed to fetch visited adventures'); - return redirect(302, '/login'); - } else { - let visited = (await visitedFetch.json()) as Adventure[]; - return { - props: { - visited - } - }; - } - } -}) satisfies PageServerLoad; diff --git a/frontend/src/routes/visited/+page.svelte b/frontend/src/routes/visited/+page.svelte deleted file mode 100644 index 3a8a8de..0000000 --- a/frontend/src/routes/visited/+page.svelte +++ /dev/null @@ -1,96 +0,0 @@ - - -{#if isShowingCreateModal} - (isShowingCreateModal = false)} - /> -{/if} - -{#if isEditModalOpen} - (isEditModalOpen = false)} - on:saveEdit={saveEdit} - /> -{/if} - -
-
- -
-
- -{#if adventures.length > 0} -

Visited Adventures

-{:else} - -{/if} - -
- {#each adventures as adventure} - - {/each} -