UNPKG

@adventurelabs/scout-core

Version:

Core utilities and helpers for Adventure Labs Scout applications

44 lines (43 loc) 1.5 kB
"use server"; import { newServerClient } from "../supabase/server"; import { IWebResponse, EnumWebResponse } from "../types/requests"; export async function server_insert_chat_message(message, herd_id, sender) { const supabase = await newServerClient(); const chatMessage = { message, herd_id, sender: sender || null, }; const { data, error } = await supabase .from("chat") .insert(chatMessage) .select("id") .single(); if (error) { console.warn("Error inserting chat message:", error.message); return { status: EnumWebResponse.ERROR, msg: `Failed to insert chat message: ${error.message}`, data: null, }; } return IWebResponse.success({ id: data.id }).to_compatible(); } export async function server_get_chat_messages(limit = 50, offset = 0, herd_id) { const supabase = await newServerClient(); const { data, error } = await supabase .from("chat") .select("id, message, sender, created_at") .order("created_at", { ascending: false }) .range(offset, offset + limit - 1) .eq("herd_id", herd_id); if (error) { console.warn("Error fetching chat messages:", error.message); return { status: EnumWebResponse.ERROR, msg: `Failed to fetch chat messages: ${error.message}`, data: [], }; } return IWebResponse.success(data || []).to_compatible(); }