diff --git a/src/auth.d.ts b/src/auth.d.ts index d329da5..e7435ac 100644 --- a/src/auth.d.ts +++ b/src/auth.d.ts @@ -1,9 +1,10 @@ declare module '#auth-utils' { interface UserSession { user: { - email: string, - username: string, + email: string + username: string picture: string + admin: boolean } } } diff --git a/src/pages/guestbook.vue b/src/pages/guestbook.vue index 1df664c..a3e7b21 100644 --- a/src/pages/guestbook.vue +++ b/src/pages/guestbook.vue @@ -6,8 +6,7 @@ useHead({ title: 'Sign my guestbook • Arthur Danjou', }) -const { loggedIn, clear } = useUserSession() - +const { loggedIn, clear, user } = useUserSession() const { data: messages, refresh } = useFetch>('/api/messages', { method: 'get' }) const toast = useToast() @@ -37,6 +36,30 @@ async function sign() { }) messageContent.value = '' } +async function deleteMessage(id: number) { + if (!user.value.admin) + return + + await $fetch('/api/message', { + method: 'delete', + body: { + id, + }, + }).then(async () => { + toast.add({ + title: `Message successfully deleted`, + icon: 'i-material-symbols-check-circle-outline-rounded', + color: 'green', + timeout: 4000, + }) + await refresh() + }).catch(() => { + toast.add({ + title: 'An error occured when deleting a message!', + color: 'red', + }) + }) +}