Merge pull request #36 from rede5/codex/fix-errors-in-background.js
Gate marketplace logs behind logger utility
This commit is contained in:
commit
6719ec6298
4 changed files with 46 additions and 18 deletions
|
|
@ -2,6 +2,7 @@ import { FormEvent, useState } from 'react'
|
|||
import axios from 'axios'
|
||||
import { useAuth, UserRole } from '../context/AuthContext'
|
||||
import { authService } from '../services/auth'
|
||||
import { logger } from '../utils/logger'
|
||||
import { decodeJwtPayload } from '../utils/jwt'
|
||||
|
||||
// Eye icon components for password visibility toggle
|
||||
|
|
@ -27,7 +28,7 @@ export function LoginPage() {
|
|||
const [loading, setLoading] = useState(false)
|
||||
|
||||
const resolveRole = (role?: string): UserRole => {
|
||||
console.log('🔐 [Login] Resolving role:', role)
|
||||
logger.info('🔐 [Login] Resolving role:', role)
|
||||
switch (role?.toLowerCase()) {
|
||||
case 'admin':
|
||||
return 'admin'
|
||||
|
|
@ -42,7 +43,7 @@ export function LoginPage() {
|
|||
case 'seller': // keep legacy
|
||||
default:
|
||||
// Default to seller/owner or log warning?
|
||||
console.warn('⚠️ [Login] Unknown role, defaulting to seller:', role)
|
||||
logger.warn('⚠️ [Login] Unknown role, defaulting to seller:', role)
|
||||
return 'seller'
|
||||
}
|
||||
}
|
||||
|
|
@ -52,37 +53,37 @@ export function LoginPage() {
|
|||
setLoading(true)
|
||||
setErrorMessage(null)
|
||||
|
||||
console.log('🔐 [Login] Attempting login with username:', username)
|
||||
logger.info('🔐 [Login] Attempting login with username:', username)
|
||||
|
||||
try {
|
||||
console.log('🔐 [Login] Calling authService.login...')
|
||||
logger.info('🔐 [Login] Calling authService.login...')
|
||||
const response = await authService.login({ username, password })
|
||||
console.log('🔐 [Login] Response received:', response)
|
||||
logger.info('🔐 [Login] Response received:', response)
|
||||
|
||||
const { token } = response
|
||||
console.log('🔐 [Login] Token extracted:', token ? `${token.substring(0, 50)}...` : 'NULL/UNDEFINED')
|
||||
logger.debug('🔐 [Login] Token extracted:', token ? `${token.substring(0, 50)}...` : 'NULL/UNDEFINED')
|
||||
|
||||
if (!token) {
|
||||
console.error('🔐 [Login] ERROR: Token is null or undefined!')
|
||||
logger.error('🔐 [Login] ERROR: Token is null or undefined!')
|
||||
throw new Error('Resposta de login inválida. Verifique o usuário e a senha.')
|
||||
}
|
||||
|
||||
const payload = decodeJwtPayload<{ role?: string, sub: string }>(token)
|
||||
console.log('🔐 [Login] JWT payload decoded:', payload)
|
||||
logger.debug('🔐 [Login] JWT payload decoded:', payload)
|
||||
|
||||
const role = resolveRole(payload?.role)
|
||||
console.log('🔐 [Login] Role resolved:', role)
|
||||
logger.info('🔐 [Login] Role resolved:', role)
|
||||
|
||||
login(token, role, username, payload?.sub || '', undefined, username)
|
||||
console.log('🔐 [Login] Login successful!')
|
||||
logger.info('🔐 [Login] Login successful!')
|
||||
} catch (error) {
|
||||
console.error('🔐 [Login] ERROR caught:', error)
|
||||
logger.error('🔐 [Login] ERROR caught:', error)
|
||||
const fallback = 'Não foi possível autenticar. Verifique suas credenciais.'
|
||||
if (axios.isAxiosError(error)) {
|
||||
console.error('🔐 [Login] Axios error response:', error.response?.data)
|
||||
logger.error('🔐 [Login] Axios error response:', error.response?.data)
|
||||
setErrorMessage(error.response?.data?.error ?? fallback)
|
||||
} else if (error instanceof Error) {
|
||||
console.error('🔐 [Login] Error message:', error.message)
|
||||
logger.error('🔐 [Login] Error message:', error.message)
|
||||
setErrorMessage(error.message)
|
||||
} else {
|
||||
setErrorMessage(fallback)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
import axios from 'axios'
|
||||
import { logger } from '../utils/logger'
|
||||
|
||||
// Use VITE_API_URL if set, fallback to /api for local development proxy
|
||||
const apiBaseUrl = import.meta.env.VITE_API_URL || '/api'
|
||||
console.log('🔗 [apiClient] Using API base URL:', apiBaseUrl)
|
||||
logger.info('🔗 [apiClient] Using API base URL:', apiBaseUrl)
|
||||
|
||||
const instance = axios.create({
|
||||
baseURL: apiBaseUrl,
|
||||
|
|
@ -22,7 +23,7 @@ instance.interceptors.response.use(
|
|||
(response) => response,
|
||||
(error) => {
|
||||
if (error.response?.status === 401) {
|
||||
console.warn('Sessão expirada, por favor, faça login novamente.')
|
||||
logger.warn('Sessão expirada, por favor, faça login novamente.')
|
||||
}
|
||||
return Promise.reject(error)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { apiClient } from './apiClient'
|
||||
import { logger } from '../utils/logger'
|
||||
|
||||
interface AuthResponse {
|
||||
token: string
|
||||
|
|
@ -12,13 +13,12 @@ export interface AuthLoginPayload {
|
|||
|
||||
export const authService = {
|
||||
login: async (payload: AuthLoginPayload) => {
|
||||
console.log('🔐 [authService] Making request to /v1/auth/login with:', payload)
|
||||
logger.info('🔐 [authService] Making request to /v1/auth/login with:', payload)
|
||||
const data = await apiClient.post<AuthResponse>('/v1/auth/login', payload)
|
||||
console.log('🔐 [authService] Response data:', data)
|
||||
logger.info('🔐 [authService] Response data:', data)
|
||||
return { token: data.token, expiresAt: data.expires_at }
|
||||
},
|
||||
logout: async () => {
|
||||
await apiClient.post('/v1/auth/logout')
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
26
marketplace/src/utils/logger.ts
Normal file
26
marketplace/src/utils/logger.ts
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
const shouldLog = import.meta.env.DEV || import.meta.env.VITE_ENABLE_LOGS === 'true'
|
||||
|
||||
type LogArgs = Parameters<typeof console.log>
|
||||
|
||||
export const logger = {
|
||||
debug: (...args: LogArgs) => {
|
||||
if (shouldLog) {
|
||||
console.debug(...args)
|
||||
}
|
||||
},
|
||||
info: (...args: LogArgs) => {
|
||||
if (shouldLog) {
|
||||
console.info(...args)
|
||||
}
|
||||
},
|
||||
warn: (...args: LogArgs) => {
|
||||
if (shouldLog) {
|
||||
console.warn(...args)
|
||||
}
|
||||
},
|
||||
error: (...args: LogArgs) => {
|
||||
if (shouldLog) {
|
||||
console.error(...args)
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue