Skip to content

Commit

Permalink
feat(demo): add call from server route
Browse files Browse the repository at this point in the history
  • Loading branch information
larbish committed Mar 31, 2023
1 parent 9ebbc77 commit 989a91e
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 0 deletions.
27 changes: 27 additions & 0 deletions demo/pages/tasks.vue
Expand Up @@ -7,6 +7,9 @@ definePageMeta({
const client = useSupabaseClient<Database>()
const user = useSupabaseUser()
const tasksFromServer = ref()
const isModalOpen = ref(false)
const loading = ref(false)
const newTask = ref('')
Expand Down Expand Up @@ -43,6 +46,14 @@ const removeTask = async (task: Task) => {
tasks.value = tasks.value.filter(t => t.id !== task.id)
await client.from('tasks').delete().match({ id: task.id })
}
const fetchTasksFromServerRoute = async () => {
const { data } = await useFetch('/api/tasks', { headers: useRequestHeaders(['cookie']), key: 'tasks-from-server' })
tasksFromServer.value = data
isModalOpen.value = true
}
</script>

<template>
Expand Down Expand Up @@ -103,6 +114,22 @@ const removeTask = async (task: Task) => {
</li>
</ul>
</UCard>
<UButton
class="mt-6"
label="Fetch tasks from Nuxt server route"
@click="fetchTasksFromServerRoute"
/>
<UModal v-model="isModalOpen">
<h2 class="mb-4">
Tasks fetched from
<a href="https://nuxt.com/docs/guide/directory-structure/server" target="_blank" class="text-primary-500 underline">Nuxt Server route</a>
with the use of the
<a href="https://supabase.nuxtjs.org/usage/services/server-supabase-client" target="_blank" class="text-primary-500 underline">serverSupabaseClient</a>:
</h2>
<pre>
{{ tasksFromServer }}
</pre>
</UModal>
</div>
</template>

Expand Down
15 changes: 15 additions & 0 deletions demo/server/api/tasks.ts
@@ -0,0 +1,15 @@
import { createError } from 'h3'
import { Database } from '~~/types/database.types'
import { serverSupabaseUser, serverSupabaseClient } from '#supabase/server'

export default defineEventHandler(async (event) => {
const user = await serverSupabaseUser(event)
const client = serverSupabaseClient<Database>(event)

const { data, error } = await client.from('tasks').select('id, title, completed').eq('user', user.id).order('created_at')
if (error) {
throw createError({ statusMessage: error.message })
}

return data
})

0 comments on commit 989a91e

Please sign in to comment.