8bf92e6598
- Add mock data module with simulated camera search and stream discovery - Enable mock mode via ?mock=true URL parameter - Show MOCK MODE indicator when enabled - Remove statistics cards from discovery screen, keep only progress bar - Mock mode works independently from Go backend for easier UI testing
36 lines
1018 B
JavaScript
36 lines
1018 B
JavaScript
import { MockCameraSearch } from '../mock/mock-data.js';
|
|
|
|
export class CameraSearchAPI {
|
|
constructor(baseURL = null, useMock = false) {
|
|
// Use relative URLs since API and UI are on the same port
|
|
if (!baseURL) {
|
|
this.baseURL = '';
|
|
} else {
|
|
this.baseURL = baseURL;
|
|
}
|
|
this.useMock = useMock;
|
|
this.mockAPI = useMock ? new MockCameraSearch() : null;
|
|
}
|
|
|
|
async search(query, limit = 10) {
|
|
// Use mock API if enabled
|
|
if (this.useMock) {
|
|
return await this.mockAPI.search(query, limit);
|
|
}
|
|
|
|
const response = await fetch(`${this.baseURL}api/v1/cameras/search`, {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
body: JSON.stringify({ query, limit }),
|
|
});
|
|
|
|
if (!response.ok) {
|
|
throw new Error(`HTTP error! status: ${response.status}`);
|
|
}
|
|
|
|
return await response.json();
|
|
}
|
|
}
|