Add new vue-based frontend

This commit is contained in:
2025-07-05 16:00:29 +02:00
parent c7ecc3f365
commit 3ef659be61
73 changed files with 14431 additions and 0 deletions

View File

@ -0,0 +1,32 @@
import { client } from '@/client/client.gen'
import { useAuthTokenStore } from '@/store/auth.ts'
client.instance.interceptors.response.use(
response => response,
async error => {
const originalRequest = error.config
console.log(originalRequest)
if (originalRequest.url.includes("/refresh")) {
const auth = useAuthTokenStore()
auth.logout()
return Promise.reject("Refresh failed - logged out")
}
if (error.response?.status === 401 && !originalRequest._retry) {
originalRequest._retry = true
console.log("Got 401")
const auth = useAuthTokenStore()
if (auth.isLoggedIn) {
const refreshed = await auth.refresh()
if (refreshed) {
return client.instance.request(error.config)
}
auth.logout()
return Promise.reject("Could not refresh token")
}
return Promise.reject("Could not refresh token")
}
return Promise.reject("Could not refresh token")
}
)

View File

@ -0,0 +1,14 @@
export type PageRequest = {
offset: number;
limit: number;
}
export enum SshecretObjectType {
Client = "Client",
ClientSecret = "ClientSecret",
}
export type SshecretObject = {
objectType: SshecretObjectType,
id: string,
}