dlbGatekeeper/frontend/src/api.ts

46 lines
1.3 KiB
TypeScript

import axios from 'axios';
import { GateEvent, Settings } from './types';
// In development, Vite will proxy /api requests to the backend
const API_URL = '/api';
export const triggerGate = async (direction: 'open' | 'close'): Promise<boolean> => {
try {
const response = await axios.post(`${API_URL}/trigger`, { direction });
return response.data.success;
} catch (error) {
console.error('Error triggering gate:', error);
return false;
}
};
export const getRecentEvents = async (): Promise<GateEvent[]> => {
try {
const response = await axios.get(`${API_URL}/events`);
return response.data;
} catch (error) {
console.error('Error fetching events:', error);
return [];
}
};
export const getSettings = async (): Promise<Settings | null> => {
try {
const response = await axios.get(`${API_URL}/settings`);
return response.data;
} catch (error) {
console.error('Error fetching settings:', error);
return null;
}
};
export const updateSettings = async (settings: Partial<Settings>): Promise<boolean> => {
try {
const response = await axios.post(`${API_URL}/settings`, settings);
return response.data.success;
} catch (error) {
console.error('Error updating settings:', error);
return false;
}
};