import { inject } from '@angular/core'; import { AdminAuthService } from './admin-auth.service'; /** Backend paths that require an active AdminWebSessionID. Adjust to match your API surface if consuming this outside marketplaces. */ const ADMIN_GATED_PATH_SEGMENTS = ['/admin/', '/backoffice/', '/builder/', '/media/']; /** * Attaches admin session/token headers only to admin API requests. Scoped to * admin-gated paths so it never touches customer requests and never reads * the customer AuthService's session. */ export const adminAuthHeadersInterceptor = (req, next) => { const isAdminRequest = ADMIN_GATED_PATH_SEGMENTS.some(segment => req.url.includes(segment)); if (!isAdminRequest) { return next(req); } const adminAuth = inject(AdminAuthService); const session = adminAuth.session(); const token = adminAuth.getAdminToken(); let headers = req.headers; if (session?.sessionId) { headers = headers.set('AdminWebSessionID', session.sessionId); } if (token) { headers = headers.set('Authorization', `Bearer ${token}`); } return next(req.clone({ headers })); };