42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
import axios from "axios";
|
|
|
|
const API_BASE_URL = "http://localhost:5000/api";
|
|
|
|
const api = axios.create({
|
|
baseURL: API_BASE_URL,
|
|
});
|
|
|
|
// Add token to requests
|
|
api.interceptors.request.use((config) => {
|
|
const token = localStorage.getItem("token");
|
|
if (token) {
|
|
config.headers.Authorization = `Bearer ${token}`;
|
|
}
|
|
return config;
|
|
});
|
|
|
|
export const authAPI = {
|
|
login: (credentials) => api.post("/auth/login", credentials),
|
|
getMe: () => api.get("/auth/me"),
|
|
};
|
|
|
|
export const usersAPI = {
|
|
getUsers: () => api.get("/users"),
|
|
createUser: (user) => api.post("/users", user),
|
|
updatePassword: (id, password) =>
|
|
api.put(`/users/${id}/password`, { password }),
|
|
deleteUser: (id) => api.delete(`/users/${id}`),
|
|
};
|
|
|
|
export const timeEntriesAPI = {
|
|
getEntries: () => api.get("/time-entries"),
|
|
getAllEntries: () => api.get("/time-entries/all"),
|
|
getUserEntries: (userId) => api.get(`/time-entries/user/${userId}`),
|
|
createEntry: (entry) => api.post("/time-entries", entry),
|
|
updateEntry: (id, entry) => api.put(`/time-entries/${id}`, entry),
|
|
deleteEntry: (id) => api.delete(`/time-entries/${id}`),
|
|
deleteAllEntries: () => api.delete("/time-entries/delete-all"),
|
|
};
|
|
|
|
export default api;
|