Keep track of API usage in user accounts, improve approval mechanism (#95)

This commit is contained in:
Brian Hackett
2025-04-04 14:40:10 -07:00
committed by GitHub
parent 4f5051dee5
commit 9389fb2afc
11 changed files with 190 additions and 120 deletions

View File

@@ -0,0 +1,37 @@
import { getSupabase } from './client';
export async function supabaseAddRefund(peanuts: number) {
const supabase = getSupabase();
// Get the current user ID if available
const {
data: { user },
} = await supabase.auth.getUser();
const userId = user?.id || null;
const { data, error } = await supabase.from('profiles').select('peanuts_refunded').eq('id', userId).single();
if (error) {
console.error('AddPeanutsRefund:ErrorFetchingData', { error });
return;
}
const currentPeanutsRefunded = data.peanuts_refunded;
if (typeof currentPeanutsRefunded !== 'number') {
console.error('AddPeanutsRefund:InvalidPeanutsRefunded', { currentPeanutsRefunded });
return;
}
const newPeanutsRefunded = Math.round(currentPeanutsRefunded + peanuts);
// Note: this is not atomic.
// https://linear.app/replay/issue/PRO-1122/update-api-usage-atomically
const { error: updateError } = await supabase
.from('profiles')
.update({ peanuts_refunded: newPeanutsRefunded })
.eq('id', userId);
if (updateError) {
console.error('AddPeanutsRefund:ErrorUpdatingData', { updateError });
}
}