Files
FEDEO/composables/useSupabase.js
2024-10-08 13:57:23 +02:00

93 lines
2.3 KiB
JavaScript

export const useSupabaseSelect = async (relation,select = '*', sortColumn = null) => {
const supabase = useSupabaseClient()
const dataStore = useDataStore()
let data = null
if(sortColumn !== null ) {
data = (await supabase
.from(relation)
.select(select)
.eq("tenant", dataStore.currentTenant)
.order(sortColumn, {ascending: ascending})).data
} else {
data = (await supabase
.from(relation)
.select(select)
.eq("tenant", dataStore.currentTenant)).data
}
return data
}
export const useSupabaseSelectDocuments = async (select = '*', sortColumn = null, folderPath = "_") => {
const supabase = useSupabaseClient()
const dataStore = useDataStore()
let data = null
if(sortColumn !== null ) {
data = (await supabase
.from("documents")
.select(select)
.eq("tenant", dataStore.currentTenant)
.eq("folderPath", folderPath)
.order(sortColumn, {ascending: true})).data
} else {
data = (await supabase
.from("documents")
.select(select)
.eq("tenant", dataStore.currentTenant)
.eq("folderPath",folderPath)).data
}
if(data.length > 0){
let paths = []
data.forEach(doc => {
paths.push(doc.path)
})
const {data: supabaseData,error} = await supabase.storage.from('files').createSignedUrls(paths,3600)
data = data.map((doc,index) => {
return {
...doc,
url: supabaseData[index].signedUrl
}
})
}
//console.log(data)
return data
}
export const useSupabaseSelectSingle = async (relation,idToEq,select = '*' ) => {
const supabase = useSupabaseClient()
const dataStore = useDataStore()
let data = null
if(idToEq !== null) {
data = (await supabase
.from(relation)
.select(select)
.eq("tenant", dataStore.currentTenant)
.eq("id",idToEq)
.single()).data
} else {
data = (await supabase
.from(relation)
.select(select)
.eq("tenant", dataStore.currentTenant)
.single()).data
}
return data
}