diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 135e762..2bc8017 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -27,8 +27,6 @@ jobs: - run: npm ci - run: npm run build - env: - VITE_CORS_PROXY_URL: ${{ vars.VITE_CORS_PROXY_URL }} - run: cp dist/index.html dist/404.html - uses: actions/upload-pages-artifact@v3 diff --git a/env.d.ts b/env.d.ts index f4de909..084d059 100644 --- a/env.d.ts +++ b/env.d.ts @@ -1,7 +1,7 @@ /// interface ImportMetaEnv { - readonly VITE_CORS_PROXY_URL?: string; + // no custom env vars needed — production uses corsproxy.io } declare module '*.vue' { diff --git a/src/http-common.ts b/src/http-common.ts index 03dbf71..e0f0d0b 100644 --- a/src/http-common.ts +++ b/src/http-common.ts @@ -1,14 +1,31 @@ import axios from 'axios'; -// Public API client — proxied through Vite in dev, Cloudflare Worker in prod. +const TARGET_BASE = 'https://www.reservauto.net'; + +// Public API client — proxied through Vite in dev, corsproxy.io in prod. const apiClient = axios.create({ - baseURL: import.meta.env.DEV ? '/api' : (import.meta.env.VITE_CORS_PROXY_URL || 'https://communauto-cors-proxy..workers.dev'), + baseURL: import.meta.env.DEV ? '/api' : TARGET_BASE, headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, }); +if (!import.meta.env.DEV) { + apiClient.interceptors.request.use((config) => { + const targetUrl = new URL(config.url!, TARGET_BASE); + if (config.params) { + for (const [k, v] of Object.entries(config.params as Record)) { + if (v !== undefined && v !== null) targetUrl.searchParams.set(k, String(v)); + } + config.params = undefined; + } + config.baseURL = ''; + config.url = `https://corsproxy.io/?url=${encodeURIComponent(targetUrl.toString())}`; + return config; + }); +} + // Authenticated REST API client — direct to restapifrontoffice const restApi = axios.create({ baseURL: 'https://restapifrontoffice.reservauto.net',