Commit fd07ddda authored by RafaUC's avatar RafaUC
Browse files

actualizada api y agregados los endpoints de usuarios

parent d3c1b2e1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ from .views import CustomTokenObtainPairView, CustomTokenRefreshView

app_name = 'users'
urlpatterns = [  
    path('token/', CustomTokenObtainPairView.as_view(), name='token_obtain_pair'),
    path('token/', CustomTokenObtainPairView.as_view(), name='token_obtain'),
    path('token/refresh/', CustomTokenRefreshView.as_view(), name='token_refresh'),

    path('usuarios/', views.usuario.as_view(), name = 'usuario-lista-crear'), 
+17 −10
Original line number Diff line number Diff line
@@ -5,12 +5,12 @@ const apiUrl = "http://localhost:8000";


// Configuración de Axios
const api = axios.create({
const ax = axios.create({
  baseURL: apiUrl,  
});

// Interceptor de solicitud
api.interceptors.request.use(
ax.interceptors.request.use(
  (config) => {
    // Aquí puedes manipular la configuración de la solicitud antes de enviarla al servidor
    console.log('Solicitud enviada:', config);
@@ -26,7 +26,7 @@ api.interceptors.request.use(
);

// Interceptor de respuesta
api.interceptors.response.use(
ax.interceptors.response.use(
  (response) => {
    // Aquí puedes manipular la respuesta antes de pasarla al código que la llamó
    console.log('Respuesta recibida:', response);
@@ -40,16 +40,23 @@ api.interceptors.response.use(
);

//Endpoints predefinidos para acceder a la pagina
const apiEndpoints = {
const api = {
  //Obtener la instancia de axios
  axios: ax, 
  //Enpoints del modulo Usuario
  usuarios: {
    get: () => api.get('/usuarios'),
    post: (data) => api.post('/usuarios', data),
    getById: (id) => api.get(`/usuarios/${id}`),
    update: (id, data) => api.put(`/usuarios/${id}`, data),
    delete: (id) => api.delete(`/usuarios/${id}`),
    get: () => ax.get('/usuarios'),
    post: (data) => ax.post('/usuarios', data),
    getById: (id) => ax.get(`/usuarios/${id}`),
    update: (id, data) => ax.put(`/usuarios/${id}`, data),
    delete: (id) => ax.delete(`/usuarios/${id}`),
    token: {
      login: (data) => ax.post('api/usuarios/token/',data),
      refresh: () => ax.post('api/usuarios/token/refresh/'),
    },
  },
  
};

// Exportar los endpoints de la API
export default apiEndpoints;
 No newline at end of file
export default api;
 No newline at end of file
+5 −5
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ export const Autenticador = ({ children }) => {
    const buscarUsuario = async () => {
      console.log('setear session')
      try {        
        const response = await api.post('api/usuarios/token/refresh/');
        const response = await api.token.refresh();
        setToken(response.data.access);
      } catch {
        setToken(null);
@@ -41,7 +41,7 @@ export const Autenticador = ({ children }) => {
  }, []);

  useLayoutEffect(() => {
    const interceptadorAccess = api.interceptors.request.use((config) => {
    const interceptadorAccess = api.axios.interceptors.request.use((config) => {
      console.log(`insertar token en request: ${token}`)
      config.headers.Authorization = !config.__retry && token ? `Bearer ${token}` : config.headers.Authorization;
      return config;
@@ -54,14 +54,14 @@ export const Autenticador = ({ children }) => {
  }, [token]);

  useLayoutEffect(() => {
    const interceptadorRefresh = api.interceptors.response.use(
    const interceptadorRefresh = api.axios.interceptors.response.use(
      (response) => response, async (error) => {
        const requestOriginal = error.config;

        console.log('error en la response');
        if (error.response.status === 403 && error.response.data.message === 'Unauthorized') {
          try {
            const response = await api.post('api/usuarios/token/refresh/');
            const response = await api.usuarios.token.refresh();
            setToken(response.data.access);
            requestOriginal.headers.Authorization = `Bearer ${response.data.access}`;
            requestOriginal.__retry = true;
@@ -77,7 +77,7 @@ export const Autenticador = ({ children }) => {
    );

    return () => {
      api.interceptors.response.eject(interceptadorRefresh);
      api.axios.interceptors.response.eject(interceptadorRefresh);
    };
  });
  return (