diff --git a/frontend/app/components/partials/EditUserPartial.vue b/frontend/app/components/partials/EditUserPartial.vue index d8d7da5..3661abf 100644 --- a/frontend/app/components/partials/EditUserPartial.vue +++ b/frontend/app/components/partials/EditUserPartial.vue @@ -2,10 +2,9 @@ import { onMounted, ref } from 'vue'; import { GetUser, LogoutUser } from '@/services/User' -import Server from '@/services/Server' +import Server, { getBaseUrl } from '@/services/Server' import { CreateWindow, CreateChildWindow, ClearWindow, GetFirstWindowId } from '../../services/Windows'; -import { backendUrl } from '../../services/BackendURL'; import Spinner from './Spinner.vue'; const loadedIcon = ref(false); @@ -21,7 +20,7 @@ function retrieveAvatar(){ Server().get('/user/retrieve-avatar?username=' + GetUser().username) .then((response) => { if(response.data.image){ - const imgUrl = backendUrl + "/public/" + response.data.image; + const imgUrl = getBaseUrl() + "/public/" + response.data.image; // Wait for the image to fully load const img = new Image(); diff --git a/frontend/app/plugins/api.ts b/frontend/app/plugins/api.ts new file mode 100644 index 0000000..1a7278a --- /dev/null +++ b/frontend/app/plugins/api.ts @@ -0,0 +1,6 @@ +import { initApi } from '../services/Server'; + +export default defineNuxtPlugin(() => { + const config = useRuntimeConfig(); + initApi(config.public.apiBaseUrl); +}); \ No newline at end of file diff --git a/frontend/app/services/BackendURL.js b/frontend/app/services/BackendURL.js deleted file mode 100644 index 9e84111..0000000 --- a/frontend/app/services/BackendURL.js +++ /dev/null @@ -1,5 +0,0 @@ -const backendUrl = import.meta.env.NUXT_PUBLIC_API_BASE_URL || 'http://localhost:5000/api' - -export { - backendUrl -}; \ No newline at end of file diff --git a/frontend/app/services/Server.js b/frontend/app/services/Server.js index 396b3c1..5f5b3e7 100644 --- a/frontend/app/services/Server.js +++ b/frontend/app/services/Server.js @@ -1,13 +1,16 @@ import axios from 'axios'; const server = axios.create({ - baseURL: import.meta.env.NUXT_PUBLIC_API_BASE_URL || 'http://localhost:5000/api', + baseURL: 'http://localhost:5000/api', // fallback only headers: { "Access-Control-Allow-Origin": "*", } }); -// Attach token dynamically on each request via interceptor +export const initApi = (baseURL: string) => { + server.defaults.baseURL = baseURL; +}; + server.interceptors.request.use((config) => { const token = localStorage.getItem('token'); if (token) { @@ -16,4 +19,6 @@ server.interceptors.request.use((config) => { return config; }); -export default () => server; \ No newline at end of file +export default () => server; + +export const getBaseUrl = () => server.defaults.baseURL; \ No newline at end of file