website refactor
This commit is contained in:
@@ -16,6 +16,8 @@ import { WalletsApiClient } from './wallets/WalletsApiClient';
|
||||
import { ErrorReporter } from '../interfaces/ErrorReporter';
|
||||
import { Logger } from '../interfaces/Logger';
|
||||
|
||||
import { ConsoleLogger } from '../infrastructure/logging/ConsoleLogger';
|
||||
|
||||
export class ApiClient {
|
||||
public readonly admin: AdminApiClient;
|
||||
public readonly analytics: AnalyticsApiClient;
|
||||
@@ -35,7 +37,7 @@ export class ApiClient {
|
||||
|
||||
constructor(baseUrl: string) {
|
||||
// Default implementations for logger and error reporter if needed
|
||||
const logger: Logger = console;
|
||||
const logger: Logger = new ConsoleLogger();
|
||||
const errorReporter: ErrorReporter = { report: (error) => console.error(error) };
|
||||
|
||||
this.admin = new AdminApiClient(baseUrl, errorReporter, logger);
|
||||
|
||||
@@ -227,8 +227,13 @@ export function handleAuthFlow(
|
||||
|
||||
case AuthActionType.SHOW_PERMISSION_ERROR:
|
||||
// Redirect to user's home page instead of login (they're already logged in)
|
||||
const isAdmin = session?.role === 'admin' ||
|
||||
session?.role === 'league-admin' ||
|
||||
session?.role === 'system-owner' ||
|
||||
session?.role === 'super-admin';
|
||||
|
||||
const homeUrl = session?.role === 'sponsor' ? routes.sponsor.dashboard :
|
||||
session?.role === 'admin' ? routes.admin.root :
|
||||
isAdmin ? routes.admin.root :
|
||||
routes.protected.dashboard;
|
||||
logger.info('[handleAuthFlow] Returning SHOW_PERMISSION_ERROR, redirecting to home', { homeUrl, userRole: session?.role });
|
||||
return { shouldRedirect: true, redirectUrl: homeUrl };
|
||||
|
||||
@@ -36,6 +36,7 @@ export class ConsoleLogger implements Logger {
|
||||
const color = this.COLORS[level];
|
||||
const emoji = this.EMOJIS[level];
|
||||
const prefix = this.PREFIXES[level];
|
||||
const timestamp = new Date().toISOString();
|
||||
|
||||
// Edge runtime doesn't support console.groupCollapsed/groupEnd
|
||||
// Fallback to simple logging for compatibility
|
||||
@@ -44,13 +45,13 @@ export class ConsoleLogger implements Logger {
|
||||
if (supportsGrouping) {
|
||||
// Safe to call - we've verified both functions exist
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
(console as any).groupCollapsed(`%c${emoji} [${source.toUpperCase()}] ${prefix}: ${message}`, `color: ${color}; font-weight: bold;`);
|
||||
(console as any).groupCollapsed(`%c${emoji} [${timestamp}] [${source.toUpperCase()}] ${prefix}: ${message}`, `color: ${color}; font-weight: bold;`);
|
||||
} else {
|
||||
// Simple format for edge runtime
|
||||
console.log(`${emoji} [${source.toUpperCase()}] ${prefix}: ${message}`);
|
||||
console.log(`${emoji} [${timestamp}] [${source.toUpperCase()}] ${prefix}: ${message}`);
|
||||
}
|
||||
|
||||
console.log(`%cTimestamp:`, 'color: #666; font-weight: bold;', new Date().toISOString());
|
||||
console.log(`%cTimestamp:`, 'color: #666; font-weight: bold;', timestamp);
|
||||
console.log(`%cSource:`, 'color: #666; font-weight: bold;', source);
|
||||
|
||||
if (context) {
|
||||
|
||||
@@ -366,7 +366,7 @@ export function buildPath(
|
||||
let route: any = routes;
|
||||
|
||||
for (const part of parts) {
|
||||
route = route[part];
|
||||
route = (route as Record<string, any>)[part];
|
||||
if (!route) {
|
||||
throw new Error(`Unknown route: ${routeName}`);
|
||||
}
|
||||
|
||||
@@ -132,12 +132,12 @@ export class LeagueService implements Service {
|
||||
}
|
||||
}
|
||||
|
||||
async getAllLeagues(): Promise<any> {
|
||||
async getAllLeagues(): Promise<Result<AllLeaguesWithCapacityAndScoringDTO, DomainError>> {
|
||||
try {
|
||||
const dto = await this.apiClient.getAllWithCapacityAndScoring();
|
||||
return (dto as any).value || dto;
|
||||
return Result.ok(dto);
|
||||
} catch (error: unknown) {
|
||||
throw error;
|
||||
return Result.err({ type: 'serverError', message: (error as Error).message || 'Failed to fetch leagues' });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user