| import axios from "axios"; |
|
|
| const BASE = process.env.REACT_APP_BACKEND_URL; |
| export const API = axios.create({ |
| baseURL: `${BASE}/api`, |
| timeout: 30000, |
| }); |
|
|
| export async function fetchChallenge() { |
| const r = await API.post("/attendance/challenge"); |
| return r.data; |
| } |
|
|
| export async function verifyFace(payload) { |
| const r = await API.post("/face/verify", payload); |
| return r.data; |
| } |
|
|
| export async function recordAttendance(payload) { |
| const r = await API.post("/attendance", payload); |
| return r.data; |
| } |
|
|
| export async function registerEmployee(payload) { |
| const r = await API.post("/employees", payload); |
| return r.data; |
| } |
|
|
| export async function listEmployees() { |
| const r = await API.get("/employees"); |
| return r.data; |
| } |
|
|
| export async function deleteEmployee(id) { |
| const r = await API.delete(`/employees/${id}`); |
| return r.data; |
| } |
|
|
| export async function listAttendance(params = {}) { |
| const r = await API.get("/attendance", { params }); |
| return r.data; |
| } |
|
|
| export async function attendanceStats(date) { |
| const r = await API.get("/attendance/stats/summary", { params: date ? { date } : {} }); |
| return r.data; |
| } |
|
|
| export function exportCsvUrl(params = {}) { |
| const search = new URLSearchParams(params).toString(); |
| return `${BASE}/api/attendance/export/csv${search ? "?" + search : ""}`; |
| } |
|
|
| export async function health() { |
| const r = await API.get("/health"); |
| return r.data; |
| } |
|
|