Files
FEDEO/spaces/stores/data.ts
2023-12-02 13:09:23 +01:00

92 lines
3.6 KiB
TypeScript

import {defineStore} from 'pinia'
import {createClient} from '@supabase/supabase-js'
const supabase = createClient('https://uwppvcxflrcsibuzsbil.supabase.co','eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InV3cHB2Y3hmbHJjc2lidXpzYmlsIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDA5MzgxOTQsImV4cCI6MjAxNjUxNDE5NH0.CkxYSQH0uLfwx9GVUlO6AYMU2FMLAxGMrwEKvyPv7Oo')
// @ts-ignore
export const useDataStore = defineStore('data', {
state: () => ({
loaded: false,
customers: [] as any[],
tasks: [] as any[],
projects: [] as any[],
documents: [] as any[],
spaces: [] as any[],
units: [] as any[],
times: [] as any[],
products: [] as any[],
movements: [] as any[],
forms: [] as any[],
formSubmits: [] as any[],
contact: [] as any[]
}),
actions: {
async fetchData() {
await this.fetchCustomers()
await this.fetchTasks()
await this.fetchForms()
await this.fetchFormSubmits()
await this.fetchProducts()
await this.fetchUnits()
await this.fetchProjects()
await this.fetchDocuments()
await this.fetchMovements()
await this.fetchSpaces()
this.loaded = true
},
async fetchCustomers() {
// @ts-ignore
this.customers = (await supabase.from("customers").select().order('customerNumber', {ascending: true})).data
},
async fetchTasks() {
// @ts-ignore
this.tasks = (await supabase.from("tasks").select()).data
},
async fetchForms() {
// @ts-ignore
this.forms = (await supabase.from("forms").select()).data
},
async fetchFormSubmits() {
// @ts-ignore
this.formSubmits = (await supabase.from("formSubmits").select()).data
},
async fetchProducts() {
// @ts-ignore
this.products = (await supabase.from("products").select()).data
},
async fetchUnits() {
// @ts-ignore
this.units = (await supabase.from("units").select()).data
},
async fetchProjects() {
// @ts-ignore
this.projects = (await supabase.from("projects").select()).data
},
async fetchSpaces() {
// @ts-ignore
this.spaces = (await supabase.from("spaces").select().order('spaceNumber', {ascending: true})).data
},
async fetchMovements() {
// @ts-ignore
this.movements = (await supabase.from("movements").select()).data
},
async fetchDocuments() {
// @ts-ignore
this.documents = (await supabase.from("documents").select()).data
for(const [index,doc] of this.documents.entries()){
// @ts-ignore
this.documents[index].url = (await supabase.storage.from('documents').createSignedUrl(doc.path, 60 * 60)).data.signedUrl
}
}
},
getters: {
getOpenTasksCount: (state) => state.tasks.filter(task => task.categorie != "Erledigt").length,
movementsBySpace: (state) => (spaceId:number) => state.movements.filter(move => move.spaceId === spaceId),
getProductById: (state) => (productId:number) => state.products.find(product => product.id === productId),
getProjectById: (state) => (projectId:number) => state.projects.find(project => project.id === projectId),
getFormSubmitsWithLabelProp: (state) => (state.formSubmits.map(submit => {return{...submit, label: submit.id}}))
}
})