diff --git a/supabase/migrations/20241112214000_add_token_cleanup_function.sql b/supabase/migrations/20241112214000_add_token_cleanup_function.sql index b85de41..9a0d392 100644 --- a/supabase/migrations/20241112214000_add_token_cleanup_function.sql +++ b/supabase/migrations/20241112214000_add_token_cleanup_function.sql @@ -6,16 +6,29 @@ grant all privileges on all tables in schema cron to postgres; -- Create a function to delete expired tokens CREATE OR REPLACE FUNCTION delete_expired_tokens() -RETURNS void LANGUAGE plpgsql AS $$ +RETURNS integer LANGUAGE plpgsql AS $$ +DECLARE + deletion_count integer; + expiry_interval interval := '24 hours'::interval; BEGIN DELETE FROM account_deletion_requests - WHERE requested_at < NOW() - INTERVAL '24 hours'; + WHERE requested_at < NOW() - expiry_interval + RETURNING COUNT(*) INTO deletion_count; + RAISE NOTICE 'Deleted % expired token(s)', deletion_count; + RETURN deletion_count; END; $$; --- Schedule the function to run every hour -SELECT cron.schedule( - 'delete_expired_tokens', - '0 * * * *', - 'CALL delete_expired_tokens()' -); \ No newline at end of file +DO $$ +BEGIN + -- Schedule the function to run every hour + PERFORM cron.schedule( + 'delete_expired_tokens', + '0 * * * *', + 'SELECT delete_expired_tokens()' + ); +EXCEPTION WHEN OTHERS THEN + RAISE NOTICE 'Failed to schedule token cleanup: %', SQLERRM; + RAISE; +END; +$$; \ No newline at end of file