UNPKG

@adventurelabs/scout-core

Version:

Core utilities and helpers for Adventure Labs Scout applications

92 lines (91 loc) 3.31 kB
import { IWebResponse } from "../types/requests"; export async function get_versions_software(client) { const { data, error } = await client .from("versions_software") .select("*") .order("created_at", { ascending: false }); if (error) { return IWebResponse.error(error.message).to_compatible(); } if (!data) { return IWebResponse.error("No software versions found").to_compatible(); } return IWebResponse.success(data).to_compatible(); } export async function get_versions_software_by_system(client, system) { const { data, error } = await client .from("versions_software") .select("*") .eq("system", system) .order("created_at", { ascending: false }); if (error) { return IWebResponse.error(error.message).to_compatible(); } if (!data) { return IWebResponse.error(`No software versions found for system: ${system}`).to_compatible(); } return IWebResponse.success(data).to_compatible(); } export async function create_version_software(client, newVersionSoftware) { const { data, error } = await client .from("versions_software") .insert([newVersionSoftware]) .select("*") .single(); if (error) { return IWebResponse.error(error.message).to_compatible(); } if (!data) { return IWebResponse.error("Failed to create software version").to_compatible(); } return IWebResponse.success(data).to_compatible(); } export async function update_version_software(client, version_id, updatedVersionSoftware) { // Remove fields that shouldn't be updated const updateData = { ...updatedVersionSoftware }; delete updateData.id; delete updateData.created_at; delete updateData.created_by; // Only original creator can modify due to RLS const { data, error } = await client .from("versions_software") .update(updateData) .eq("id", version_id) .select("*") .single(); if (error) { return IWebResponse.error(error.message).to_compatible(); } if (!data) { return IWebResponse.error("Software version not found or update failed").to_compatible(); } return IWebResponse.success(data).to_compatible(); } export async function delete_version_software(client, version_id) { const { data, error } = await client .from("versions_software") .delete() .eq("id", version_id) .select("*") .single(); if (error) { return IWebResponse.error(error.message).to_compatible(); } if (!data) { return IWebResponse.error("Software version not found or deletion failed").to_compatible(); } return IWebResponse.success(data).to_compatible(); } export async function get_versions_software_by_created_by(client, user_id) { const { data, error } = await client .from("versions_software") .select("*") .eq("created_by", user_id) .order("created_at", { ascending: false }); if (error) { return IWebResponse.error(error.message).to_compatible(); } if (!data) { return IWebResponse.error("No software versions found for user").to_compatible(); } return IWebResponse.success(data).to_compatible(); }