debug-test.tsā¢3.14 kB
#!/usr/bin/env node
import { OuraClient } from '../src/oura-client.js';
import dotenv from 'dotenv';
// Load environment variables
dotenv.config();
async function debugTest() {
console.log('š Debug Testing Oura Ring API (Raw Responses)...\n');
// Check if access token is available
const accessToken = process.env.OURA_ACCESS_TOKEN;
if (!accessToken) {
console.error('ā OURA_ACCESS_TOKEN environment variable is required');
console.log('š Please create a .env file with:');
console.log('OURA_ACCESS_TOKEN=your_personal_access_token_here');
console.log('\nGet your token from: https://cloud.ouraring.com/personal-access-tokens');
process.exit(1);
}
console.log('ā
Access token found');
try {
// Initialize Oura client without validation
const ouraClient = new OuraClient({
accessToken,
clientId: process.env.OURA_CLIENT_ID,
clientSecret: process.env.OURA_CLIENT_SECRET,
});
console.log('š Oura client initialized\n');
// Test 1: Get raw personal info response
console.log('š¤ Getting raw Personal Info response...');
try {
const response = await (ouraClient as any).client.get('/v2/usercollection/personal_info');
console.log('ā
Raw personal info response:');
console.log(JSON.stringify(response.data, null, 2));
} catch (error) {
console.log('ā Personal info failed:', (error as Error).message);
}
// Test 2: Get raw sleep data response
console.log('\nš“ Getting raw Sleep Data response (last 2 days)...');
try {
const endDate = new Date().toISOString().split('T')[0];
const startDate = new Date(Date.now() - 2 * 24 * 60 * 60 * 1000).toISOString().split('T')[0];
const response = await (ouraClient as any).client.get(`/v2/usercollection/daily_sleep?start_date=${startDate}&end_date=${endDate}`);
console.log('ā
Raw sleep data response:');
console.log(JSON.stringify(response.data, null, 2));
} catch (error) {
console.log('ā Sleep data failed:', (error as Error).message);
}
// Test 3: Get raw activity data response
console.log('\nš Getting raw Activity Data response (last 1 day)...');
try {
const endDate = new Date().toISOString().split('T')[0];
const startDate = new Date(Date.now() - 1 * 24 * 60 * 60 * 1000).toISOString().split('T')[0];
const response = await (ouraClient as any).client.get(`/v2/usercollection/daily_activity?start_date=${startDate}&end_date=${endDate}`);
console.log('ā
Raw activity data response:');
console.log(JSON.stringify(response.data, null, 2));
} catch (error) {
console.log('ā Activity data failed:', (error as Error).message);
}
console.log('\nš Debug testing completed!');
console.log('\nš Use this raw data to adjust the Zod schemas if needed');
} catch (error) {
console.error('ā Debug test failed:', error);
process.exit(1);
}
}
if (import.meta.url === `file://${process.argv[1]}`) {
debugTest().catch((error) => {
console.error('Fatal error:', error);
process.exit(1);
});
}