feat: implement manual user validation and user deletion flow

This commit is contained in:
Christian Vidal Wolf
2026-05-20 13:33:37 +02:00
parent 1d105e19ae
commit 47b9303202
22 changed files with 2613 additions and 93 deletions
+8 -5
View File
@@ -1,5 +1,5 @@
const SUPABASE_URL = 'https://hwithddwaapyhnfwcesj.supabase.co';
const SUPABASE_ANON_KEY = process.env.SUPABASE_SERVICE_KEY || 'sb_publishable_fGXkh0bSrAOqSk2jWKAzSg_NJD9YPCv';
const SUPABASE_SERVICE_KEY = process.env.SUPABASE_SERVICE_KEY || 'sb_publishable_fGXkh0bSrAOqSk2jWKAzSg_NJD9YPCv';
const DROPBOX_APP_KEY = process.env.DROPBOX_APP_KEY;
const DROPBOX_APP_SECRET = process.env.DROPBOX_APP_SECRET;
@@ -32,9 +32,12 @@ async function fetchSupabaseTable(table) {
for (let page = 0; page < 50; page++) {
const res = await fetch(
`${SUPABASE_URL}/rest/v1/${table}?select=*&limit=${PAGE_SIZE}&offset=${offset}`,
{ headers: { apikey: SUPABASE_ANON_KEY, Authorization: `Bearer ${SUPABASE_ANON_KEY}` } }
{ headers: { apikey: SUPABASE_SERVICE_KEY, Authorization: `Bearer ${SUPABASE_SERVICE_KEY}` } }
);
if (!res.ok) throw new Error(`Supabase ${table} fetch failed: ${res.status}`);
if (!res.ok) {
const txt = await res.text();
throw new Error(`Supabase ${table} fetch failed (${res.status}): ${txt}`);
}
const batch = await res.json();
rows.push(...batch);
if (batch.length < PAGE_SIZE) break;
@@ -99,8 +102,8 @@ export default async function handler(req, res) {
try {
const [syncedRows, history] = await Promise.all([
fetchSupabaseTable('synced_rows'),
fetchSupabaseTable('item_history'),
fetchSupabaseTable('products'),
fetchSupabaseTable('products_history'),
]);
const now = new Date();