mirror of
https://github.com/marcogll/AnchorOS.git
synced 2026-03-15 13:24:27 +00:00
feat: Add kiosk setup and API testing scripts, alongside database function fixes for API key generation and short IDs.
This commit is contained in:
73
scripts/setup-kiosk.js
Normal file
73
scripts/setup-kiosk.js
Normal file
@@ -0,0 +1,73 @@
|
||||
require('dotenv').config({ path: '.env.local' });
|
||||
const { createClient } = require('@supabase/supabase-js');
|
||||
|
||||
const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL;
|
||||
const supabaseServiceKey = process.env.SUPABASE_SERVICE_ROLE_KEY;
|
||||
|
||||
if (!supabaseUrl || !supabaseServiceKey) {
|
||||
console.error('Missing SUPABASE_URL or SUPABASE_SERVICE_ROLE_KEY');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const supabase = createClient(supabaseUrl, supabaseServiceKey);
|
||||
|
||||
async function setupKiosk() {
|
||||
console.log('Setting up Kiosk...');
|
||||
|
||||
// 1. Get a location
|
||||
const { data: locations, error: locError } = await supabase
|
||||
.from('locations')
|
||||
.select('id, name')
|
||||
.limit(1);
|
||||
|
||||
if (locError || !locations || locations.length === 0) {
|
||||
console.error('Error fetching locations or no locations found:', locError);
|
||||
return;
|
||||
}
|
||||
|
||||
const location = locations[0];
|
||||
console.log(`Using location: ${location.name} (${location.id})`);
|
||||
|
||||
// 2. Check if kiosk exists
|
||||
const { data: existingKiosks, error: kioskError } = await supabase
|
||||
.from('kiosks')
|
||||
.select('id, api_key')
|
||||
.eq('location_id', location.id)
|
||||
.eq('device_name', 'TEST_KIOSK_DEVICE');
|
||||
|
||||
if (existingKiosks && existingKiosks.length > 0) {
|
||||
console.log('Test Kiosk already exists.');
|
||||
console.log('API_KEY=' + existingKiosks[0].api_key);
|
||||
return existingKiosks[0].api_key;
|
||||
}
|
||||
|
||||
// 3. Create Kiosk (Direct Insert to bypass broken SQL function)
|
||||
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
||||
let apiKey = '';
|
||||
for (let i = 0; i < 64; i++) {
|
||||
apiKey += chars.charAt(Math.floor(Math.random() * chars.length));
|
||||
}
|
||||
|
||||
const { data: newKiosk, error: createError } = await supabase
|
||||
.from('kiosks')
|
||||
.insert({
|
||||
location_id: location.id,
|
||||
device_name: 'TEST_KIOSK_DEVICE',
|
||||
display_name: 'Test Kiosk Display',
|
||||
api_key: apiKey,
|
||||
ip_address: '127.0.0.1'
|
||||
})
|
||||
.select()
|
||||
.single();
|
||||
|
||||
if (createError) {
|
||||
console.error('Error creating kiosk:', createError);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('Kiosk created successfully!');
|
||||
console.log('API_KEY=' + newKiosk.api_key);
|
||||
return newKiosk.api_key;
|
||||
}
|
||||
|
||||
setupKiosk();
|
||||
Reference in New Issue
Block a user