@adventurelabs/scout-core
Version:
Core utilities and helpers for Adventure Labs Scout applications
79 lines (78 loc) • 2.24 kB
JavaScript
"use server";
import { newServerClient } from "../supabase/server";
import { EnumWebResponse, IWebResponse, } from "../types/requests";
// function that fetches the providers from our db given a herd id
export async function server_get_providers_by_herd(herd_id) {
const supabase = await newServerClient();
const { data, error } = await supabase
.from("providers")
.select("*")
.eq("herd_id", herd_id);
if (error) {
return {
status: EnumWebResponse.ERROR,
msg: error.message,
data: null,
};
}
else {
return IWebResponse.success(data).to_compatible();
}
}
// function that creates a new provider in our db
export async function server_create_provider(provider) {
const supabase = await newServerClient();
const { data, error } = await supabase
.from("providers")
.insert(provider)
.select("*")
.single();
if (error) {
return {
status: EnumWebResponse.ERROR,
msg: error.message,
data: null,
};
}
else {
return IWebResponse.success(data).to_compatible();
}
}
// function that updates a provider in our db
export async function server_update_provider(provider_id, updates) {
const supabase = await newServerClient();
const { data, error } = await supabase
.from("providers")
.update(updates)
.eq("id", provider_id)
.select("*")
.single();
if (error) {
return {
status: EnumWebResponse.ERROR,
msg: error.message,
data: null,
};
}
else {
return IWebResponse.success(data).to_compatible();
}
}
// function that deletes providers by ids
export async function server_delete_providers_by_ids(provider_ids) {
const supabase = await newServerClient();
const { error } = await supabase
.from("providers")
.delete()
.in("id", provider_ids);
if (error) {
return {
status: EnumWebResponse.ERROR,
msg: error.message,
data: false,
};
}
else {
return IWebResponse.success(true).to_compatible();
}
}