Files
wolfDash/verify_api.js
sebseb7 1b56e2cc42 u
2025-12-23 06:46:12 +01:00

109 lines
3.6 KiB
JavaScript

import http from 'http';
const OPTIONS = {
hostname: '127.0.0.1',
port: 3905,
path: '/api/history?devName=Test&port=1&range=day',
method: 'GET'
};
const req = http.request(OPTIONS, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log('Status Code:', res.statusCode);
try {
const json = JSON.parse(data);
console.log('Response Keys:', Object.keys(json));
if (json.start !== undefined && Array.isArray(json.temps)) {
console.log('SUCCESS: API returned compressed structure.');
console.log('Step Size:', json.step);
console.log('Temps Length:', json.temps.length);
} else {
console.log('FAILURE: API returned unexpected structure.', json);
}
} catch (e) {
console.error('Failed to parse JSON:', e);
console.log('Raw Data:', data);
}
});
});
req.on('error', (e) => {
console.error('Request error (server might not be running):', e.message);
});
req.end();
const OUTPUT_OPTIONS = {
hostname: '127.0.0.1',
port: 3905,
path: '/api/outputs/history?range=day',
method: 'GET'
};
const reqOut = http.request(OUTPUT_OPTIONS, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => {
console.log('Output History Status Code:', res.statusCode);
try {
const json = JSON.parse(data);
const keys = Object.keys(json);
console.log('Output Keys:', keys);
if (keys.length > 0) {
const firstKey = keys[0];
const entries = json[firstKey];
if (Array.isArray(entries) && entries.length > 0 && Array.isArray(entries[0])) {
console.log('SUCCESS: Output API returned compressed dictionary.');
console.log('Sample Entry:', entries[0]);
console.log(`Entries count for ${firstKey}: ${entries.length}`);
} else {
console.log('FAILURE: Output API format incorrect.', entries[0]);
}
} else {
console.log('WARNING: Output API returned empty object (no history).');
}
} catch (e) {
console.error('Failed to parse Output JSON:', e);
}
});
});
reqOut.on('error', (e) => {
console.error('Output Request error:', e.message);
});
reqOut.end();
// Test offset
const OFFSET_OPTIONS = {
hostname: '127.0.0.1',
port: 3905,
path: '/api/history?devName=Tent&port=1&range=day&offset=1',
method: 'GET'
};
const reqOffset = http.request(OFFSET_OPTIONS, (res) => {
let data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end', () => {
console.log('Offset History Status Code:', res.statusCode);
try {
const json = JSON.parse(data);
if (json.start && json.start > 0) {
const startDate = new Date(json.start * 1000);
console.log(`Offset 1 Start Time: ${json.start} (${startDate.toISOString()})`);
// Check if it's roughly 48h ago (since offset 1 day means window start is -48h)
// vs offset 0 start is -24h.
const now = Date.now() / 1000;
const hoursDiff = (now - json.start) / 3600;
console.log(`Hours difference from now: ${hoursDiff.toFixed(1)}h (Should be ~48h)`);
}
} catch (e) { console.error(e); }
});
});
reqOffset.end();