@@ -3,10 +3,14 @@ import { NextRequest, NextResponse } from 'next/server';
33import { createClient } from '@supabase/supabase-js' ;
44import { createPayLink , createUserWallet , getPayLink } from '@/lib/lightning/lnbits' ;
55
6- const supabase = createClient (
7- process . env . NEXT_PUBLIC_SUPABASE_URL ! ,
8- process . env . SUPABASE_SERVICE_ROLE_KEY !
9- ) ;
6+ function getSupabase ( ) {
7+ const url = process . env . NEXT_PUBLIC_SUPABASE_URL ;
8+ const key = process . env . SUPABASE_SERVICE_ROLE_KEY ;
9+ if ( ! url || ! key ) {
10+ throw new Error ( 'Missing Supabase server environment variables' ) ;
11+ }
12+ return createClient ( url , key ) ;
13+ }
1014
1115const LIGHTNING_USERNAME_REGEX = / ^ [ a - z 0 - 9 ] [ a - z 0 - 9 . _ - ] { 1 , 30 } [ a - z 0 - 9 ] $ / ;
1216function isMissingLnbitsWalletError ( error : unknown ) : boolean {
@@ -24,7 +28,7 @@ function isLnbitsAuthError(error: unknown): boolean {
2428 return / a p i e r r o r 4 0 1 | 4 0 1 a u t h o r i z a t i o n r e q u i r e d | u n a u t h o r i z e d / i. test ( msg ) ;
2529}
2630
27- async function ensureLightningAddressBackend ( walletId : string , username : string , wallet : {
31+ async function ensureLightningAddressBackend ( supabase : ReturnType < typeof getSupabase > , walletId : string , username : string , wallet : {
2832 ln_wallet_adminkey ?: string | null ;
2933 ln_paylink_id ?: number | null ;
3034} ) {
@@ -110,6 +114,7 @@ async function ensureLightningAddressBackend(walletId: string, username: string,
110114 */
111115export async function POST ( request : NextRequest ) {
112116 try {
117+ const supabase = getSupabase ( ) ;
113118 const { wallet_id, username } = await request . json ( ) ;
114119
115120 if ( ! wallet_id || ! username ) {
@@ -187,7 +192,7 @@ export async function POST(request: NextRequest) {
187192 ) ;
188193 }
189194
190- await ensureLightningAddressBackend ( wallet_id , username , {
195+ await ensureLightningAddressBackend ( supabase , wallet_id , username , {
191196 ln_wallet_adminkey : wallet . ln_wallet_adminkey ?? null ,
192197 ln_paylink_id : wallet . ln_paylink_id ?? null ,
193198 } ) ;
@@ -224,6 +229,7 @@ export async function POST(request: NextRequest) {
224229 * Get current Lightning Address for a wallet
225230 */
226231export async function GET ( request : NextRequest ) {
232+ const supabase = getSupabase ( ) ;
227233 const username = request . nextUrl . searchParams . get ( 'username' ) ;
228234 if ( username ) {
229235 const normalized = username . trim ( ) . toLowerCase ( ) ;
@@ -285,7 +291,7 @@ export async function GET(request: NextRequest) {
285291 // Keep Lightning Address restorable after seed imports by self-healing
286292 // stale/missing LNbits wallet or paylink metadata in background.
287293 try {
288- await ensureLightningAddressBackend ( walletId , wallet . ln_username , {
294+ await ensureLightningAddressBackend ( supabase , walletId , wallet . ln_username , {
289295 ln_wallet_adminkey : ( wallet as any ) . ln_wallet_adminkey ?? null ,
290296 ln_paylink_id : ( wallet as any ) . ln_paylink_id ?? null ,
291297 } ) ;
0 commit comments