46 lines
1.3 KiB
TypeScript
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;
|
|
}
|
|
};
|