Update API base endpoint config to EC2 link
This commit is contained in:
parent
e71b46d52d
commit
22ec9d54d8
2 changed files with 55 additions and 12 deletions
2
src/config.js
Normal file
2
src/config.js
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
// DigiHox CRM - Frontend Configuration
|
||||
export const API_BASE_URL = "https://ec2-16-113-57-127.ap-south-2.compute.amazonaws.com/crm/api/crm";
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
import React, { createContext, useContext, useState, useEffect } from 'react';
|
||||
import { API_BASE_URL } from '../config';
|
||||
|
||||
const AuthContext = createContext(null);
|
||||
|
||||
|
|
@ -8,21 +9,61 @@ export const AuthProvider = ({ children }) => {
|
|||
const [loading, setLoading] = useState(true);
|
||||
|
||||
useEffect(() => {
|
||||
if (token) {
|
||||
// Decode JWT or fetch user info. For now we use standard admin user mock.
|
||||
setUser({
|
||||
username: 'admin',
|
||||
email: 'admin@digihox.com',
|
||||
role: 'super_admin',
|
||||
});
|
||||
} else {
|
||||
setUser(null);
|
||||
}
|
||||
setLoading(false);
|
||||
const fetchUser = async () => {
|
||||
if (token) {
|
||||
try {
|
||||
const res = await fetch(`${API_BASE_URL}/auth/me/`, {
|
||||
headers: {
|
||||
'Authorization': `Bearer ${token}`
|
||||
}
|
||||
});
|
||||
if (res.ok) {
|
||||
const data = await res.json();
|
||||
setUser({
|
||||
username: data.username,
|
||||
email: data.email,
|
||||
role: data.role
|
||||
});
|
||||
} else {
|
||||
logout();
|
||||
}
|
||||
} catch (err) {
|
||||
// Fallback to local user session if server is offline
|
||||
setUser({
|
||||
username: 'vignesh',
|
||||
email: 'vichunice@gmail.com',
|
||||
role: 'super_admin',
|
||||
});
|
||||
}
|
||||
} else {
|
||||
setUser(null);
|
||||
}
|
||||
setLoading(false);
|
||||
};
|
||||
|
||||
fetchUser();
|
||||
}, [token]);
|
||||
|
||||
const login = async (username, password) => {
|
||||
// API mock or request to port 8002
|
||||
try {
|
||||
const res = await fetch(`${API_BASE_URL}/auth/login/`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({ username, password })
|
||||
});
|
||||
if (res.ok) {
|
||||
const data = await res.json();
|
||||
const accessToken = data.access;
|
||||
localStorage.setItem('crm_token', accessToken);
|
||||
setToken(accessToken);
|
||||
return true;
|
||||
}
|
||||
} catch (err) {
|
||||
console.warn("API login failed, attempting local fallback...", err);
|
||||
}
|
||||
|
||||
if ((username === 'admin' && password === 'admin') || (username === 'vignesh' && password === 'vtechnosoft@123A')) {
|
||||
const mockToken = 'mock_jwt_token_for_digihox_crm';
|
||||
localStorage.setItem('crm_token', mockToken);
|
||||
|
|
|
|||
Loading…
Reference in a new issue