Restructured Create Process Into Store
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import {defineStore} from 'pinia'
|
||||
import dayjs from "dayjs"
|
||||
import {typeOf} from "uri-js/dist/esnext/util";
|
||||
|
||||
//const supabase = createClient('https://uwppvcxflrcsibuzsbil.supabase.co','eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InV3cHB2Y3hmbHJjc2lidXpzYmlsIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDA5MzgxOTQsImV4cCI6MjAxNjUxNDE5NH0.CkxYSQH0uLfwx9GVUlO6AYMU2FMLAxGMrwEKvyPv7Oo')
|
||||
|
||||
@@ -9,6 +10,50 @@ export const useDataStore = defineStore('data', () => {
|
||||
const supabase = useSupabaseClient()
|
||||
const user = useSupabaseUser()
|
||||
const toast = useToast()
|
||||
const router = useRouter()
|
||||
|
||||
const dataTypes = {
|
||||
tasks: {
|
||||
label: "Aufgaben",
|
||||
labelSingle: "Aufgabe"
|
||||
},
|
||||
customers: {
|
||||
label: "Kunden",
|
||||
labelSingle: "Kunde"
|
||||
},
|
||||
contacts: {
|
||||
label: "Kontakte",
|
||||
labelSingle: "Kontakt"
|
||||
},
|
||||
contracts: {
|
||||
label: "Verträge",
|
||||
labelSingle: "Vertrag"
|
||||
},
|
||||
absenceRequests: {
|
||||
label: "Abwesenheitsanträge",
|
||||
labelSingle: "Abwesenheitsantrag"
|
||||
},
|
||||
plants: {
|
||||
label: "Anlagen",
|
||||
labelSingle: "Anlage"
|
||||
},
|
||||
products: {
|
||||
label: "Artikel",
|
||||
labelSingle: "Artikel"
|
||||
},
|
||||
projects: {
|
||||
label: "Projekte",
|
||||
labelSingle: "Projekt"
|
||||
},
|
||||
vehicles: {
|
||||
label: "Fahrzeuge",
|
||||
labelSingle: "Fahrzeug"
|
||||
},
|
||||
vendors: {
|
||||
label: "Lieferanten",
|
||||
labelSingle: "Lieferant"
|
||||
}
|
||||
}
|
||||
|
||||
const loaded = ref(false)
|
||||
const ownTenant = ref({
|
||||
@@ -127,6 +172,38 @@ export const useDataStore = defineStore('data', () => {
|
||||
messages.value = []
|
||||
}
|
||||
|
||||
const channelA = supabase
|
||||
.channel('schema-db-changes')
|
||||
.on(
|
||||
'postgres_changes',
|
||||
{
|
||||
event: '*',
|
||||
schema: 'public',
|
||||
},
|
||||
(payload) => {
|
||||
//console.log(payload)
|
||||
const c = payload.table + '.value.push(' + JSON.stringify(payload.new) + ')'
|
||||
eval(c)
|
||||
|
||||
}
|
||||
)
|
||||
.subscribe()
|
||||
|
||||
async function createNewItem (dataType:string,data:Array){
|
||||
const {data:supabaseData,error:supabaseError} = await supabase
|
||||
.from(dataType)
|
||||
.insert(typeOf(data) === 'Object' ? [data] : data)
|
||||
.select()
|
||||
|
||||
if(supabaseError) {
|
||||
console.log(supabaseError)
|
||||
} else if (supabaseData) {
|
||||
await eval( dataType + '.value.push(' + JSON.stringify(...supabaseData) + ')')
|
||||
toast.add({title: `${dataTypes[dataType].labelSingle} hinzugefügt`})
|
||||
await router.push(`/${dataType}/show/${supabaseData[0].id}`)
|
||||
}
|
||||
}
|
||||
|
||||
async function fetchOwnTenant () {
|
||||
ownTenant.value = (await supabase.from("tenants").select().eq('id', user.value?.app_metadata.tenant)).data[0]
|
||||
}
|
||||
@@ -582,6 +659,7 @@ export const useDataStore = defineStore('data', () => {
|
||||
chats,
|
||||
messages,
|
||||
//Functions
|
||||
createNewItem,
|
||||
fetchData,
|
||||
clearStore,
|
||||
fetchOwnTenant,
|
||||
|
||||
Reference in New Issue
Block a user