diff --git a/frontend/src/renderer/utils/api.js b/frontend/src/renderer/utils/api.js new file mode 100644 index 0000000..858b10e --- /dev/null +++ b/frontend/src/renderer/utils/api.js @@ -0,0 +1,41 @@ +const API_BASE = process.env.REACT_APP_API_URL || ''; + +const getHeaders = () => { + const token = localStorage.getItem('token'); + return { 'Authorization': token ? `Bearer ${token}` : '' }; +}; + +export const api = { + get: async (url) => { + const res = await fetch(`${API_BASE}${url}`, { headers: getHeaders() }); + return res.json(); + }, + post: async (url, data) => { + const res = await fetch(`${API_BASE}${url}`, { + method: 'POST', + headers: { 'Content-Type': 'application/json', ...getHeaders() }, + body: JSON.stringify(data) + }); + return res.json(); + }, + put: async (url, data) => { + const res = await fetch(`${API_BASE}${url}`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json', ...getHeaders() }, + body: JSON.stringify(data) + }); + return res.json(); + }, + delete: async (url) => { + const res = await fetch(`${API_BASE}${url}`, { method: 'DELETE', headers: getHeaders() }); + return res.json(); + }, + upload: async (url, file) => { + const formData = new FormData(); + formData.append('file', file); + const res = await fetch(`${API_BASE}${url}`, { method: 'POST', headers: getHeaders(), body: formData }); + return res.json(); + } +}; + +export default api;