88 lines
2.2 KiB
JavaScript
88 lines
2.2 KiB
JavaScript
|
|
// src/services/tokenRegistryAPI.js
|
||
|
|
import axios from 'axios';
|
||
|
|
import { getToken } from '../../utils/tokenService.js';
|
||
|
|
|
||
|
|
// Create axios instance with base configuration
|
||
|
|
const apiClient = axios.create({
|
||
|
|
baseURL: process.env.REACT_APP_API_URL || 'http://157.66.191.31:33730/back/',
|
||
|
|
});
|
||
|
|
|
||
|
|
// Add request interceptor to inject token
|
||
|
|
apiClient.interceptors.request.use((config) => {
|
||
|
|
const token = getToken();
|
||
|
|
if (token) {
|
||
|
|
config.headers.Authorization = `Bearer ${token}`;
|
||
|
|
}
|
||
|
|
return config;
|
||
|
|
}, (error) => {
|
||
|
|
return Promise.reject(error);
|
||
|
|
});
|
||
|
|
|
||
|
|
// Response interceptor for error handling
|
||
|
|
apiClient.interceptors.response.use(
|
||
|
|
(response) => response.data,
|
||
|
|
(error) => {
|
||
|
|
if (error.response) {
|
||
|
|
// Handle specific status codes
|
||
|
|
if (error.response.status === 401) {
|
||
|
|
// Handle unauthorized (token expired)
|
||
|
|
console.error('Authentication failed');
|
||
|
|
}
|
||
|
|
throw new Error(error.response.data.message || 'Request failed');
|
||
|
|
}
|
||
|
|
throw new Error(error.message || 'Network error');
|
||
|
|
}
|
||
|
|
);
|
||
|
|
|
||
|
|
export const fetchAllTokens = async () => {
|
||
|
|
try {
|
||
|
|
return await apiClient.get('apiregistery/getall');
|
||
|
|
} catch (error) {
|
||
|
|
console.error('Fetch tokens error:', error);
|
||
|
|
throw error;
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
export const generateToken = async (token_name) => {
|
||
|
|
try {
|
||
|
|
return await apiClient.post(
|
||
|
|
'apiregistery/generateToken',
|
||
|
|
new URLSearchParams({ token_name }),
|
||
|
|
{
|
||
|
|
headers: {
|
||
|
|
'Content-Type': 'application/x-www-form-urlencoded'
|
||
|
|
}
|
||
|
|
}
|
||
|
|
);
|
||
|
|
} catch (error) {
|
||
|
|
console.error('Generate token error:', error);
|
||
|
|
throw error;
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
export const createToken = async (tokenData) => {
|
||
|
|
try {
|
||
|
|
return await apiClient.post('apiregistery/create', tokenData);
|
||
|
|
} catch (error) {
|
||
|
|
console.error('Create token error:', error);
|
||
|
|
throw error;
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
export const updateToken = async (id, tokenData) => {
|
||
|
|
try {
|
||
|
|
return await apiClient.put(`apiregistery/update/${id}`, tokenData);
|
||
|
|
} catch (error) {
|
||
|
|
console.error('Update token error:', error);
|
||
|
|
throw error;
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
export const deleteToken = async (id) => {
|
||
|
|
try {
|
||
|
|
return await apiClient.delete(`apiregistery/delete/${id}`);
|
||
|
|
} catch (error) {
|
||
|
|
console.error('Delete token error:', error);
|
||
|
|
throw error;
|
||
|
|
}
|
||
|
|
};
|