Files
gremiumhub/legalconsenthub/composables/useBetterAuth.ts

50 lines
1.3 KiB
TypeScript

const activeOrganization = ref<ActiveOrganization | null>(null)
const selectedOrgId = ref<string | undefined>(undefined)
export function useBetterAuth() {
const toast = useToast()
async function createOrganization(name: string, slug: string, logo?: string) {
await organization.create(
{ name, slug, logo },
{
onSuccess: () => {
toast.add({ title: 'Organisation erfolgreich erstellt', color: 'success' })
return Promise.resolve()
},
onError: (ctx) => {
toast.add({
title: 'Fehler bei der Erstellung der Organisation',
description: ctx.error.message,
color: 'error'
})
return Promise.reject()
}
}
)
}
async function deleteOrganization() {
await authClient.organization.delete(
{ organizationId: activeOrganization.value?.id ?? '' },
{
onSuccess: () => {
toast.add({ title: 'Organization deleted', color: 'success' })
activeOrganization.value = null
selectedOrgId.value = undefined
},
onError: (ctx) => {
toast.add({ title: 'Error deleting organization', description: ctx.error.message, color: 'error' })
}
}
)
}
return {
activeOrganization,
selectedOrgId,
createOrganization,
deleteOrganization
}
}